Commit e73b6866f27b4b6e7347fd223775c5398d438c17

Authored by 徐烜
2 parents e16f191f 933fcbe6

Merge branch 'minhang' of http://222.66.0.204:8090//panzhaov5/bsth_control into minhang

Showing 73 changed files with 5985 additions and 1071 deletions
src/main/java/com/bsth/Application.java
... ... @@ -17,7 +17,7 @@ import java.util.concurrent.ScheduledExecutorService;
17 17 @SpringBootApplication
18 18 public class Application extends SpringBootServletInitializer {
19 19  
20   - public static ScheduledExecutorService mainServices = Executors.newScheduledThreadPool(16);
  20 + public static ScheduledExecutorService mainServices = Executors.newScheduledThreadPool(17);
21 21  
22 22 @Override
23 23 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
... ...
src/main/java/com/bsth/XDApplication.java
... ... @@ -9,6 +9,7 @@ import com.bsth.data.gpsdata.thread.GpsDataLoaderThread;
9 9 import com.bsth.data.gpsdata.thread.OfflineMonitorThread;
10 10 import com.bsth.data.msg_queue.DirectivePushQueue;
11 11 import com.bsth.data.msg_queue.WebSocketPushQueue;
  12 +import com.bsth.data.schedule.auto_exec.AutoExecScanThread;
12 13 import com.bsth.data.schedule.edit_logs.SeiPstThread;
13 14 import com.bsth.data.schedule.late_adjust.ScheduleLateThread;
14 15 import com.bsth.data.schedule.signal.SchSiginUpdateDBThread;
... ... @@ -64,6 +65,8 @@ public class XDApplication implements CommandLineRunner {
64 65 SampleTimeDataLoader sampleTimeDataLoader;
65 66 @Autowired
66 67 SchSiginUpdateDBThread schSiginUpdateDBThread;
  68 + @Autowired
  69 + AutoExecScanThread autoExecScanThread;
67 70  
68 71 private static long timeDiff;
69 72 private static long timeDiffTraffic;
... ... @@ -111,6 +114,8 @@ public class XDApplication implements CommandLineRunner {
111 114 //sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS);
112 115 //实际排班更新线程
113 116 //sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
  117 + //sexec.scheduleWithFixedDelay(autoExecScanThread, 100, 50, TimeUnit.SECONDS);//班次自动执行
  118 + //WebSocketPushQueue.start();//消息队列 -webSocket ,推送至线调web页面的
114 119 //实际排班延迟入库线程
115 120 //sexec.scheduleWithFixedDelay(schedulePstThread, 60, 15, TimeUnit.SECONDS);
116 121 //班次修正日志延迟入库
... ... @@ -137,6 +142,7 @@ public class XDApplication implements CommandLineRunner {
137 142 sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS);//线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作)
138 143 sexec.scheduleWithFixedDelay(sampleTimeDataLoader, 140, 120 * 60, TimeUnit.SECONDS);//到离站预测需要的站点间耗时数据
139 144 sexec.scheduleWithFixedDelay(basicDataLoader, 2, 2, TimeUnit.HOURS);//基础数据更新
  145 + sexec.scheduleWithFixedDelay(autoExecScanThread, 160, 50, TimeUnit.SECONDS);//班次自动执行
140 146 DirectivePushQueue.start();//消息队列 -指令,系统下发的
141 147 WebSocketPushQueue.start();//消息队列 -webSocket ,推送至线调web页面的
142 148  
... ...
src/main/java/com/bsth/controller/realcontrol/LineConfigController.java
... ... @@ -116,4 +116,9 @@ public class LineConfigController extends BaseController<LineConfig, Integer>{
116 116 public Map<String, Object> parkAndStationSet(@RequestParam Map<String, String> map){
117 117 return lineConfigService.parkAndStationSet(map);
118 118 }
  119 +
  120 + @RequestMapping(value = "/setAutoExec", method = RequestMethod.POST)
  121 + public Map<String, Object> setAutoExec(@RequestParam Map<String, String> map){
  122 + return lineConfigService.setAutoExec(map);
  123 + }
119 124 }
... ...
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
... ... @@ -529,8 +529,8 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
529 529 }
530 530  
531 531 @RequestMapping(value="/changeBcType/{id}", method=RequestMethod.POST)
532   - public Map<String, Object> changeBcType(@PathVariable("id") Long id, String bcType, String remarks){
533   - return scheduleRealInfoService.changeBcType(id, bcType, remarks);
  532 + public Map<String, Object> changeBcType(@PathVariable("id") Long id, String bcType, String remarks, String majorStationName){
  533 + return scheduleRealInfoService.changeBcType(id, bcType, remarks, majorStationName);
534 534 }
535 535  
536 536 @RequestMapping(value="/history", method=RequestMethod.POST)
... ... @@ -549,9 +549,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
549 549 public List<String> dateArray(@RequestParam(defaultValue = "0") int c){
550 550 List<String> rs = new ArrayList<>();
551 551  
552   - long t = new Date().getTime();
  552 + long t = System.currentTimeMillis();
553 553 if(c != 1)
554   - t -= ONE_DAY - (1000 * 60 * 60 * 2);
  554 + t -= (ONE_DAY + (1000 * 60 * 60 * 2));
555 555 for(int i = 0; i < 3; i ++){
556 556 rs.add(fmtyyyyMMdd.print(t));
557 557 t -= ONE_DAY;
... ...
src/main/java/com/bsth/controller/realcontrol/summary/DestroySituationController.java 0 → 100644
  1 +package com.bsth.controller.realcontrol.summary;
  2 +
  3 +import com.bsth.controller.BaseController;
  4 +import com.bsth.data.summary.entity.DestroySituation;
  5 +import com.bsth.data.summary.service.DestroySituationService;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.web.bind.annotation.RequestMapping;
  8 +import org.springframework.web.bind.annotation.RequestParam;
  9 +import org.springframework.web.bind.annotation.RestController;
  10 +
  11 +import javax.servlet.http.HttpServletRequest;
  12 +import javax.servlet.http.HttpServletResponse;
  13 +import java.util.Map;
  14 +
  15 +/**
  16 + * Created by panzhao on 2017/11/1.
  17 + */
  18 +@RestController
  19 +@RequestMapping("/summary/destroy_detail")
  20 +public class DestroySituationController extends BaseController<DestroySituation, Long> {
  21 +
  22 + @Autowired
  23 + DestroySituationService destroySituationService;
  24 +
  25 + @RequestMapping("excel")
  26 + public void excel(@RequestParam Map<String, Object> map, HttpServletRequest request, HttpServletResponse response) {
  27 + destroySituationService.excel(map, request, response);
  28 + }
  29 +}
... ...
src/main/java/com/bsth/data/gpsdata/arrival/GpsRealAnalyse.java
... ... @@ -41,7 +41,7 @@ public class GpsRealAnalyse {
41 41 @Autowired
42 42 GpsRealData gpsRealData;
43 43  
44   - final static int POOL_SIZE = 15;
  44 + final static int POOL_SIZE = 30;
45 45 static ExecutorService threadPool = Executors.newFixedThreadPool(POOL_SIZE + 1);
46 46  
47 47 public static long st;
... ... @@ -68,7 +68,7 @@ public class GpsRealAnalyse {
68 68 }
69 69 List<String> deviceList = new ArrayList<>(multimap.keySet());
70 70  
71   - //数据均分给20个线程
  71 + //数据均分给线程
72 72 ArrayListMultimap dataListMap = ArrayListMultimap.create();
73 73 int size = deviceList.size(), threadIndex=0, threadSize = size / POOL_SIZE;
74 74 for(int i = 0; i < size; i++){
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
... ... @@ -70,14 +70,18 @@ public class InOutStationSignalHandle extends SignalHandle{
70 70 return false;
71 71 }
72 72  
73   - if(isNotEmpty(prevs)){
74   - GpsEntity prev = prevs.getTail();
75   - if(isOutStation(gps, prev))
76   - outStation(gps, prev);
  73 + try{
  74 + if(isNotEmpty(prevs)){
  75 + GpsEntity prev = prevs.getTail();
  76 + if(isOutStation(gps, prev))
  77 + outStation(gps, prev);
77 78  
78 79  
79   - if(isInStation(gps, prev))
80   - inStation(gps, prev);
  80 + if(isInStation(gps, prev))
  81 + inStation(gps, prev);
  82 + }
  83 + }catch (Exception e){
  84 + logger.error("in out error info ..", e);
81 85 }
82 86  
83 87 return true;
... ...
src/main/java/com/bsth/data/schedule/auto_exec/AutoExecScanThread.java 0 → 100644
  1 +package com.bsth.data.schedule.auto_exec;
  2 +
  3 +import com.bsth.data.LineConfigData;
  4 +import com.bsth.data.schedule.DayOfSchedule;
  5 +import com.bsth.entity.realcontrol.LineConfig;
  6 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  7 +import org.slf4j.Logger;
  8 +import org.slf4j.LoggerFactory;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import java.util.ArrayList;
  13 +import java.util.Collection;
  14 +import java.util.List;
  15 +
  16 +/**
  17 + * 班次自动执行扫描线程
  18 + * Created by panzhao on 2017/10/31.
  19 + */
  20 +@Component
  21 +public class AutoExecScanThread extends Thread{
  22 +
  23 +
  24 + @Autowired
  25 + LineConfigData lineConfigData;
  26 +
  27 + @Autowired
  28 + DayOfSchedule dayOfSchedule;
  29 +
  30 + @Autowired
  31 + RealScheduleAutoExecHandler realScheduleAutoExecHandler;
  32 +
  33 + Logger logger = LoggerFactory.getLogger(this.getClass());
  34 +
  35 + @Override
  36 + public void run() {
  37 + try{
  38 + //要自动执行的线路
  39 + List<String> autos = new ArrayList<>();
  40 + Collection<LineConfig> lcs = lineConfigData.getAll();
  41 +
  42 + for(LineConfig config : lcs){
  43 + if(config.isAutoExec()){
  44 + autos.add(config.getLine().getLineCode());
  45 + }
  46 + }
  47 +
  48 + if(autos.size()==0)
  49 + return;
  50 + List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll());
  51 + for(ScheduleRealInfo sch : all){
  52 + if(autos.contains(sch.getXlBm())){
  53 + realScheduleAutoExecHandler.exec(sch);
  54 + }
  55 + }
  56 + }catch (Exception e){
  57 + logger.error("", e);
  58 + }
  59 + }
  60 +}
... ...
src/main/java/com/bsth/data/schedule/auto_exec/RealScheduleAutoExecHandler.java 0 → 100644
  1 +package com.bsth.data.schedule.auto_exec;
  2 +
  3 +import com.bsth.data.schedule.DayOfSchedule;
  4 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  5 +import com.bsth.websocket.handler.SendUtils;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +import java.util.ArrayList;
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * 实际班次自动执行
  14 + * Created by panzhao on 2017/10/31.
  15 + */
  16 +@Component
  17 +public class RealScheduleAutoExecHandler {
  18 +
  19 + @Autowired
  20 + SendUtils sendUtils;
  21 + @Autowired
  22 + DayOfSchedule dayOfSchedule;
  23 +
  24 +
  25 + public void exec(ScheduleRealInfo sch) {
  26 + boolean flag = false;
  27 + long t = System.currentTimeMillis();
  28 +
  29 + if (sch.getDfsjT() < t) {
  30 + sch.setFcsjActualAll(sch.getDfsjT());
  31 + flag = true;
  32 + }
  33 +
  34 + if (sch.getZdsjT() < t) {
  35 + sch.setZdsjActualAll(sch.getZdsjT());
  36 + ScheduleRealInfo next = dayOfSchedule.nextByLp(sch);
  37 + if (null != next) {
  38 + next.setQdzArrDatesj(sch.getZdsjActual());
  39 +
  40 + List<ScheduleRealInfo> refs = new ArrayList<>();
  41 + refs.add(sch);
  42 + refs.add(next);
  43 + sendUtils.refreshSch(refs);
  44 + return;
  45 + }
  46 + }
  47 +
  48 + if (flag) {
  49 + sendUtils.refreshSch(sch);
  50 + }
  51 + }
  52 +}
... ...
src/main/java/com/bsth/data/summary/entity/DestroySituation.java 0 → 100644
  1 +package com.bsth.data.summary.entity;
  2 +
  3 +import javax.persistence.Entity;
  4 +import javax.persistence.Id;
  5 +import javax.persistence.Table;
  6 +
  7 +/**
  8 + * 烂班情况
  9 + * Created by panzhao on 2017/10/31.
  10 + */
  11 +@Entity
  12 +@Table(name = "z_calc_destroy_detail")
  13 +public class DestroySituation {
  14 +
  15 + @Id
  16 + private Long id;
  17 +
  18 + private String rq;
  19 +
  20 + private String gsBm;
  21 +
  22 + private String fgsBm;
  23 +
  24 + private String lineCode;
  25 +
  26 + private String lineName;
  27 +
  28 + private String nbbm;
  29 +
  30 + private String jGh;
  31 +
  32 + private String sGh;
  33 +
  34 + private String reason;
  35 +
  36 + private int size;
  37 +
  38 + private Double mileage;
  39 +
  40 + private Long t;
  41 +
  42 + private String remark;
  43 +
  44 + private String idsStr;
  45 +
  46 + public Long getId() {
  47 + return id;
  48 + }
  49 +
  50 + public void setId(Long id) {
  51 + this.id = id;
  52 + }
  53 +
  54 + public String getRq() {
  55 + return rq;
  56 + }
  57 +
  58 + public void setRq(String rq) {
  59 + this.rq = rq;
  60 + }
  61 +
  62 + public String getLineCode() {
  63 + return lineCode;
  64 + }
  65 +
  66 + public void setLineCode(String lineCode) {
  67 + this.lineCode = lineCode;
  68 + }
  69 +
  70 + public String getLineName() {
  71 + return lineName;
  72 + }
  73 +
  74 + public void setLineName(String lineName) {
  75 + this.lineName = lineName;
  76 + }
  77 +
  78 + public String getNbbm() {
  79 + return nbbm;
  80 + }
  81 +
  82 + public void setNbbm(String nbbm) {
  83 + this.nbbm = nbbm;
  84 + }
  85 +
  86 + public String getjGh() {
  87 + return jGh;
  88 + }
  89 +
  90 + public void setjGh(String jGh) {
  91 + this.jGh = jGh;
  92 + }
  93 +
  94 + public String getsGh() {
  95 + return sGh;
  96 + }
  97 +
  98 + public void setsGh(String sGh) {
  99 + this.sGh = sGh;
  100 + }
  101 +
  102 + public String getReason() {
  103 + return reason;
  104 + }
  105 +
  106 + public void setReason(String reason) {
  107 + this.reason = reason;
  108 + }
  109 +
  110 + public int getSize() {
  111 + return size;
  112 + }
  113 +
  114 + public void setSize(int size) {
  115 + this.size = size;
  116 + }
  117 +
  118 + public Double getMileage() {
  119 + return mileage;
  120 + }
  121 +
  122 + public void setMileage(Double mileage) {
  123 + this.mileage = mileage;
  124 + }
  125 +
  126 + public Long getT() {
  127 + return t;
  128 + }
  129 +
  130 + public void setT(Long t) {
  131 + this.t = t;
  132 + }
  133 +
  134 + public String getRemark() {
  135 + return remark;
  136 + }
  137 +
  138 + public void setRemark(String remark) {
  139 + this.remark = remark;
  140 + }
  141 +
  142 + public String getIdsStr() {
  143 + return idsStr;
  144 + }
  145 +
  146 + public void setIdsStr(String idsStr) {
  147 + this.idsStr = idsStr;
  148 + }
  149 +
  150 + public String getGsBm() {
  151 + return gsBm;
  152 + }
  153 +
  154 + public void setGsBm(String gsBm) {
  155 + this.gsBm = gsBm;
  156 + }
  157 +
  158 + public String getFgsBm() {
  159 + return fgsBm;
  160 + }
  161 +
  162 + public void setFgsBm(String fgsBm) {
  163 + this.fgsBm = fgsBm;
  164 + }
  165 +}
... ...
src/main/java/com/bsth/data/summary/entity/FastAndSlow.java
... ... @@ -21,6 +21,22 @@ public class FastAndSlow {
21 21 private Long id;
22 22  
23 23 /**
  24 + * 驾驶员
  25 + */
  26 + private String jsy;
  27 +
  28 + /**
  29 + * 车辆自编号
  30 + */
  31 + private String nbbm;
  32 +
  33 + /**
  34 + * 路牌名称
  35 + */
  36 + @Column(name = "lp_name")
  37 + private String lpName;
  38 +
  39 + /**
24 40 * 发车站点
25 41 */
26 42 private String stationName;
... ... @@ -281,4 +297,28 @@ public class FastAndSlow {
281 297 public boolean isFast() {
282 298 return this.fcsjFast>0 || this.dfsjFast>0 || this.zdsjFast>0 || this.zdsjDfFast>0;
283 299 }
  300 +
  301 + public String getLpName() {
  302 + return lpName;
  303 + }
  304 +
  305 + public void setLpName(String lpName) {
  306 + this.lpName = lpName;
  307 + }
  308 +
  309 + public String getNbbm() {
  310 + return nbbm;
  311 + }
  312 +
  313 + public void setNbbm(String nbbm) {
  314 + this.nbbm = nbbm;
  315 + }
  316 +
  317 + public String getJsy() {
  318 + return jsy;
  319 + }
  320 +
  321 + public void setJsy(String jsy) {
  322 + this.jsy = jsy;
  323 + }
284 324 }
285 325 \ No newline at end of file
... ...
src/main/java/com/bsth/data/summary/repository/DestroySituationRepository.java 0 → 100644
  1 +package com.bsth.data.summary.repository;
  2 +
  3 +import com.bsth.data.summary.entity.DestroySituation;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * Created by panzhao on 2017/11/1.
  9 + */
  10 +@Repository
  11 +public interface DestroySituationRepository extends BaseRepository<DestroySituation, Long> {
  12 +}
... ...
src/main/java/com/bsth/data/summary/service/DestroySituationService.java 0 → 100644
  1 +package com.bsth.data.summary.service;
  2 +
  3 +import com.bsth.data.summary.entity.DestroySituation;
  4 +import com.bsth.service.BaseService;
  5 +
  6 +import javax.servlet.http.HttpServletRequest;
  7 +import javax.servlet.http.HttpServletResponse;
  8 +import java.util.Map;
  9 +
  10 +/**
  11 + * Created by panzhao on 2017/11/1.
  12 + */
  13 +public interface DestroySituationService extends BaseService<DestroySituation, Long> {
  14 + void excel(Map<String, Object> map, HttpServletRequest request, HttpServletResponse response);
  15 +}
0 16 \ No newline at end of file
... ...
src/main/java/com/bsth/data/summary/service/impl/DestroySituationServiceImpl.java 0 → 100644
  1 +package com.bsth.data.summary.service.impl;
  2 +
  3 +import com.bsth.data.summary.entity.DestroySituation;
  4 +import com.bsth.data.summary.service.DestroySituationService;
  5 +import com.bsth.data.utils.CustomStringUtils;
  6 +import com.bsth.service.impl.BaseServiceImpl;
  7 +import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  8 +import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  9 +import org.apache.poi.ss.usermodel.Row;
  10 +import org.apache.poi.ss.usermodel.Sheet;
  11 +import org.slf4j.Logger;
  12 +import org.slf4j.LoggerFactory;
  13 +import org.springframework.stereotype.Service;
  14 +
  15 +import javax.servlet.http.HttpServletRequest;
  16 +import javax.servlet.http.HttpServletResponse;
  17 +import java.io.FileInputStream;
  18 +import java.io.OutputStream;
  19 +import java.net.URLEncoder;
  20 +import java.text.SimpleDateFormat;
  21 +import java.util.*;
  22 +
  23 +/**
  24 + * Created by panzhao on 2017/11/1.
  25 + */
  26 +@Service
  27 +public class DestroySituationServiceImpl extends BaseServiceImpl<DestroySituation, Long> implements DestroySituationService {
  28 +
  29 + Logger logger = LoggerFactory.getLogger(this.getClass());
  30 +
  31 + @Override
  32 + public void excel(Map<String, Object> map, HttpServletRequest request, HttpServletResponse response) {
  33 + try {
  34 + map.put("rq_le", CustomStringUtils.maxEndTime(map.get("rq_ge").toString()
  35 + , map.get("rq_le").toString(), 62));
  36 +
  37 + List<DestroySituation> list = (List<DestroySituation>) super.list(map);
  38 +
  39 + if(list.size() == 0){
  40 + response.setHeader("Content-type", "text/html;charset=UTF-8");
  41 + response.getWriter().print("<span style='color:red;font-size:24px;'>根据查询条件没有搜索到数据,别导了!</span>");
  42 + return ;
  43 + }
  44 +
  45 + //排序
  46 + Collections.sort(list, new Comparator<DestroySituation>() {
  47 + @Override
  48 + public int compare(DestroySituation o1, DestroySituation o2) {
  49 + return (int) (o1.getT() - o2.getT());
  50 + }
  51 + });
  52 +
  53 + //输出excel
  54 + String basePath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
  55 + String filePath = basePath + "/static/pages/summary/excel/烂班明细情况.xls";
  56 + POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filePath));
  57 + HSSFWorkbook wb = new HSSFWorkbook(fs);
  58 +
  59 + //写入数据
  60 + Sheet sheet = wb.getSheetAt(0);
  61 + Row row;
  62 + DestroySituation dys;
  63 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  64 + for(int i = 0; i < list.size(); i++){
  65 + dys = list.get(i);
  66 + row = sheet.createRow(i + 1);
  67 + row.createCell(0).setCellValue(dys.getRq());
  68 + row.createCell(1).setCellValue(dys.getLineName());
  69 + row.createCell(2).setCellValue(dys.getNbbm());
  70 + row.createCell(3).setCellValue(dys.getjGh());
  71 + row.createCell(4).setCellValue(dys.getsGh());
  72 + row.createCell(5).setCellValue(dys.getReason());
  73 + row.createCell(6).setCellValue(dys.getSize());
  74 + row.createCell(7).setCellValue(dys.getMileage());
  75 + row.createCell(8).setCellValue(sdf.format(new Date(dys.getT())));
  76 + row.createCell(9).setCellValue(dys.getRemark());
  77 + }
  78 +
  79 + String name = list.get(0).getLineName();
  80 + wb.setSheetName(0, name + "烂班明细");
  81 + //response 输出
  82 + String filename = name + map.get("rq_ge") + "至" + map.get("rq_le") + "烂班明细情况.xls";
  83 + response.setContentType("application/x-msdownload");
  84 + response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
  85 +
  86 + OutputStream os = response.getOutputStream();
  87 + wb.write(os);
  88 + os.flush();
  89 + os.close();
  90 + } catch (Exception e) {
  91 + logger.error("", e);
  92 + }
  93 + }
  94 +
  95 +}
0 96 \ No newline at end of file
... ...
src/main/java/com/bsth/data/summary/service/impl/FastAndSlowServiceImpl.java
... ... @@ -4,6 +4,7 @@ import com.bsth.data.BasicData;
4 4 import com.bsth.data.summary.entity.FastAndSlow;
5 5 import com.bsth.data.summary.service.FastAndSlowService;
6 6 import com.bsth.data.utils.ConvertUtil;
  7 +import com.bsth.data.utils.CustomStringUtils;
7 8 import com.bsth.service.impl.BaseServiceImpl;
8 9 import com.google.common.collect.ArrayListMultimap;
9 10 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
... ... @@ -22,8 +23,6 @@ import javax.servlet.http.HttpServletResponse;
22 23 import java.io.FileInputStream;
23 24 import java.io.OutputStream;
24 25 import java.net.URLEncoder;
25   -import java.text.ParseException;
26   -import java.text.SimpleDateFormat;
27 26 import java.util.*;
28 27  
29 28 /**
... ... @@ -40,7 +39,7 @@ public class FastAndSlowServiceImpl extends BaseServiceImpl&lt;FastAndSlow, Long&gt; i
40 39 public Iterable<FastAndSlow> list(Map<String, Object> map) {
41 40 try {
42 41 //最多5天
43   - map.put("rq_le", maxEndTime(map.get("rq_ge").toString()
  42 + map.put("rq_le", CustomStringUtils.maxEndTime(map.get("rq_ge").toString()
44 43 , map.get("rq_le").toString(), 4));
45 44  
46 45 List<FastAndSlow> list = (List) super.list(map);
... ... @@ -58,7 +57,7 @@ public class FastAndSlowServiceImpl extends BaseServiceImpl&lt;FastAndSlow, Long&gt; i
58 57 try {
59 58 Map<String, Object> params = new HashMap();
60 59 //最多31天
61   - et = maxEndTime(st, et, 31);
  60 + et = CustomStringUtils.maxEndTime(st, et, 31);
62 61 params.put("rq_ge", st);
63 62 params.put("rq_le", et);
64 63 params.put("lineCode_eq", lineCode);
... ... @@ -119,29 +118,33 @@ public class FastAndSlowServiceImpl extends BaseServiceImpl&lt;FastAndSlow, Long&gt; i
119 118 //前4行是表头
120 119 Row row;
121 120 row = sheet.getRow(0);
122   - row.getCell(4).setCellValue(list.get(0).getRq());
  121 + row.getCell(0).setCellValue(list.get(0).getRq());
123 122 row.getCell(13).setCellValue(BasicData.lineCode2NameMap.get(list.get(0).getLineCode()));
124 123 FastAndSlow fas;
125 124 for(int i = 0; i < list.size(); i++){
126 125 fas = list.get(i);
127 126 row = sheet.createRow(i + 4);
128 127 row.createCell(0).setCellValue(i + 1);
129   - row.createCell(1).setCellValue(fas.getStationName());
130   - row.createCell(2).setCellValue(fas.getUpDown());
131   - row.createCell(3).setCellValue(fas.getFcsj());
132   - row.createCell(4).setCellValue(fas.getDfsj());
133   - row.createCell(5).setCellValue(fas.getFcsjActual());
134   - row.createCell(6).setCellValue(fas.getFcsjFast());
135   - row.createCell(7).setCellValue(fas.getFcsjSlow());
136   - row.createCell(8).setCellValue(fas.getDfsjFast());
137   - row.createCell(9).setCellValue(fas.getDfsjSlow());
138   - row.createCell(10).setCellValue(fas.getZdsj());
139   - row.createCell(11).setCellValue(fas.getZdsjDf());
140   - row.createCell(12).setCellValue(fas.getZdsjActual());
141   - row.createCell(13).setCellValue(fas.getZdsjFast());
142   - row.createCell(14).setCellValue(fas.getZdsjSlow());
143   - row.createCell(15).setCellValue(fas.getZdsjDfFast());
144   - row.createCell(16).setCellValue(fas.getZdsjDfSlow());
  128 + row.createCell(1).setCellValue(fas.getLpName());
  129 + row.createCell(2).setCellValue(fas.getNbbm());
  130 + row.createCell(3).setCellValue(fas.getJsy());
  131 +
  132 + row.createCell(4).setCellValue(fas.getStationName());
  133 + row.createCell(5).setCellValue(fas.getUpDown());
  134 + row.createCell(6).setCellValue(fas.getFcsj());
  135 + row.createCell(7).setCellValue(fas.getDfsj());
  136 + row.createCell(8).setCellValue(fas.getFcsjActual());
  137 + row.createCell(9).setCellValue(fas.getFcsjFast());
  138 + row.createCell(10).setCellValue(fas.getFcsjSlow());
  139 + row.createCell(11).setCellValue(fas.getDfsjFast());
  140 + row.createCell(12).setCellValue(fas.getDfsjSlow());
  141 + row.createCell(13).setCellValue(fas.getZdsj());
  142 + row.createCell(14).setCellValue(fas.getZdsjDf());
  143 + row.createCell(15).setCellValue(fas.getZdsjActual());
  144 + row.createCell(16).setCellValue(fas.getZdsjFast());
  145 + row.createCell(17).setCellValue(fas.getZdsjSlow());
  146 + row.createCell(18).setCellValue(fas.getZdsjDfFast());
  147 + row.createCell(19).setCellValue(fas.getZdsjDfSlow());
145 148  
146 149 if(fas.getUpDown()==0)
147 150 ups.add(fas);
... ... @@ -151,28 +154,28 @@ public class FastAndSlowServiceImpl extends BaseServiceImpl&lt;FastAndSlow, Long&gt; i
151 154 //合计
152 155 int size = list.size();
153 156 row = sheet.createRow(size + 4);
154   - row.createCell(1).setCellValue("发车:上行(计划快误点:"+jhfcFast(ups)+" 累计时间:"+jhfcFastTime(ups)+" 待发快误点:"+dffcFast(ups)+" 累计时间:"+dffcFastTime(ups)+") ");
155   - row.createCell(9).setCellValue("下行(计划快误点:"+jhfcFast(downs)+" 累计时间:"+jhfcFastTime(downs)+" 待发快误点:"+dffcFast(downs)+" 累计时间:"+dffcFastTime(downs)+")");
  157 + row.createCell(2).setCellValue("发车:上行(计划快误点:"+jhfcFast(ups)+" 累计时间:"+jhfcFastTime(ups)+" 待发快误点:"+dffcFast(ups)+" 累计时间:"+dffcFastTime(ups)+") ");
  158 + row.createCell(12).setCellValue("下行(计划快误点:"+jhfcFast(downs)+" 累计时间:"+jhfcFastTime(downs)+" 待发快误点:"+dffcFast(downs)+" 累计时间:"+dffcFastTime(downs)+")");
156 159 row = sheet.createRow(size + 5);
157   - row.createCell(1).setCellValue("发车:上行(计划慢误点:"+jhfcSlow(ups)+" 累计时间:"+jhfcSlowTime(ups)+" 待发慢误点:"+dffcSlow(ups)+" 累计时间:"+dffcSlowTime(ups)+") ");
158   - row.createCell(9).setCellValue("下行(计划慢误点:"+jhfcSlow(downs)+" 累计时间:"+jhfcSlowTime(downs)+" 待发慢误点:"+dffcSlow(downs)+" 累计时间:"+dffcSlowTime(downs)+")");
  160 + row.createCell(2).setCellValue("发车:上行(计划慢误点:"+jhfcSlow(ups)+" 累计时间:"+jhfcSlowTime(ups)+" 待发慢误点:"+dffcSlow(ups)+" 累计时间:"+dffcSlowTime(ups)+") ");
  161 + row.createCell(12).setCellValue("下行(计划慢误点:"+jhfcSlow(downs)+" 累计时间:"+jhfcSlowTime(downs)+" 待发慢误点:"+dffcSlow(downs)+" 累计时间:"+dffcSlowTime(downs)+")");
159 162 row = sheet.createRow(size + 6);
160   - row.createCell(1).setCellValue("到达:上行(计划快误点:"+jhzdFast(ups)+" 累计时间:"+jhzdFastTime(ups)+" 待发快误点:"+dfzdFast(ups)+" 累计时间:"+dfzdFastTime(ups)+") ");
161   - row.createCell(9).setCellValue("下行(计划快误点:"+jhzdFast(downs)+" 累计时间:"+jhzdFastTime(downs)+" 待发快误点:"+dfzdFast(downs)+" 累计时间:"+dfzdFastTime(downs)+")");
  163 + row.createCell(2).setCellValue("到达:上行(计划快误点:"+jhzdFast(ups)+" 累计时间:"+jhzdFastTime(ups)+" 待发快误点:"+dfzdFast(ups)+" 累计时间:"+dfzdFastTime(ups)+") ");
  164 + row.createCell(12).setCellValue("下行(计划快误点:"+jhzdFast(downs)+" 累计时间:"+jhzdFastTime(downs)+" 待发快误点:"+dfzdFast(downs)+" 累计时间:"+dfzdFastTime(downs)+")");
162 165 row = sheet.createRow(size + 7);
163   - row.createCell(1).setCellValue("到达:上行(计划慢误点:"+jhzdSlow(ups)+" 累计时间:"+jhzdSlowTime(ups)+" 待发慢误点:"+dfzdSlow(ups)+" 累计时间:"+dfzdSlowTime(ups)+") ");
164   - row.createCell(9).setCellValue("下行(计划慢误点:"+jhzdSlow(downs)+" 累计时间:"+jhzdSlowTime(downs)+" 待发慢误点:"+dfzdSlow(downs)+" 累计时间:"+dfzdSlowTime(downs)+")");
  166 + row.createCell(2).setCellValue("到达:上行(计划慢误点:"+jhzdSlow(ups)+" 累计时间:"+jhzdSlowTime(ups)+" 待发慢误点:"+dfzdSlow(ups)+" 累计时间:"+dfzdSlowTime(ups)+") ");
  167 + row.createCell(12).setCellValue("下行(计划慢误点:"+jhzdSlow(downs)+" 累计时间:"+jhzdSlowTime(downs)+" 待发慢误点:"+dfzdSlow(downs)+" 累计时间:"+dfzdSlowTime(downs)+")");
165 168 //合并单元格
166   - sheet.addMergedRegion(new CellRangeAddress(size + 4, size + 4, 1, 8));
167   - sheet.addMergedRegion(new CellRangeAddress(size + 4, size + 4, 9, 16));
168   - sheet.addMergedRegion(new CellRangeAddress(size + 5, size + 5, 1, 8));
169   - sheet.addMergedRegion(new CellRangeAddress(size + 5, size + 5, 9, 16));
170   - sheet.addMergedRegion(new CellRangeAddress(size + 6, size + 6, 1, 8));
171   - sheet.addMergedRegion(new CellRangeAddress(size + 6, size + 6, 9, 16));
172   - sheet.addMergedRegion(new CellRangeAddress(size + 7, size + 7, 1, 8));
173   - sheet.addMergedRegion(new CellRangeAddress(size + 7, size + 7, 9, 16));
174   -
175   - sheet.addMergedRegion(new CellRangeAddress(size + 4, size + 7, 0, 0));
  169 + sheet.addMergedRegion(new CellRangeAddress(size + 4, size + 4, 2, 11));
  170 + sheet.addMergedRegion(new CellRangeAddress(size + 4, size + 4, 12, 19));
  171 + sheet.addMergedRegion(new CellRangeAddress(size + 5, size + 5, 2, 11));
  172 + sheet.addMergedRegion(new CellRangeAddress(size + 5, size + 5, 12, 19));
  173 + sheet.addMergedRegion(new CellRangeAddress(size + 6, size + 6, 2, 11));
  174 + sheet.addMergedRegion(new CellRangeAddress(size + 6, size + 6, 12, 19));
  175 + sheet.addMergedRegion(new CellRangeAddress(size + 7, size + 7, 2, 11));
  176 + sheet.addMergedRegion(new CellRangeAddress(size + 7, size + 7, 12, 19));
  177 +
  178 + sheet.addMergedRegion(new CellRangeAddress(size + 4, size + 7, 0, 1));
176 179 }
177 180  
178 181 private List<FastAndSlow> filterByType(List<FastAndSlow> all, String type) {
... ... @@ -194,23 +197,6 @@ public class FastAndSlowServiceImpl extends BaseServiceImpl&lt;FastAndSlow, Long&gt; i
194 197 }
195 198  
196 199  
197   - private String maxEndTime(String sStr, String eStr, int space) throws ParseException {
198   - try {
199   - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
200   - long st = sdf.parse(sStr).getTime();
201   - long et = sdf.parse(eStr).getTime();
202   - long dayTime = 24 * 60 * 60 * 1000;
203   - long spaceTime = dayTime * space;
204   -
205   - if (et - st > spaceTime) {
206   - eStr = sdf.format(new Date(st + spaceTime));
207   - }
208   - } catch (Exception e) {
209   - throw e;
210   - }
211   - return eStr;
212   - }
213   -
214 200 /**
215 201 * 计划发出快误点
216 202 * @param list
... ...
src/main/java/com/bsth/data/utils/CustomStringUtils.java
... ... @@ -2,6 +2,10 @@ package com.bsth.data.utils;
2 2  
3 3 import org.apache.commons.lang3.StringUtils;
4 4  
  5 +import java.text.ParseException;
  6 +import java.text.SimpleDateFormat;
  7 +import java.util.Date;
  8 +
5 9 /**
6 10 * Created by panzhao on 2017/7/10.
7 11 */
... ... @@ -16,4 +20,21 @@ public class CustomStringUtils {
16 20 }
17 21 return s1.equals(s2);
18 22 }
  23 +
  24 + public static String maxEndTime(String sStr, String eStr, int space) throws ParseException {
  25 + try {
  26 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  27 + long st = sdf.parse(sStr).getTime();
  28 + long et = sdf.parse(eStr).getTime();
  29 + long dayTime = 24 * 60 * 60 * 1000;
  30 + long spaceTime = dayTime * space;
  31 +
  32 + if (et - st > spaceTime) {
  33 + eStr = sdf.format(new Date(st + spaceTime));
  34 + }
  35 + } catch (Exception e) {
  36 + throw e;
  37 + }
  38 + return eStr;
  39 + }
19 40 }
... ...
src/main/java/com/bsth/entity/oil/Dlb.java
... ... @@ -73,7 +73,7 @@ public class Dlb {
73 73 private String fgsname;
74 74  
75 75  
76   -
  76 + private String lp;
77 77  
78 78 public Integer getId() {
79 79 return id;
... ... @@ -383,6 +383,15 @@ public class Dlb {
383 383 public void setUpdatetime(Date updatetime) {
384 384 this.updatetime = updatetime;
385 385 }
  386 +
  387 + public String getLp() {
  388 + return lp;
  389 + }
  390 +
  391 + public void setLp(String lp) {
  392 + this.lp = lp;
  393 + }
  394 +
386 395  
387 396  
388 397 }
... ...
src/main/java/com/bsth/entity/oil/Ylb.java
... ... @@ -56,6 +56,7 @@ public class Ylb {
56 56 //进场顺序(根据最先出场和最后进场来关联车辆的存油量)
57 57 private int jcsx;
58 58  
  59 + private String lp;
59 60 @Transient
60 61 private String bglyh;
61 62  
... ... @@ -330,5 +331,14 @@ public class Ylb {
330 331 public void setUpdatetime(Date updatetime) {
331 332 this.updatetime = updatetime;
332 333 }
  334 +
  335 + public String getLp() {
  336 + return lp;
  337 + }
  338 +
  339 + public void setLp(String lp) {
  340 + this.lp = lp;
  341 + }
  342 +
333 343  
334 344 }
... ...
src/main/java/com/bsth/entity/realcontrol/ChildTaskPlan.java
... ... @@ -35,6 +35,7 @@ public class ChildTaskPlan {
35 35  
36 36 /**
37 37 * 任务类型2
  38 + * 1 正常 2 进场 3 出场
38 39 */
39 40 private String type2;
40 41  
... ... @@ -99,6 +100,11 @@ public class ChildTaskPlan {
99 100 private String nbbm;
100 101  
101 102 /**
  103 + * 中途换车营运, 新车关联的主任务ID,子任务删除时,主任务ID将级联
  104 + */
  105 + private Long ccId;
  106 +
  107 + /**
102 108 * 为true 则无售票员, 否则继承主任务
103 109 */
104 110 private boolean noClerk;
... ... @@ -277,4 +283,12 @@ public class ChildTaskPlan {
277 283 public void setNoClerk(boolean noClerk) {
278 284 this.noClerk = noClerk;
279 285 }
  286 +
  287 + public Long getCcId() {
  288 + return ccId;
  289 + }
  290 +
  291 + public void setCcId(Long ccId) {
  292 + this.ccId = ccId;
  293 + }
280 294 }
... ...
src/main/java/com/bsth/entity/realcontrol/LineConfig.java
... ... @@ -65,6 +65,8 @@ public class LineConfig {
65 65 /** 原线路回场 */
66 66 private boolean inParkForSource;
67 67  
  68 + private boolean autoExec;
  69 +
68 70 /**
69 71 * 到离站偏移值
70 72 */
... ... @@ -294,4 +296,12 @@ public class LineConfig {
294 296 public void setLockFirstOutTime(boolean lockFirstOutTime) {
295 297 this.lockFirstOutTime = lockFirstOutTime;
296 298 }
  299 +
  300 + public boolean isAutoExec() {
  301 + return autoExec;
  302 + }
  303 +
  304 + public void setAutoExec(boolean autoExec) {
  305 + this.autoExec = autoExec;
  306 + }
297 307 }
... ...
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
... ... @@ -108,6 +108,9 @@ public class ScheduleRealInfo {
108 108 */
109 109 private String bcType;
110 110  
  111 + //放站班次 站点名称
  112 + private String majorStationName;
  113 +
111 114 /** 创建人 */
112 115 @JsonIgnore
113 116 @ManyToOne(fetch = FetchType.LAZY)
... ... @@ -225,6 +228,11 @@ public class ScheduleRealInfo {
225 228 */
226 229 private Integer driftStatus = 0;
227 230  
  231 + /**
  232 + * 换车营运标记 true 表示该主任务由 【中途换车子任务】 级联生成
  233 + */
  234 + private boolean ccService;
  235 +
228 236 public boolean isDfAuto() {
229 237 return dfAuto;
230 238 }
... ... @@ -958,4 +966,20 @@ public class ScheduleRealInfo {
958 966 public void setDriftStatus(Integer driftStatus) {
959 967 this.driftStatus = driftStatus;
960 968 }
  969 +
  970 + public boolean isCcService() {
  971 + return ccService;
  972 + }
  973 +
  974 + public void setCcService(boolean ccService) {
  975 + this.ccService = ccService;
  976 + }
  977 +
  978 + public String getMajorStationName() {
  979 + return majorStationName;
  980 + }
  981 +
  982 + public void setMajorStationName(String majorStationName) {
  983 + this.majorStationName = majorStationName;
  984 + }
961 985 }
... ...
src/main/java/com/bsth/repository/SectionRepository.java
1 1 package com.bsth.repository;
2 2  
3   -
4 3 import org.springframework.data.jpa.repository.Modifying;
5 4 import org.springframework.data.jpa.repository.Query;
6 5 import org.springframework.stereotype.Repository;
... ... @@ -8,6 +7,8 @@ import org.springframework.transaction.annotation.Transactional;
8 7  
9 8 import com.bsth.entity.Section;
10 9  
  10 +import java.util.List;
  11 +
11 12 /**
12 13 *
13 14 * @Interface: SectionRepository(路段Repository数据持久层接口)
... ... @@ -112,4 +113,8 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; {
112 113 Double speedLimit,String descriptions,Integer version,Integer createBy,String createDate,
113 114  
114 115 Integer updateBy,String updateDate);
  116 +
  117 + @Query(value = "SELECT AsText(s.bsection_vector) as section,r.directions as dir FROM bsth_c_section s left join bsth_c_sectionroute r on s.section_code = r.section_code " +
  118 + "where r.line = ?1 and directions = ?2 ORDER BY r.directions,r.sectionroute_code ",nativeQuery = true)
  119 + List<Object[]> getSectionDirByLineId(Integer lineId , Integer directions);
115 120 }
... ...
src/main/java/com/bsth/repository/oil/YlbRepository.java
... ... @@ -125,8 +125,8 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
125 125  
126 126 @Query(value="select s from Ylb s "
127 127 + " where to_days(?1)=to_days(s.rq) "
128   - + " and s.ssgsdm like %?2% "
129   - + " and s.fgsdm like %?3%"
  128 + + " and s.ssgsdm =?2 "
  129 + + " and s.fgsdm =?3 "
130 130 + " and s.xlbm like %?4% "
131 131 + " and s.nbbm in ?5 order by nbbm,jcsx")
132 132 List<Ylb> listYlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm);
... ...
src/main/java/com/bsth/repository/oil/YlxxbRepository.java
... ... @@ -17,17 +17,17 @@ public interface YlxxbRepository extends BaseRepository&lt;Ylxxb, Integer&gt;{
17 17 * @param rq
18 18 * @return
19 19 */
20   - @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nylx=?2 and gsdm like %?3%",nativeQuery=true)
  20 + @Query(value="SELECT * FROM bsth_c_ylxxb where yyrq=?1 and nylx=?2 and gsdm like %?3%",nativeQuery=true)
21 21 List<Ylxxb> obtainYlxx(String rq,int nylx,String gsdm);
22 22  
23   - @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and gsdm=?2",nativeQuery=true)
  23 + @Query(value="SELECT * FROM bsth_c_ylxxb where yyrq=?1 and gsdm=?2",nativeQuery=true)
24 24 List<Ylxxb> checkYlxx(String rq,String gs);
25 25  
26   - @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nbbm =?2 and jylx=1",nativeQuery=true)
  26 + @Query(value="SELECT * FROM bsth_c_ylxxb where yyrq=?1 and nbbm =?2 and jylx=1",nativeQuery=true)
27 27 List<Ylxxb> obtainYlxx2(String rq,String nbbm);
28 28  
29 29 @Query(value="select * from bsth_c_ylxxb s where s.nbbm = ?1 and "
30   - + "to_days(s.yyrq) = to_days(?2)",nativeQuery=true)
  30 + + "s.yyrq=?2",nativeQuery=true)
31 31 List<Ylxxb> queryListYlxxb(String clZbh,String date);
32 32  
33 33  
... ...
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -129,7 +129,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
129 129 int countByLineCodeAndDate(String xlBm, String schDate);
130 130  
131 131 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
132   - @Query(value = "select DISTINCT s from ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2")
  132 + @Query(value = "select DISTINCT s from ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2 and ccService=false")
133 133 List<ScheduleRealInfo> findByLineCodeAndDate(String xlBm, String schDate);
134 134  
135 135 @Modifying
... ... @@ -146,7 +146,14 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
146 146 @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm =?1 and s.scheduleDateStr = ?2 order by s.lpName, s.realExecDate,s.fcsj")
147 147 List<ScheduleRealInfo> scheduleByDateAndLineQp(String line,String date);
148 148  
149   -
  149 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  150 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm =?1 and s.scheduleDateStr = ?2 and s.ccService=false order by s.lpName, s.realExecDate,s.fcsj")
  151 + List<ScheduleRealInfo> scheduleDdrb(String line,String date);
  152 +
  153 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  154 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and s.scheduleDateStr= ?2 and s.ccService=false order by s.xlDir,s.realExecDate,s.fcsj, s.lpName")
  155 + List<ScheduleRealInfo> scheduleDdrb2(String line,String date);
  156 +
150 157 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
151 158 @Query(value="select DISTINCT s from ScheduleRealInfo s where gsBm like %?1% and fgsBm like %?2% and s.scheduleDateStr = ?3 order by s.xlDir,s.realExecDate,s.fcsj, s.lpName")
152 159 List<ScheduleRealInfo> scheduleByDateAndLineByGs_(String gsdm,String fgsdm,String date);
... ... @@ -170,7 +177,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
170 177  
171 178 //按照时间段统计
172 179 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
173   - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and s.scheduleDateStr >= ?2 and s.scheduleDateStr<= ?3 and gsBm like %?4% and fgsBm like %?5% order by s.xlBm")
  180 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and s.scheduleDateStr between ?2 and ?3 and gsBm = ?4 and fgsBm = ?5 order by s.xlBm")
174 181 List<ScheduleRealInfo> scheduleByDateAndLineTj(String line,String date,String date2,String gsdm,String fgsdm);
175 182  
176 183 //按照时间段统计
... ... @@ -183,10 +190,10 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
183 190 List<ScheduleRealInfo> scheduleByDateAndLineYbb(String line,String date,String date2);
184 191  
185 192  
186   - @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,min(s.fcsj) as fcsj ) from ScheduleRealInfo s where s.xlBm like %?1% and s.scheduleDateStr = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate ORDER BY clZbh,fcsj")
  193 + @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,s.lpName as lpName,min(s.fcsj) as fcsj,min(s.realExecDate) as realExecDate ) from ScheduleRealInfo s where s.xlBm like %?1% and s.scheduleDateStr = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate,lpName ORDER BY clZbh,realExecDate,fcsj")
187 194 List<Map<String,Object>> yesterdayDataList(String line,String date,String gsbm,String fgsbm,String nbbm);
188 195  
189   - @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,min(s.fcsj) as fcsj ) from ScheduleRealInfo s where s.xlBm =?1 and s.scheduleDateStr = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate ORDER BY clZbh,fcsj")
  196 + @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,s.lpName as lpName,min(s.fcsj) as fcsj,min(s.realExecDate) as realExecDate ) from ScheduleRealInfo s where s.xlBm =?1 and s.scheduleDateStr = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate,lpName ORDER BY clZbh,realExecDate,fcsj")
190 197 List<Map<String,Object>> yesterdayDataList_eq(String line,String date,String gsbm,String fgsbm,String nbbm);
191 198  
192 199 @Query(value="select s from ScheduleRealInfo s where s.scheduleDateStr = ?1 ORDER BY xlBm,lpName,clZbh,xlDir")
... ...
src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
... ... @@ -110,8 +110,15 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
110 110 logger.warn("烂班不允许发送调度指令....");
111 111 return -1;
112 112 }
113   - String text = "已完成" + finish + "个班次,下一发车时间" + fmtHHmm_CN.print(sch.getDfsjT()) + ",由"
114   - + sch.getQdzName() + "发往" + sch.getZdzName();
  113 + String text = "您已完成" + finish + "个班次,下一发车时间" + fmtHHmm_CN.print(sch.getDfsjT()) + ",由"
  114 + + sch.getQdzName() + "发往" + sch.getZdzName() ;
  115 +
  116 + if(sch.getBcType().equals("venting")){
  117 + text += " (直放)";
  118 + }
  119 + else if(sch.getBcType().equals("major")){
  120 + text += " (放站到"+sch.getMajorStationName()+"带客)";
  121 + }
115 122  
116 123 //下发0x01指令 调度指令(闹钟有效)
117 124 long t = System.currentTimeMillis() + 1000 * 30,
... ...
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
... ... @@ -739,15 +739,29 @@ public class FormsServiceImpl implements FormsService {
739 739 ScheduleRealInfo s=listReal.get(j);
740 740 if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh)
741 741 &&s.getXlBm().equals(line)){
742   - newList.add(s);
743   - Set<ChildTaskPlan> cts = s.getcTasks();
744   - if(cts != null && cts.size() > 0){
745   - newList_.add(s);
746   - }else{
747   - if(s.getZdsjActual()!=null){
  742 + if(y.getLp()==null){
  743 + newList.add(s);
  744 + Set<ChildTaskPlan> cts = s.getcTasks();
  745 + if(cts != null && cts.size() > 0){
748 746 newList_.add(s);
  747 + }else{
  748 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  749 + newList_.add(s);
  750 + }
749 751 }
750   - }
  752 + }else{
  753 + if(y.getLp().equals(s.getLpName())){
  754 + newList.add(s);
  755 + Set<ChildTaskPlan> cts = s.getcTasks();
  756 + if(cts != null && cts.size() > 0){
  757 + newList_.add(s);
  758 + }else{
  759 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  760 + newList_.add(s);
  761 + }
  762 + }
  763 + }
  764 + }
751 765 }
752 766 }
753 767 double jhgl=culateMileageService.culateJhgl(newList);
... ... @@ -793,15 +807,29 @@ public class FormsServiceImpl implements FormsService {
793 807 ScheduleRealInfo s=listReal.get(j);
794 808 if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh)
795 809 &&s.getXlBm().equals(line)){
796   - newList.add(s);
797   - Set<ChildTaskPlan> cts = s.getcTasks();
  810 + if(y.getLp()==null){
  811 + newList.add(s);
  812 + Set<ChildTaskPlan> cts = s.getcTasks();
798 813 if(cts != null && cts.size() > 0){
799 814 newList_.add(s);
800 815 }else{
801   - if(s.getZdsjActual()!=null){
  816 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
802 817 newList_.add(s);
803 818 }
804 819 }
  820 + }else{
  821 + if(y.getLp().equals(s.getLpName())){
  822 + newList.add(s);
  823 + Set<ChildTaskPlan> cts = s.getcTasks();
  824 + if(cts != null && cts.size() > 0){
  825 + newList_.add(s);
  826 + }else{
  827 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  828 + newList_.add(s);
  829 + }
  830 + }
  831 + }
  832 + }
805 833 }
806 834 }
807 835 double jhgl=culateMileageService.culateJhgl(newList);
... ... @@ -884,7 +912,7 @@ public class FormsServiceImpl implements FormsService {
884 912 if(cts != null && cts.size() > 0){
885 913 newList_.add(s);
886 914 }else{
887   - if(s.getZdsjActual()!=null){
  915 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
888 916 newList_.add(s);
889 917 }
890 918 }
... ... @@ -1199,8 +1227,8 @@ public class FormsServiceImpl implements FormsService {
1199 1227  
1200 1228 String sql = "select gs_name, fgs_name, cl_zbh, fcsj, bc_type, xl_bm, xl_name, schedule_date"
1201 1229 + " from bsth_c_s_sp_info where gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"' "
1202   - + "and schedule_date_str >= '"+startDate+"' "
1203   - + "and schedule_date_str <= '"+endDate+"' ";
  1230 + + "and DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' "
  1231 + + "and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"' ";
1204 1232 if(line.trim().length() != 0){
1205 1233 sql += "and xl_bm = '"+line+"' ";
1206 1234 }
... ... @@ -1356,8 +1384,8 @@ public class FormsServiceImpl implements FormsService {
1356 1384  
1357 1385 String sql = " select b.xlgs, a.gs_bm,a.gs_name, a.fgs_bm,a.fgs_name , a.xl_bm,b.xl_name,b.sbc,b.sxl,b.scl,a.jbc ,a.jxl ,a.jcl,a.gslsbm,a.fgsbm,a.bc_type from "
1358 1386 + " (select count(DISTINCT gs_bm) gslsbm, gs_bm, count(DISTINCT fgs_bm) fgsbm,fgs_bm,gs_name,fgs_name ,xl_bm, count(*) as jbc,COUNT(DISTINCT xl_bm) as jxl ,COUNT(DISTINCT cl_zbh) as jcl,bc_type"
1359   - + " from bsth_c_s_sp_info" + " where schedule_date_str >= '"
1360   - + map.get("startDate").toString() + "' and schedule_date_str <='" + map.get("endDate").toString() + "' and xl_bm='"
  1387 + + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"
  1388 + + map.get("startDate").toString() + "' and '" + map.get("endDate").toString() + "' and xl_bm='"
1361 1389 + map.get("line").toString() + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out')"
1362 1390 + " and gs_bm='"+ map.get("gsdmEcecut").toString() + "'"
1363 1391 + " and fgs_bm='"+ map.get("fgsdmEcecut").toString() + "'"
... ... @@ -1440,8 +1468,8 @@ public class FormsServiceImpl implements FormsService {
1440 1468  
1441 1469 String sql = " select b.xlgs, a.gs_bm,a.gs_name, a.fgs_bm,a.fgs_name , a.xl_bm,b.xl_name,b.sbc,b.sxl,b.scl,a.jbc ,a.jxl ,a.jcl,a.gslsbm,a.fgsbm,a.bc_type from "
1442 1470 + " (select count(DISTINCT gs_bm) gslsbm, gs_bm, count(DISTINCT fgs_bm) fgsbm,fgs_bm,gs_name,fgs_name ,xl_bm, count(*) as jbc,COUNT(DISTINCT xl_bm) as jxl ,COUNT(DISTINCT cl_zbh) as jcl,bc_type"
1443   - + " from bsth_c_s_sp_info" + " where schedule_date_str >= '"
1444   - + map.get("startDate").toString() + "' and schedule_date_str<= '" + map.get("endDate").toString() + "' and xl_bm='"
  1471 + + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"
  1472 + + map.get("startDate").toString() + "' and '" + map.get("endDate").toString() + "' and xl_bm='"
1445 1473 + map.get("line").toString() + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out') "
1446 1474 + " and gs_bm='"+ map.get("gsdmAllline").toString() + "'"
1447 1475 + " and fgs_bm='"+ map.get("fgsdmAllline").toString() + "'"
... ... @@ -1604,7 +1632,7 @@ public class FormsServiceImpl implements FormsService {
1604 1632 @Override
1605 1633 public int compare(Singledata o1, Singledata o2) {
1606 1634 // TODO Auto-generated method stub
1607   - return o2.getxL().compareTo(o1.getxL());
  1635 + return (o2.getxL()+o2.getClzbh()).compareTo((o1.getxL()+o1.getClzbh()));
1608 1636 }
1609 1637 }
1610 1638 }
... ...
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
... ... @@ -57,7 +57,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
57 57  
58 58 try {
59 59  
60   - String sql = "select * from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'";
  60 + String sql = "select * from bsth_c_s_sp_info_real where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'";
61 61 if(line.length() != 0){
62 62 sql += " and xl_bm = '"+line+"'";
63 63 }
... ... @@ -86,7 +86,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
86 86 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
87 87 ScheduleRealInfo schedule = new ScheduleRealInfo();
88 88 schedule.setId(rs.getLong("id"));
89   - schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  89 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
90 90 schedule.setRealExecDate(rs.getString("real_exec_date"));
91 91 schedule.setXlBm(rs.getString("xl_bm"));
92 92 schedule.setXlName(rs.getString("xl_name"));
... ... @@ -117,6 +117,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
117 117 schedule.setjName(rs.getString("j_name"));
118 118 schedule.setSpId(rs.getLong("sp_id"));
119 119 schedule.setSflj(rs.getBoolean("sflj"));
  120 + schedule.setCcService(rs.getBoolean("cc_service"));
120 121  
121 122 if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
122 123 schedule.setFcsjActual(null);
... ... @@ -371,6 +372,8 @@ public class BusIntervalServiceImpl implements BusIntervalService {
371 372 // int endTime = Integer.valueOf(split[1].split(":")[0])*60 + Integer.valueOf(split[1].split(":")[1]);
372 373  
373 374 for(ScheduleRealInfo schedule : list){
  375 + if(schedule.isCcService())
  376 + continue;
374 377 String[] split1 = schedule.getFcsj().split(":");
375 378 String[] split2 = schedule.getZdsj().split(":");
376 379 long fcsj = Long.valueOf(split1[0])*60 + Long.valueOf(split1[1]);
... ... @@ -674,10 +677,10 @@ public class BusIntervalServiceImpl implements BusIntervalService {
674 677 // where += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'";
675 678 where += " and bc_type != 'ldks'";
676 679  
677   - String sql = "select id, schedule_date_Str, real_exec_date, xl_name, lp_name, bcs, bcsj, jhlc, bc_type,"
  680 + String sql = "select id, schedule_date_str, real_exec_date, xl_name, lp_name, bcs, bcsj, jhlc, bc_type,"
678 681 + " fcsj, fcsj_actual, zdsj, zdsj_actual, qdz_name, zdz_name, xl_dir, status, remarks, gs_name, fgs_name, sp_id"
679   - + " from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"'"
680   - + " and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'"+where+"";
  682 + + " ,cc_service from bsth_c_s_sp_info_real where schedule_date_str >= '"+startDate+"'"
  683 + + " and schedule_date_str <= '"+endDate+"'"+where+"";
681 684  
682 685 list = jdbcTemplate.query(sql,
683 686 new RowMapper<ScheduleRealInfo>(){
... ... @@ -685,7 +688,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
685 688 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
686 689 ScheduleRealInfo schedule = new ScheduleRealInfo();
687 690 schedule.setId(rs.getLong("id"));
688   - schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  691 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
689 692 schedule.setRealExecDate(rs.getString("real_exec_date"));
690 693 schedule.setXlName(rs.getString("xl_name"));
691 694 schedule.setLpName(rs.getString("lp_name"));
... ... @@ -705,6 +708,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
705 708 schedule.setGsName(rs.getString("gs_name"));
706 709 schedule.setFgsName(rs.getString("fgs_name"));
707 710 schedule.setSpId(rs.getLong("sp_id"));
  711 + schedule.setCcService(rs.getBoolean("cc_service"));
708 712  
709 713 if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
710 714 schedule.setFcsjActual(null);
... ... @@ -885,7 +889,8 @@ public class BusIntervalServiceImpl implements BusIntervalService {
885 889 }
886 890  
887 891 for(ScheduleRealInfo schedule : list){
888   - if(schedule.getXlName()==null || schedule.getXlName().trim().length()==0)
  892 + if(schedule.getXlName()==null || schedule.getXlName().trim().length()==0
  893 + || schedule.isCcService())
889 894 continue;
890 895 if(model.length() != 0){
891 896 if(ttSet.contains(schedule.getSpId())){
... ... @@ -1393,6 +1398,9 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1393 1398 int endTime = Integer.valueOf(split[1].split(":")[0])*60 + Integer.valueOf(split[1].split(":")[1]);
1394 1399  
1395 1400 for(ScheduleRealInfo s : list){
  1401 + if(s.isCcService()){
  1402 + continue;
  1403 + }
1396 1404 String key = s.getScheduleDateStr() + "/" + s.getLpName();
1397 1405 if(!keyMap.containsKey(key))
1398 1406 keyMap.put(key, new ArrayList<ScheduleRealInfo>());
... ... @@ -1668,14 +1676,14 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1668 1676 lc = new BigDecimal("0"+schedule.getJhlc());
1669 1677 }
1670 1678  
1671   - if(!schedule.isSflj()){
  1679 + if(!schedule.isSflj() && !schedule.isCcService()){
1672 1680 jhbc++;
1673 1681 jhlc = jhlc.add(lc);
1674 1682 }
1675   - if(schedule.getStatus() != -1){
  1683 + if(schedule.getStatus() != -1 && !schedule.isCcService()){
1676 1684 sjbc++;
1677 1685 sjlc = sjlc.add(lc);
1678   - } else if(schedule.getStatus() == -1){
  1686 + } else if(schedule.getStatus() == -1 && !schedule.isCcService()){
1679 1687 if(schedule.getAdjustExps() != null && schedule.getAdjustExps().indexOf("路阻") != -1){
1680 1688 lzbc++;
1681 1689 lzlc = lzlc.add(lc);
... ... @@ -1811,8 +1819,8 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1811 1819 }
1812 1820 try {
1813 1821  
1814   - String sql = "select * from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d')"
1815   - + " >= '"+startDate+"' and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'";
  1822 + String sql = "select * from bsth_c_s_sp_info_real where schedule_date_str"
  1823 + + " >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'";
1816 1824 if(line.length() != 0){
1817 1825 sql += " and xl_bm = '"+line+"'";
1818 1826 }
... ... @@ -1829,7 +1837,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1829 1837 }
1830 1838 }
1831 1839 if(company.length() != 0){
1832   - sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'";
  1840 + sql += " and (gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"')";
1833 1841 }
1834 1842 sql += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'";
1835 1843  
... ... @@ -1838,7 +1846,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1838 1846 @Override
1839 1847 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
1840 1848 ScheduleRealInfo schedule = new ScheduleRealInfo();
1841   - schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  1849 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
1842 1850 schedule.setXlBm(rs.getString("xl_bm"));
1843 1851 schedule.setXlName(rs.getString("xl_name"));
1844 1852 schedule.setLpName(rs.getString("lp_name"));
... ... @@ -1864,6 +1872,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1864 1872 schedule.setjGh(rs.getString("j_gh"));
1865 1873 schedule.setjName(rs.getString("j_name"));
1866 1874 schedule.setUpdateDate(rs.getDate("update_date"));
  1875 + schedule.setCcService(rs.getBoolean("cc_service"));
1867 1876  
1868 1877 if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
1869 1878 schedule.setFcsjActual(null);
... ... @@ -1905,7 +1914,8 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1905 1914 dxtz = 0, lbtz = 0;
1906 1915 for(ScheduleRealInfo schedule : keyMap.get(key)){
1907 1916 boolean flag = false;
1908   - if(schedule.getFcsjActual() != null && schedule.getStatus() != -1){
  1917 + if(schedule.getFcsjActual() != null && schedule.getStatus() != -1
  1918 + && !schedule.isCcService()){
1909 1919 sjbc++;
1910 1920 if(schedule.getDfsj() != null && !schedule.getDfsj().equals(schedule.getFcsj())){
1911 1921 flag = true;
... ... @@ -1937,9 +1947,9 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1937 1947 // tempMap.put("dxtz", dxtz);
1938 1948 tempMap.put("lbtz", lbtz);
1939 1949 tempMap.put("correct", sddf + zddf + lbtz);
1940   - tempMap.put("dfbl", df.format((double)(sddf + zddf)/sjbc*100) + "%");
  1950 + tempMap.put("dfbl", sjbc>0?df.format((double)(sddf + zddf)/sjbc*100):0 + "%");
1941 1951 // tempMap.put("dxbl", df.format((double)(dxtz)/sjbc*100) + "%");
1942   - tempMap.put("lbbl", df.format((double)(lbtz)/sjbc*100) + "%");
  1952 + tempMap.put("lbbl", sjbc>0?df.format((double)(lbtz)/sjbc*100):0 + "%");
1943 1953 // tempMap.put("correctbl", df.format((double)(sddf + zddf + dxtz + lbtz)/sjbc*100) + "%");
1944 1954 // tempMap.put("workList", tempList);
1945 1955  
... ... @@ -2069,9 +2079,9 @@ public class BusIntervalServiceImpl implements BusIntervalService {
2069 2079 // tempMap.put("dxtz", dxtz);
2070 2080 tempMap.put("lbtz", lbtz);
2071 2081 tempMap.put("correct", sddf + zddf + lbtz);
2072   - tempMap.put("dfbl", df.format((double)(sddf + zddf)/sjbc*100) + "%");
  2082 + tempMap.put("dfbl", sjbc>0?df.format((double)(sddf + zddf)/sjbc*100):0 + "%");
2073 2083  
2074   - tempMap.put("lbbl", df.format((double)(lbtz)/sjbc*100) + "%");
  2084 + tempMap.put("lbbl", sjbc>0?df.format((double)(lbtz)/sjbc*100):0 + "%");
2075 2085 // tempMap.put("correctbl", df.format((double)(sddf + zddf + dxtz + lbtz)/sjbc*100) + "%");
2076 2086 resList.add(tempMap);
2077 2087 }
... ... @@ -2097,8 +2107,8 @@ public class BusIntervalServiceImpl implements BusIntervalService {
2097 2107 resMap.put("dxbl", "0");
2098 2108 resMap.put("correctbl", "0");
2099 2109 }else{
2100   - resMap.put("dxbl", df.format((double)(dxtzz)/sjbc*100) + "%");
2101   - resMap.put("correctbl", df.format((double)(correct+dxtzz)/sjbc*100) + "%");
  2110 + resMap.put("dxbl", sjbc>0?df.format((double)(dxtzz)/sjbc*100):0 + "%");
  2111 + resMap.put("correctbl", sjbc>0?df.format((double)(correct+dxtzz)/sjbc*100):0 + "%");
2102 2112 }
2103 2113  
2104 2114  
... ... @@ -2152,8 +2162,8 @@ public class BusIntervalServiceImpl implements BusIntervalService {
2152 2162 resMap.put("dxbl", "0");
2153 2163 resMap.put("correctbl", "0");
2154 2164 }else{
2155   - resMap.put("dxbl", df.format((double)(dxtzf)/sjbc*100) + "%");
2156   - resMap.put("correctbl", df.format((double)(correct+dxtzf)/sjbc*100) + "%");
  2165 + resMap.put("dxbl", sjbc>0?df.format((double)(dxtzf)/sjbc*100):0 + "%");
  2166 + resMap.put("correctbl", sjbc>0?df.format((double)(correct+dxtzf)/sjbc*100):0 + "%");
2157 2167 }
2158 2168 resMap.put("xlname",BasicData.lineCode2NameMap.get(xlbm));
2159 2169 }
... ...
src/main/java/com/bsth/service/impl/CarParkServiceImpl.java
... ... @@ -30,6 +30,10 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem
30 30 try {
31 31 // 停车场编码
32 32 String parkCode = map.get("parkCode").equals("") ? null : map.get("parkCode").toString();
  33 + if (!selectTccInfoByCode(map)) {
  34 + resultMap.put("status", ResponseCode.ERROR);
  35 + return resultMap;
  36 + }
33 37 // 停车场名称
34 38 String parkName = map.get("parkName").equals("") ? "" : map.get("parkName").toString();
35 39 // 地理位置(百度坐标集合)
... ...
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
... ... @@ -19,7 +19,6 @@ import com.bsth.service.TrafficManageService;
19 19 import com.bsth.service.traffic.YgcBasicDataService;
20 20 import com.bsth.util.TimeUtils;
21 21 import com.bsth.util.db.DBUtils_MS;
22   -import com.bsth.webService.trafficManage.geotool.services.InternalPortType;
23 22 import com.bsth.webService.trafficManage.org.tempuri.Results;
24 23 import com.bsth.webService.trafficManage.org.tempuri.WebServiceLocator;
25 24 import com.bsth.webService.trafficManage.org.tempuri.WebServiceSoap;
... ... @@ -40,6 +39,7 @@ import java.sql.ResultSet;
40 39 import java.text.DecimalFormat;
41 40 import java.text.SimpleDateFormat;
42 41 import java.util.*;
  42 +import java.util.regex.Matcher;
43 43 import java.util.regex.Pattern;
44 44  
45 45 /**
... ... @@ -67,10 +67,16 @@ public class TrafficManageServiceImpl implements TrafficManageService{
67 67 @Autowired
68 68 private LineRepository lineRepository;
69 69  
  70 + @Autowired
  71 + private LineInformationRepository lineInformationRepository;
  72 +
70 73 // 站点路由repository
71 74 @Autowired
72 75 private StationRouteRepository stationRouteRepository;
73 76  
  77 + @Autowired
  78 + private SectionRepository sectionRepository;
  79 +
74 80 // 车辆repository
75 81 @Autowired
76 82 private CarsRepository carsRepository;
... ... @@ -104,8 +110,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{
104 110 private YgcBasicDataService ygcBasicDataService;
105 111  
106 112  
107   - // 运管处接口
108   - private InternalPortType portType = null;//new Internal().getInternalHttpSoap11Endpoint();
  113 + // 运管处上传接口
  114 + private com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap webServiceSoapUp;
109 115 private WebServiceSoap ssop ;
110 116 {
111 117 try {
... ... @@ -127,6 +133,23 @@ public class TrafficManageServiceImpl implements TrafficManageService{
127 133 private final String userNameOther = "user";
128 134 // 密码
129 135 private final String passwordOther = "user";
  136 +
  137 + // 用户名
  138 + private final String userNameUp = "user";
  139 + // 密码
  140 + private final String passwordUp = "user";
  141 +
  142 + private synchronized com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap getWebServiceSoapUp(){
  143 + try {
  144 + if(webServiceSoapUp == null){
  145 + webServiceSoapUp = new com.bsth.webService.trafficManage.up.org.tempuri.WebServiceLocator().getWebServiceSoap();
  146 + }
  147 + }catch (Exception e){
  148 + e.printStackTrace();
  149 + }finally {
  150 + return webServiceSoapUp;
  151 + }
  152 + }
130 153 /**
131 154 * 上传线路信息
132 155 */
... ... @@ -140,23 +163,38 @@ public class TrafficManageServiceImpl implements TrafficManageService{
140 163 Map<String,Object> map = new HashMap<>();
141 164 map.put("lineCode_eq", id);
142 165 Line line ;
  166 + LineInformation lineInformation;
143 167 line = lineRepository.findOne(new CustomerSpecs<Line>(map));
144 168 if(line == null){
145 169 continue;
146 170 }
147 171 List<StationRoute> upStationsList ;// 上行站点路由集
148   - List<StationRoute> downStationsList = null;// 下行站点路由集
149   - sBuffer.append("<Data>");
150   - sBuffer.append("<RequestOrg>上海巴士拓华科技发展有限公司</RequestOrg>");
151   - sBuffer.append("<DataList>");
  172 + List<StationRoute> downStationsList;// 下行站点路由集
  173 + List<Object[]> downPointList;// 下行站点集
  174 + List<Object[]> upPointList;// 上行站点集
  175 + sBuffer.append("<XLs>");
  176 + sBuffer.append("<XL>");
152 177 if(BasicData.lineId2ShangHaiCodeMap.get(line.getId()) == null){
153 178 return result;
154 179 }
155   - sBuffer.append("<LINE_ID>").append(line.getId()).append("</LINE_ID>");
156   - sBuffer.append("<LINE_CODE>").append(BasicData.lineId2ShangHaiCodeMap.get(line.getId())).append("</LINE_CODE>");
157   - sBuffer.append("<LINE_NAME>").append(line.getName()).append("</LINE_NAME>");
  180 + map = new HashMap<>();
  181 + map.put("line.id_eq",line.getId());
  182 + lineInformation = lineInformationRepository.findOne(new CustomerSpecs<LineInformation>(map));
  183 + if(lineInformation == null){
  184 + continue;
  185 + }
  186 + sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(line.getId())).append("</XLBM>");
  187 + sBuffer.append("<XLMC>").append(line.getName()).append("</XLMC>");
  188 + sBuffer.append("<QDZ>").append(line.getStartStationName()).append("</QDZ>");
  189 + sBuffer.append("<ZDZ>").append(line.getEndStationName()).append("</ZDZ>");
  190 + sBuffer.append("<QZLC>").append(lineInformation.getUpMileage()).append("</QZLC>");
  191 + sBuffer.append("<ZQLC>").append(lineInformation.getDownMileage()).append("</ZQLC>");
  192 + sBuffer.append("<XLGH>").append(line.getLinePlayType()).append("</XLGH>");
  193 + sBuffer.append("<UPDATE_DATE>").append(sdfnyr.format(new Date())).append("</UPDATE_DATE>");
  194 +
158 195 // 循环添加站点信息
159   - sBuffer.append("<LineStationList>");
  196 + sBuffer.append("<StationList>");
  197 +
160 198 // 先查上行
161 199 upStationsList = stationRouteRepository.findByLine(line.getLineCode(), 0);
162 200 int startId = 1;
... ... @@ -167,25 +205,23 @@ public class TrafficManageServiceImpl implements TrafficManageService{
167 205 downStationsList = stationRouteRepository.findByLine(line.getLineCode(), 1);
168 206 packagStationXml(downStationsList, sBuffer, startId);
169 207 }
170   - sBuffer.append("</LineStationList>");
  208 + sBuffer.append("</StationList>");
171 209  
172 210 // 循环添加站点点位信息
173 211 sBuffer.append("<LinePointList>");
  212 + upPointList = sectionRepository.getSectionDirByLineId(line.getId(),0);
174 213 startId = 1;
175   - startId = packagStationPointXml(upStationsList, sBuffer, startId);
  214 + startId = packagStationPointXml(upPointList, sBuffer, startId);
176 215 // 环线不查下行
177 216 if(line.getLinePlayType() != 1){
178   - packagStationPointXml(downStationsList, sBuffer, startId);
  217 + downPointList = sectionRepository.getSectionDirByLineId(line.getId(),1);
  218 + packagStationPointXml(downPointList, sBuffer, startId);
179 219 }
180 220 sBuffer.append("</LinePointList>");
181   - sBuffer.append("</DataList>");
182   - sBuffer.append("</Data>");
  221 + sBuffer.append("</XL>");
  222 + sBuffer.append("</XLs>");
183 223 // 调用上传方法
184   - result = ygcBasicDataService.invokeMethod("UpdateBusLineStation",sBuffer.toString());
185   - String str = "ReturnCode";
186   - // 解析返回值
187   - result = result.substring(result.indexOf(str)+str.length()+1,result.lastIndexOf(str)-2);
188   - if(result.equals("1")){
  224 + if(getWebServiceSoapUp().setXL(userNameUp,passwordUp,sBuffer.toString()).isSuccess()){
189 225 result = "success";
190 226 }else{
191 227 result = "failure";
... ... @@ -1162,15 +1198,15 @@ public class TrafficManageServiceImpl implements TrafficManageService{
1162 1198 }
1163 1199 paraMap = packageYgcStationNumParam(srRoute,null);
1164 1200 sBuffer.append("<Station>");
1165   - sBuffer.append("<STATION_ID>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paraMap)).append("</STATION_ID>");
1166   - sBuffer.append("<UPDDOWN>").append(srRoute.getDirections()).append("</UPDDOWN>");
1167   - sBuffer.append("<STATION_NO>").append(i).append("</STATION_NO>");
1168   - sBuffer.append("<STATION_CODE>").append(srRoute.getStationCode()).append("</STATION_CODE>");
1169   - sBuffer.append("<STATION_NAME>").append(srRoute.getStationName()).append("</STATION_NAME>");
1170   - sBuffer.append("<STATION_LON>").append(srRoute.getStation().getgLonx()).append("</STATION_LON>");
1171   - sBuffer.append("<STATION_LAT>").append(srRoute.getStation().getgLaty()).append("</STATION_LAT>");
1172   - sBuffer.append("<STATION_TYPE>").append(zdlx).append("</STATION_TYPE>");
1173   - sBuffer.append("<STATION_DISTANCE>").append(srRoute.getDistances()).append("</STATION_DISTANCE>");
  1201 + sBuffer.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paraMap)).append("</ZDXH>");
  1202 + sBuffer.append("<SXX>").append(srRoute.getDirections()).append("</SXX>");
  1203 + sBuffer.append("<ZDMC>").append(srRoute.getStationName()).append("</ZDMC>");
  1204 + sBuffer.append("<ZDBM>").append(srRoute.getStationCode()).append("</ZDBM>");
  1205 + sBuffer.append("<ZDJD>").append(srRoute.getStation().getgLonx()).append("</ZDJD>");
  1206 + sBuffer.append("<ZDWD>").append(srRoute.getStation().getgLaty()).append("</ZDWD>");
  1207 + sBuffer.append("<ZZ>").append(srRoute.getStation().getAddr() == null ? "" : srRoute.getStation().getAddr()).append("</ZZ>");
  1208 + sBuffer.append("<ZDLX>").append(zdlx).append("</ZDLX>");
  1209 + sBuffer.append("<ZJLC>").append(srRoute.getDistances()).append("</ZJLC>");
1174 1210 sBuffer.append("</Station>");
1175 1211 startId++;
1176 1212 }
... ... @@ -1178,35 +1214,37 @@ public class TrafficManageServiceImpl implements TrafficManageService{
1178 1214 }
1179 1215  
1180 1216 /**
1181   - * @param stationsList 站点路由
  1217 + * @param pointList 站点点位
1182 1218 * @param sBuffer sBuffer
1183 1219 * @param startId 站点序号起始ID
1184 1220 *
1185 1221 * @return 站点序号累加后的ID
1186 1222 */
1187   - private int packagStationPointXml(List<StationRoute> stationsList,StringBuffer sBuffer,int startId){
1188   - int size = stationsList.size();
1189   - StationRoute srRoute;
1190   - HashMap<String,String> paraMap;
1191   - String zdlx ;// 站点类型:0:起点站、1:终点站、2:中途站
  1223 + private int packagStationPointXml(List<Object[]> pointList,StringBuffer sBuffer,int startId){
  1224 + int size = pointList.size();
  1225 + Object[] objs;
  1226 + String bsection,dir,section;
  1227 + String[] sections ;
1192 1228 for (int i = 0; i < size; i++) {
1193   - srRoute = stationsList.get(i);
1194   - zdlx = srRoute.getStationMark();
1195   - if(zdlx.equals("B")){
1196   - zdlx = "0";
1197   - }else if(zdlx.equals("E")){
1198   - zdlx = "1";
1199   - }else{
1200   - zdlx = "2";
  1229 + objs = pointList.get(i);
  1230 + bsection = objs[0]+"";
  1231 + dir = objs[1]+"";
  1232 + // 取括号内的内容
  1233 + Pattern pattern = Pattern.compile("(?<=\\()(.+?)(?=\\))");
  1234 + Matcher matcher = pattern.matcher(bsection);
  1235 + if(matcher.find()){
  1236 + sections = matcher.group().split(",");
  1237 + for (int j = 0 ; j < sections.length ; j ++){
  1238 + section = sections[j];
  1239 + sBuffer.append("<LinePoint>");
  1240 + sBuffer.append("<ZDXH>").append(startId).append("</ZDXH>");
  1241 + sBuffer.append("<SXX>").append(dir).append("</SXX>");
  1242 + sBuffer.append("<ZDJD>").append(section.split(" ")[0]).append("</ZDJD>");
  1243 + sBuffer.append("<ZDWD>").append(section.split(" ")[1]).append("</ZDWD>");
  1244 + sBuffer.append("</LinePoint>");
  1245 + startId++;
  1246 + }
1201 1247 }
1202   - paraMap = packageYgcStationNumParam(srRoute,null);
1203   - sBuffer.append("<Point>");
1204   - sBuffer.append("<POINT_ID>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paraMap)).append("</POINT_ID>");
1205   - sBuffer.append("<UPDDOWN>").append(srRoute.getDirections()).append("</UPDDOWN>");
1206   - sBuffer.append("<POINTLON>").append(srRoute.getStation().getgLonx()).append("</POINTLON>");
1207   - sBuffer.append("<POINTLAT>").append(srRoute.getStation().getgLaty()).append("</POINTLAT>");
1208   - sBuffer.append("</Point>");
1209   - startId++;
1210 1248 }
1211 1249 return startId;
1212 1250 }
... ...
src/main/java/com/bsth/service/oil/impl/DlbServiceImpl.java
... ... @@ -427,7 +427,6 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
427 427 // TODO Auto-generated method stub
428 428 // 当天YLB信息
429 429 List<Dlb> dlList = this.listOrderBy(rq,gsbm,fgsbm,line,nbbm,"nbbm");
430   -// repository.obtainYl(rq,gsbm,fgsbm,line,nbbm,"nbbm");
431 430 // 当天YLXXB信息
432 431 List<Ylxxb> ylxxList = ylxxbRepository.obtainYlxx(rq, 0,gsbm);
433 432 // 从排班表中计算出行驶的总里程
... ... @@ -484,8 +483,7 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
484 483 Map<String, Object> newMap_=new HashMap<String,Object>();
485 484 List<Dlb> addList = new ArrayList<Dlb>();
486 485 List<Dlb> updateList = new ArrayList<Dlb>();
487   - String ins="";
488   - Map<String, Object> ylMap=new HashMap<String, Object>();
  486 + Map<String, Object> cMap=new HashMap<String, Object>();
489 487 List<Map<String, Object>> listpb_=listpb;
490 488 Collections.sort(listpb,new NbbmJcsxMap());
491 489 for (int x = 0; x < listpb_.size(); x++) {
... ... @@ -531,9 +529,24 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
531 529 if (t1.getNbbm().equals(map.get("clZbh").toString())
532 530 && t1.getJsy().equals(map.get("jGh").toString())
533 531 && t1.getXlbm().equals(map.get("xlBm").toString())) {
534   - t = t1;
535   - type = "update";
  532 + if(t1.getLp()==null){
  533 + //同人同车同线路不同路牌的过滤 (考虑到历史数据)
  534 + if (cMap.get(map.get("clZbh").toString()+map.get("jGh").toString()+map.get("xlBm").toString())==null) {
  535 + t = t1;
  536 + type = "update";
  537 + cMap.put(map.get("clZbh").toString()+map.get("jGh").toString()+map.get("xlBm").toString(),
  538 + map.get("clZbh").toString());
  539 + }
  540 + }else{
  541 + if(t1.getLp().equals(map.get("lpName").toString())){
  542 + t = t1;
  543 + type = "update";
  544 + }
  545 +
  546 + }
536 547 }
  548 +
  549 +
537 550 }
538 551 Double lc= Double.parseDouble(map.get("totalKilometers").toString());
539 552 if(map.get("seqNumber").toString().equals("1")){
... ... @@ -593,7 +606,7 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
593 606 t.setFgsdm(map.get("bCompany") == null ? "" : map.get("bCompany").toString());
594 607 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
595 608 t.setRq(sdf.parse(rq));
596   -
  609 + t.setLp(map.get("lpName").toString());
597 610 if(!(t.getSsgsdm().equals("") || t.getFgsdm().equals(""))){
598 611 if(type.equals("add")){
599 612 t.setCreatetime(date);
... ... @@ -601,10 +614,8 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
601 614 }else{
602 615 t.setUpdatetime(date);
603 616 updateList.add(t);
604   - ins += t.getId().toString()+",";
605 617 }
606 618 }
607   -// repository.save(t);
608 619 newMap.put("status", ResponseCode.SUCCESS);
609 620 }
610 621 }
... ...
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
... ... @@ -184,6 +184,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
184 184 t.setJcsx(Integer.parseInt(map.get("seqNumber").toString()));
185 185 t.setSsgsdm(map.get("company")==null?"":map.get("company").toString());
186 186 t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());
  187 + t.setLp(map.get("lpName")==null?"":map.get("lpName").toString());
187 188 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
188 189 t.setRq(sdf.parse(rq));
189 190 t.setCreatetime(dNow);
... ... @@ -262,13 +263,16 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
262 263 // TODO Auto-generated method stub
263 264 // 当天YLB信息
264 265 List<Ylb> ylList = this.listOrderBy(rq,gsbm,fgsbm,line,nbbm,"nbbm");
265   -// repository.obtainYl(rq,gsbm,fgsbm,line,nbbm,"nbbm");
  266 +
266 267 // 当天YLXXB信息
267 268 List<Ylxxb> ylxxList = ylxxbRepository.obtainYlxx(rq, 0,gsbm);
  269 +
268 270 // 前一天所有车辆最后进场班次信息
269 271 // List<Ylb> ylListBe = repository.obtainYlbefore(rq, gsbm, fgsbm, line, nbbm);
270 272 List<Ylb> ylListBe =repository.listMaxRqJcsx(rq, gsbm, fgsbm, line, nbbm);
  273 +
271 274 List<Cyl> clyList = cylRepository.obtainCyl(nbbm,gsbm);
  275 +
272 276 // 从排班表中计算出行驶的总里程
273 277 List<Map<String, Object>> listpb =new ArrayList<Map<String, Object>>();
274 278 List<Map<String, Object>> listpbs=scheduleRealInfoService.yesterdayDataList(line, rq, gsbm, fgsbm, "", nbbm);
... ... @@ -307,11 +311,12 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
307 311 }
308 312 }
309 313 }
310   -
  314 +
311 315 List<Ylb> addList = new ArrayList<Ylb>();
312 316 List<Ylb> updateList = new ArrayList<Ylb>();
313   - String ins="";
314 317 Map<String, Object> ylMap=new HashMap<String, Object>();
  318 +
  319 + Map<String, Object> cMap=new HashMap<String, Object>();
315 320 for (int x = 0; x < listpb.size(); x++) {
316 321 String type = "add";
317 322 boolean sfdc = true;
... ... @@ -328,12 +333,25 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
328 333 Ylb t1 = ylList.get(k);
329 334 if (t1.getNbbm().equals(map.get("clZbh").toString())
330 335 && t1.getJsy().equals(map.get("jGh").toString())
331   - && t1.getXlbm().equals(map.get("xlBm").toString())) {
332   - t = t1;
333   - type = "update";
  336 + && t1.getXlbm().equals(map.get("xlBm").toString()
  337 + )) {
  338 + if(t1.getLp()==null){
  339 + //同人同车同线路不同路牌的过滤 (考虑到历史数据)
  340 + if (cMap.get(map.get("clZbh").toString()+map.get("jGh").toString()+map.get("xlBm").toString())==null) {
  341 + t = t1;
  342 + type = "update";
  343 + cMap.put(map.get("clZbh").toString()+map.get("jGh").toString()+map.get("xlBm").toString(),
  344 + map.get("clZbh").toString());
  345 + }
  346 + }else{
  347 + if(t1.getLp().equals(map.get("lpName").toString())){
  348 + t = t1;
  349 + type = "update";
  350 + }
  351 +
  352 + }
334 353 }
335 354 }
336   -
337 355 // 当日的第一个班次,出场油量等于前一天的最后一个班次的进场油量
338 356 if (map.get("seqNumber").toString().equals("1")) {
339 357 boolean fage = true;
... ... @@ -428,7 +446,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
428 446 t.setFgsdm(map.get("bCompany") == null ? "" : map.get("bCompany").toString());
429 447 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
430 448 t.setRq(sdf.parse(rq));
431   -
  449 + t.setLp(map.get("lpName")==null?"":map.get("lpName").toString());
432 450 if(!(t.getSsgsdm().equals("") || t.getFgsdm().equals(""))){
433 451 if(type.equals("add")){
434 452 t.setCreatetime(date);
... ... @@ -436,7 +454,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
436 454 }else{
437 455 t.setUpdatetime(date);
438 456 updateList.add(t);
439   - ins += t.getId().toString()+",";
440 457 }
441 458 }
442 459 // repository.save(t);
... ... @@ -456,7 +473,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
456 473 }
457 474  
458 475 }
459   -
460 476 if(updateList.size()>0){
461 477 for (int i = 0; i < updateList.size(); i++) {
462 478 repository.save(updateList.get(i));
... ... @@ -1437,23 +1453,12 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1437 1453 t.setYh(yh);
1438 1454 t.setJzyl(ylxs);
1439 1455 nextJzyl=ylxs;
1440   -
1441   -
1442 1456 }else{
1443 1457 t.setYh(yh);
1444 1458 t.setJzyl(nextJzyl);
1445 1459 }
1446 1460 }
1447 1461 repository.save(t);
1448   - for (int z = 0; z < cylList.size(); z++) {
1449   - Cyl cyl = cylList.get(z);
1450   - if (t.getNbbm().equals(cyl.getNbbm())) {
1451   - cyl.setCyl(t.getJzyl());
1452   - cyl.setUpdatetime(t.getRq());
1453   - break;
1454   - }
1455   - cylRepository.save(cyl);
1456   - }
1457 1462 }
1458 1463 newMap.put("status", ResponseCode.SUCCESS);
1459 1464 }
... ... @@ -1547,7 +1552,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1547 1552 String px) {
1548 1553 // TODO Auto-generated method stub
1549 1554 String sql="SELECT * FROM bsth_c_ylb "
1550   - + " where to_days('"+rq+"')=to_days(rq) and ssgsdm like '%"+gsdm+"%' "
  1555 + + " where rq ='"+rq+"' and ssgsdm like '%"+gsdm+"%' "
1551 1556 + " and fgsdm like '%"+fgsdm+"%'";
1552 1557 if(xlbm.equals("")){
1553 1558 sql+= " and xlbm like '%"+xlbm+"%' ";
... ...
src/main/java/com/bsth/service/realcontrol/LineConfigService.java
... ... @@ -26,4 +26,6 @@ public interface LineConfigService extends BaseService&lt;LineConfig, Integer&gt;{
26 26 Map<String,Object> parkAndStationSet(Map<String, String> map);
27 27  
28 28 Map<String,Object> findByIdx(String idx);
  29 +
  30 + Map<String,Object> setAutoExec(Map<String, String> map);
29 31 }
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -139,9 +139,9 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
139 139  
140 140 Map<String, Object> multi_dftz(List<DfsjChange> dfsjcs);
141 141  
142   - Map<String,Object> changeBcType(Long id, String bcType, String remarks);
  142 + Map<String, Object> changeBcType(Long id, String bcType, String remarks, String majorStationName);
143 143  
144   - Map<String,Object> historySave(ScheduleRealInfo sch);
  144 + Map<String,Object> historySave(ScheduleRealInfo sch);
145 145  
146 146 Map<String, Object> MapById(Long id) ;
147 147  
... ...
src/main/java/com/bsth/service/realcontrol/impl/ChildTaskPlanServiceImpl.java
... ... @@ -46,14 +46,11 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon
46 46 try {
47 47 ScheduleRealInfo sch = dayOfSchedule.get(t.getSchedule().getId());
48 48 //保存起终点名称
49   - //String prefix = sch.getXlBm() + "_" + sch.getXlDir() + "_";
50 49 if(StringUtils.isEmpty(t.getStartStationName()))
51 50 t.setStartStationName(getStationName(sch.getXlBm(), t.getStartStation()));
52   - //t.setStartStationName(BasicData.getStationNameByCode(t.getStartStation(), prefix));
53 51  
54 52 if(StringUtils.isEmpty(t.getEndStationName()))
55 53 t.setEndStationName(getStationName(sch.getXlBm(), t.getEndStation()));
56   - //t.setEndStationName(BasicData.getStationNameByCode(t.getEndStation(), prefix));
57 54 if(t.getDestroyReason() == null)
58 55 t.setDestroyReason("");
59 56  
... ... @@ -61,13 +58,63 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon
61 58 if(t.isDestroy() && StringUtils.isEmpty(t.getDestroyReason()))
62 59 t.setDestroyReason(t.getReason());
63 60  
  61 + //中途换车出场子任务,级联生成一个主任务,供报表和对外接口计算用
  62 + if(StringUtils.isNotEmpty(t.getNbbm())){
  63 + ScheduleRealInfo ccServiceSch = new ScheduleRealInfo();
  64 + ccServiceSch.setSflj(sch.isSflj());
  65 + ccServiceSch.setjGh(sch.getjGh());
  66 + ccServiceSch.setjName(sch.getjName());
  67 + ccServiceSch.setsGh(sch.getsGh());
  68 + ccServiceSch.setsName(sch.getsName());
  69 + ccServiceSch.setGsBm(sch.getGsBm());
  70 + ccServiceSch.setFgsBm(sch.getFgsBm());
  71 + ccServiceSch.setGsName(sch.getGsName());
  72 + ccServiceSch.setFgsName(sch.getFgsName());
  73 + ccServiceSch.setLpName(sch.getLpName());
  74 + ccServiceSch.setXlBm(sch.getXlBm());
  75 + ccServiceSch.setXlName(sch.getXlName());
  76 + ccServiceSch.setXlDir(sch.getXlDir());
  77 + ccServiceSch.setScheduleDate(sch.getScheduleDate());
  78 + ccServiceSch.setScheduleDateStr(sch.getScheduleDateStr());
  79 + ccServiceSch.setRealExecDate(sch.getRealExecDate());
  80 +
  81 + ccServiceSch.setId(null);
  82 + ccServiceSch.setSpId(null);
  83 + ccServiceSch.setClZbh(t.getNbbm());
  84 + ccServiceSch.setCcService(true);
  85 + ccServiceSch.setFcsj(t.getStartDate());
  86 + ccServiceSch.setDfsj(t.getStartDate());
  87 + ccServiceSch.setZdsj(t.getEndDate());
  88 + ccServiceSch.setBcsj(0);
  89 + ccServiceSch.setJhlcOrig(Double.parseDouble(String.valueOf(t.getMileage())));
  90 + ccServiceSch.setJhlc(ccServiceSch.getJhlcOrig());
  91 + ccServiceSch.setQdzCode(t.getStartStation());
  92 + ccServiceSch.setZdzCode(t.getEndStation());
  93 + ccServiceSch.setQdzName(t.getStartStationName());
  94 + ccServiceSch.setZdzName(t.getEndStationName());
  95 + ccServiceSch.setFcsjActual(ccServiceSch.getDfsj());
  96 + ccServiceSch.setZdsjActual(ccServiceSch.getZdsj());
  97 + ccServiceSch.setRemarks(t.getRemarks());
  98 + ccServiceSch.setStatus(2);
  99 + if("1".equals(t.getType2())){
  100 + ccServiceSch.setBcType("normal");
  101 + }
  102 + else {
  103 + if("2".equals(t.getType2()))
  104 + ccServiceSch.setBcType("in");
  105 + else if("3".equals(t.getType2()))
  106 + ccServiceSch.setBcType("out");
  107 + }
  108 + //实时入库
  109 + ccServiceSch = scheduleRealInfoRepository.save(ccServiceSch);
  110 + t.setCcId(ccServiceSch.getId());
  111 + }
  112 +
64 113 //先持久化子任务
65 114 rs = super.save(t);
66 115 //关联主任务
67 116 sch.getcTasks().add(t);
68 117 dayOfSchedule.save(sch);
69   - //直接持久化
70   - //scheduleRealInfoRepository.save(sch);
71 118 //站到场对照
72 119 t.setSchedule(sch);
73 120 Station2ParkBuffer.put(t);
... ... @@ -101,6 +148,11 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon
101 148  
102 149 //删除子任务
103 150 rs = super.delete(id);
  151 +
  152 + //删除级联生成的换车主任务
  153 + if(null != cPlan.getCcId()){
  154 + scheduleRealInfoRepository.delete(cPlan.getCcId());
  155 + }
104 156 //dayOfSchedule.save(sch);
105 157 //解除和主任务关联
106 158 ScheduleRealInfo sch = dayOfSchedule.get(cPlan.getSchedule().getId());
... ...
src/main/java/com/bsth/service/realcontrol/impl/LineConfigServiceImpl.java
... ... @@ -224,4 +224,25 @@ public class LineConfigServiceImpl extends BaseServiceImpl&lt;LineConfig, Integer&gt;
224 224 }
225 225 return rs;
226 226 }
  227 +
  228 + @Override
  229 + public Map<String, Object> setAutoExec(Map<String, String> map) {
  230 + String lineCode = map.get("lineCode").toString();
  231 + boolean autoExec = Boolean.parseBoolean(map.get("autoExec").toString());
  232 +
  233 + Map<String, Object> rs = new HashMap<>();
  234 + try {
  235 + LineConfig conf = lineConfigData.get(lineCode);
  236 + conf.setAutoExec(autoExec);
  237 +
  238 + lineConfigData.set(conf);
  239 + rs.put("status", ResponseCode.SUCCESS);
  240 + rs.put("conf", conf);
  241 + } catch (Exception e) {
  242 + rs.put("status", ResponseCode.ERROR);
  243 + rs.put("msg", e.getMessage());
  244 + logger.error("", e);
  245 + }
  246 + return rs;
  247 + }
227 248 }
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -24,7 +24,6 @@ import com.bsth.data.utils.CustomStringUtils;
24 24 import com.bsth.entity.Cars;
25 25 import com.bsth.entity.Line;
26 26 import com.bsth.entity.Personnel;
27   -import com.bsth.entity.mcy_forms.Waybillday;
28 27 import com.bsth.entity.oil.Dlb;
29 28 import com.bsth.entity.oil.Ylb;
30 29 import com.bsth.entity.oil.Ylxxb;
... ... @@ -873,7 +872,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
873 872 if(cts != null && cts.size() > 0){
874 873 lists.add(s);
875 874 }else{
876   - if(s.getZdsjActual()!=null){
  875 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
877 876 lists.add(s);
878 877 }
879 878 }
... ... @@ -1743,30 +1742,28 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1743 1742 if(cts != null && cts.size() > 0){
1744 1743 lists.add(s);
1745 1744 }else{
1746   - if(s.getZdsjActual()!=null){
  1745 + if(s.getFcsjActual() !=null&&s.getZdsjActual()!=null){
1747 1746 lists.add(s);
1748 1747 }
1749 1748 }
1750 1749 }
1751   - double ksgl=culateService.culateKsgl(list);
1752   - double sjgl=culateService.culateSjgl(lists);
1753   - double jccgl=culateService.culateJccgl(lists);
1754   - double ljgl=culateService.culateLjgl(lists);
1755   -
1756   - map.put("jhlc", Arith.add(culateService.culateJhgl(list),culateService.culateJhJccgl(list))); //计划里程
  1750 + map.put("jhbc", culateService.culateJhbc(list,""));//计划班次
  1751 + map.put("jhlc", Arith.add(culateService.culateJhgl(list),
  1752 + culateService.culateJhJccgl(list))); //计划总里程
  1753 + map.put("cjbc", culateService.culateLbbc(list));//烂班班次
1757 1754 map.put("remMileage", culateService.culateLbgl(list)); //烂班公里
  1755 + map.put("ljbc", culateService.culateLjbc(lists,""));//临加班次
  1756 + double ljgl=culateService.culateLjgl(lists);
1758 1757 map.put("addMileage", ljgl); //临加公里
1759   - map.put("yygl",Arith.add(sjgl,ljgl)); //实际公里
1760   - map.put("ksgl", ksgl);//空驶公里
1761   - map.put("realMileage",Arith.add(Arith.add(ksgl,jccgl ),Arith.add(sjgl,ljgl)));
1762   -// map.put("realMileage", format.format(yygl + ksgl + jcclc+addMileage));
1763   - map.put("jhbc", culateService.culateJhbc(list,""));
1764   - map.put("cjbc", culateService.culateLbbc(list));
1765   - map.put("ljbc", culateService.culateLjbc(lists,""));
1766 1758 map.put("sjbc", culateService.culateSjbc(lists,"") + culateService.culateLjbc(lists,""));
1767   - map.put("jcclc", jccgl);
  1759 + double ksgl=culateService.culateKsgl(list);//子任务空驶公里
  1760 + double jccgl=culateService.culateJccgl(lists);//空驶班次公里
  1761 + map.put("ksgl", ksgl);//空驶公里
  1762 + double sjgl=culateService.culateSjgl(lists);//实际营运公里
  1763 + map.put("realMileage",Arith.add(Arith.add(ksgl,jccgl ),Arith.add(sjgl,ljgl)));//总公里
1768 1764 map.put("zkslc", Arith.add(ksgl,jccgl));
1769   -// map.put("zkslc", format.format(ksgl + jcclc+addMileageJc));
  1765 + map.put("jcclc", jccgl);
  1766 + map.put("yygl",Arith.add(sjgl,ljgl)); //总营运公里
1770 1767 return map;
1771 1768 }
1772 1769  
... ... @@ -1789,7 +1786,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1789 1786 if(cts != null && cts.size() > 0){
1790 1787 lists.add(s);
1791 1788 }else{
1792   - if(s.getZdsjActual()!=null){
  1789 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
1793 1790 lists.add(s);
1794 1791 }
1795 1792 }
... ... @@ -2139,20 +2136,24 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2139 2136 for (int j = 0; j < listit.size(); j++) {
2140 2137 ScheduleRealInfo t = new ScheduleRealInfo();
2141 2138 ChildTaskPlan childTaskPlan = listit.get(j);
2142   - if (childTaskPlan.isDestroy()) {
2143   - t.setFcsjActual("");
2144   - t.setZdsjActual("");
2145   - t.setJhlc(0.0);
2146   - } else {
2147   - t.setFcsjActual(childTaskPlan.getStartDate());
2148   - t.setZdsjActual(childTaskPlan.getEndDate());
2149   - t.setJhlc(Double.parseDouble(String.valueOf(childTaskPlan.getMileage())));
  2139 + if(childTaskPlan.getCcId()==null){
  2140 + if (childTaskPlan.isDestroy()) {
  2141 + t.setFcsjActual("");
  2142 + t.setZdsjActual("");
  2143 + t.setJhlc(0.0);
  2144 + } else {
  2145 + t.setFcsjActual(childTaskPlan.getStartDate());
  2146 + t.setZdsjActual(childTaskPlan.getEndDate());
  2147 + t.setJhlc(Double.parseDouble(String.valueOf(childTaskPlan.getMileage())));
  2148 + }
  2149 + t.setFcsj(childTaskPlan.getStartDate());
  2150 + t.setZdsj(childTaskPlan.getEndDate());
  2151 + t.setQdzName(childTaskPlan.getStartStationName());
  2152 + t.setZdzName(childTaskPlan.getEndStationName());
  2153 + t.setRemarks(childTaskPlan.getRemarks());
  2154 + t.setAdjustExps("子");
  2155 + listSchedule.add(t);
2150 2156 }
2151   - t.setQdzName(childTaskPlan.getStartStationName());
2152   - t.setZdzName(childTaskPlan.getEndStationName());
2153   - t.setRemarks(childTaskPlan.getRemarks());
2154   - t.setAdjustExps("子");
2155   - listSchedule.add(t);
2156 2157 }
2157 2158 }
2158 2159 }
... ... @@ -2295,7 +2296,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2295 2296 if(cts != null && cts.size() > 0){
2296 2297 lists.add(s);
2297 2298 }else{
2298   - if(s.getZdsjActual()!=null){
  2299 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
2299 2300 lists.add(s);
2300 2301 }
2301 2302 }
... ... @@ -2370,7 +2371,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2370 2371 if(cts != null && cts.size() > 0){
2371 2372 lists.add(s);
2372 2373 }else{
2373   - if(s.getZdsjActual()!=null){
  2374 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
2374 2375 lists.add(s);
2375 2376 }
2376 2377 }
... ... @@ -2433,7 +2434,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2433 2434 if(cts != null && cts.size() > 0){
2434 2435 lists.add(s);
2435 2436 }else{
2436   - if(s.getZdsjActual()!=null){
  2437 + if(s.getZdsjActual()!=null&& s.getFcsjActual()!=null){
2437 2438 lists.add(s);
2438 2439 }
2439 2440 }
... ... @@ -2487,10 +2488,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2487 2488 map.put("dtbc", 0);
2488 2489 map.put("dtbc_m", 0);
2489 2490 map.put("dtbc_a", 0);
2490   - map.put("djg", 0);
2491   - map.put("djg_m", 0);
2492   - map.put("djg_a", 0);
2493   - map.put("djg_time", 0);
  2491 + Map<String, Object> m_=culateService.culateDjg(lists, list.get(0).getXlBm());
  2492 + map.put("djg", m_.get("djgcsq"));
  2493 + map.put("djg_m", m_.get("djgcsz"));
  2494 + map.put("djg_a", m_.get("djgcsw"));
  2495 + map.put("djg_time", m_.get("djgsj"));
2494 2496 }
2495 2497 return map;
2496 2498 }
... ... @@ -2515,7 +2517,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2515 2517 if(cts != null && cts.size() > 0){
2516 2518 list_s.add(s);
2517 2519 }else{
2518   - if(s.getZdsjActual()!=null){
  2520 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
2519 2521 list_s.add(s);
2520 2522 }
2521 2523 }
... ... @@ -2592,10 +2594,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2592 2594 map.put("dtbc", 0);
2593 2595 map.put("dtbc_m", 0);
2594 2596 map.put("dtbc_a", 0);
2595   - map.put("djg", 0);
2596   - map.put("djg_m", 0);
2597   - map.put("djg_a", 0);
2598   - map.put("djg_time", 0);
  2597 + Map<String, Object> m_=culateService.culateDjg(list_s, list.get(0).getXlBm());
  2598 + map.put("djg", m_.get("djgcsq"));
  2599 + map.put("djg_m", m_.get("djgcsz"));
  2600 + map.put("djg_a", m_.get("djgcsw"));
  2601 + map.put("djg_time", m_.get("djgsj"));
2599 2602 lMap.add(map);
2600 2603 if (type != null && type.length() != 0 && type.equals("export")) {
2601 2604 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
... ... @@ -2723,7 +2726,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2723 2726 String zdsjActual = "";
2724 2727 String zdsj1 = "";
2725 2728 String zdsjActual1 = "";
2726   - List<ScheduleRealInfo> listInfo = scheduleRealInfoRepository.scheduleByDateAndLineQp(line, date);
  2729 + List<ScheduleRealInfo> listInfo = scheduleRealInfoRepository.scheduleDdrb(line, date);
2727 2730 for (int i = 0; i < listInfo.size(); i++) {
2728 2731 ScheduleRealInfo t = listInfo.get(i);
2729 2732 if (!lpName.equals(t.getLpName())) {
... ... @@ -2743,7 +2746,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2743 2746 list.add(t);
2744 2747 }
2745 2748  
2746   - List<ScheduleRealInfo> listInfo2 = scheduleRealInfoRepository.scheduleByDateAndLineQp2(line, date);
  2749 + List<ScheduleRealInfo> listInfo2 = scheduleRealInfoRepository.scheduleDdrb2(line, date);
2747 2750 List<ScheduleRealInfo> xList = new ArrayList<ScheduleRealInfo>();
2748 2751 List<ScheduleRealInfo> yList = new ArrayList<ScheduleRealInfo>();
2749 2752 List<ScheduleRealInfo> zList = new ArrayList<ScheduleRealInfo>();
... ... @@ -2945,21 +2948,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2945 2948 }else{
2946 2949 yesterdayDataList=scheduleRealInfoRepository.yesterdayDataList_eq(line, date,gsbm,fgsbm,nbbm);
2947 2950 }
2948   - System.out.println("time2:"+new Date());
2949   -
2950 2951 List<ScheduleRealInfo> lists = scheduleRealInfoRepository.queryListWaybill3(jGh, nbbm, date,gsbm,fgsbm);
2951 2952 for (int x = 0; x < yesterdayDataList.size(); x++) {
2952 2953 String jName = yesterdayDataList.get(x).get("jGh").toString();
2953 2954 String clZbh = yesterdayDataList.get(x).get("clZbh").toString();
2954 2955 String xlbm = yesterdayDataList.get(x).get("xlBm").toString();
  2956 + String lp =yesterdayDataList.get(x).get("lpName").toString();
2955 2957 Map<String, Object> map = new HashMap<String, Object>();
2956 2958 boolean fage = true;
2957 2959 String company="";
2958 2960 String bCompany="";
2959 2961 List<ScheduleRealInfo> listS=new ArrayList<ScheduleRealInfo>();
2960 2962 for (ScheduleRealInfo scheduleRealInfo : lists) {
2961   - if(scheduleRealInfo.getjGh().equals(jName) && scheduleRealInfo.getClZbh().equals(clZbh)
2962   - && scheduleRealInfo.getXlBm().equals(xlbm)){
  2963 + if(scheduleRealInfo.getjGh().equals(jName)
  2964 + && scheduleRealInfo.getClZbh().equals(clZbh)
  2965 + && scheduleRealInfo.getXlBm().equals(xlbm)
  2966 + && scheduleRealInfo.getLpName().equals(lp)){
2963 2967 if (fage) {
2964 2968 //根据线路代码获取公司
2965 2969 company=scheduleRealInfo.getGsBm();
... ... @@ -2976,7 +2980,6 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2976 2980 }
2977 2981 }
2978 2982 }
2979   -
2980 2983 yesterdayDataList.get(x).put("company", company);
2981 2984 yesterdayDataList.get(x).put("bCompany", bCompany);
2982 2985 Double ljgl=culateMieageService.culateLjgl(listS);
... ... @@ -3001,6 +3004,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3001 3004 }
3002 3005 }
3003 3006 }
  3007 +
3004 3008 return yesterdayDataList;
3005 3009 }
3006 3010  
... ... @@ -3237,7 +3241,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3237 3241 * @return
3238 3242 */
3239 3243 @Override
3240   - public Map<String, Object> changeBcType(Long id, String bcType, String remarks) {
  3244 + public Map<String, Object> changeBcType(Long id, String bcType, String remarks, String majorStationName) {
3241 3245 Map<String, Object> rs = new HashMap<>();
3242 3246  
3243 3247 try {
... ... @@ -3247,6 +3251,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3247 3251 sch.addRemarks(remarks);
3248 3252 rs.put("status", ResponseCode.SUCCESS);
3249 3253 rs.put("t", sch);
  3254 +
  3255 + if("major".equals(bcType)){
  3256 + sch.setMajorStationName(majorStationName);
  3257 + }
3250 3258 }
3251 3259 } catch (Exception e) {
3252 3260 logger.error("", e);
... ... @@ -3546,7 +3554,6 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3546 3554 map.put("fast", "");
3547 3555 map.put("slow", "");
3548 3556 }
3549   - System.out.println(map);
3550 3557 listMap.add(map);
3551 3558 } catch (Exception e) {
3552 3559 e.printStackTrace();
... ... @@ -3737,26 +3744,46 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3737 3744 type=0;
3738 3745 for (int i = 0; i < listYlb.size(); i++) {
3739 3746 Ylb y = listYlb.get(i);
3740   - ccyl=Arith.add(ccyl, y.getCzyl());
3741   - jcyl=Arith.add(jcyl, y.getJzyl());
3742   - yh =Arith.add(yh ,y.getYh());
3743   - jzl =Arith.add(jzl, y.getJzl());
3744   - zlc =Arith.add(zlc, y.getZlc());
  3747 + if(y.getLp()==null){
  3748 + ccyl=Arith.add(ccyl, y.getCzyl());
  3749 + jcyl=Arith.add(jcyl, y.getJzyl());
  3750 + yh =Arith.add(yh ,y.getYh());
  3751 + jzl =Arith.add(jzl, y.getJzl());
  3752 + zlc =Arith.add(zlc, y.getZlc());
  3753 + }else{
  3754 + if(y.getLp().equals(s.getLpName())){
  3755 + ccyl=Arith.add(ccyl, y.getCzyl());
  3756 + jcyl=Arith.add(jcyl, y.getJzyl());
  3757 + yh =Arith.add(yh ,y.getYh());
  3758 + jzl =Arith.add(jzl, y.getJzl());
  3759 + zlc =Arith.add(zlc, y.getZlc());
  3760 + }
  3761 + }
  3762 +
3745 3763 }
3746 3764 }else{
3747 3765 type=1;
3748 3766 for (int i = 0; i < listDlb.size(); i++) {
3749 3767 Dlb d=listDlb.get(i);
3750   - ccyl=Arith.add(ccyl, d.getCzcd());
3751   - jcyl=Arith.add(jcyl, d.getJzcd());
3752   - yh =Arith.add(yh ,d.getHd());
3753   - jzl =Arith.add(jzl, d.getCdl());
3754   - zlc =Arith.add(zlc, d.getZlc());
  3768 + if(d.getLp()==null){
  3769 + ccyl=Arith.add(ccyl, d.getCzcd());
  3770 + jcyl=Arith.add(jcyl, d.getJzcd());
  3771 + yh =Arith.add(yh ,d.getHd());
  3772 + jzl =Arith.add(jzl, d.getCdl());
  3773 + zlc =Arith.add(zlc, d.getZlc());
  3774 + }else{
  3775 + if(d.getLp().equals(s.getLpName())){
  3776 + ccyl=Arith.add(ccyl, d.getCzcd());
  3777 + jcyl=Arith.add(jcyl, d.getJzcd());
  3778 + yh =Arith.add(yh ,d.getHd());
  3779 + jzl =Arith.add(jzl, d.getCdl());
  3780 + zlc =Arith.add(zlc, d.getZlc());
  3781 + }
  3782 + }
  3783 +
3755 3784 }
3756 3785 }
3757 3786  
3758   -
3759   -
3760 3787 map.put("jzl", jzl);
3761 3788 map.put("yh", yh);
3762 3789 map.put("ccyl", ccyl);
... ... @@ -4211,7 +4238,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
4211 4238 if(cts != null && cts.size() > 0){
4212 4239 lists.add(s);
4213 4240 }else{
4214   - if(s.getZdsjActual()!=null){
  4241 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
4215 4242 lists.add(s);
4216 4243 }
4217 4244 }
... ...
src/main/java/com/bsth/service/report/CulateMileageService.java
... ... @@ -39,6 +39,8 @@ public interface CulateMileageService {
39 39 Map<String, Object> culateWdbcs(List<ScheduleRealInfo> lists);
40 40  
41 41 int culateDtfzbc(List<ScheduleRealInfo> lists,String type,String status,String item);
  42 +
  43 +
42 44 //以下计算方法供新报表使用
43 45 Map<String, Double> culateSjlcMap(List<ScheduleRealInfo> lists);//计划内营运and计划外营运
44 46  
... ...
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
1 1 package com.bsth.service.report.impl;
2 2  
3   -import java.sql.ResultSet;
4   -import java.sql.SQLException;
5   -import java.text.DecimalFormat;
6   -import java.text.ParseException;
7   -import java.text.SimpleDateFormat;
8   -import java.util.ArrayList;
9   -import java.util.Collections;
10   -import java.util.HashMap;
11   -import java.util.Iterator;
12   -import java.util.List;
13   -import java.util.Map;
14   -import java.util.Set;
15   -
16   -import org.apache.commons.lang.StringUtils;
17   -import org.springframework.beans.factory.annotation.Autowired;
18   -import org.springframework.jdbc.core.JdbcTemplate;
19   -import org.springframework.jdbc.core.RowMapper;
20   -import org.springframework.stereotype.Service;
21   -
22   -import com.bsth.data.BasicData;
23 3 import com.bsth.entity.realcontrol.ChildTaskPlan;
24 4 import com.bsth.entity.realcontrol.ScheduleRealInfo;
25 5 import com.bsth.entity.sys.Interval;
... ... @@ -27,8 +7,18 @@ import com.bsth.service.report.CulateMileageService;
27 7 import com.bsth.util.Arith;
28 8 import com.bsth.util.ComparableChild;
29 9 import com.bsth.util.ComparableJob;
30   -import com.bsth.util.ReportUtils;
31   -import com.google.common.util.concurrent.AbstractScheduledService.Scheduler;
  10 +import org.apache.commons.lang.StringUtils;
  11 +import org.springframework.beans.factory.annotation.Autowired;
  12 +import org.springframework.jdbc.core.JdbcTemplate;
  13 +import org.springframework.jdbc.core.RowMapper;
  14 +import org.springframework.stereotype.Service;
  15 +
  16 +import java.sql.ResultSet;
  17 +import java.sql.SQLException;
  18 +import java.text.DecimalFormat;
  19 +import java.text.ParseException;
  20 +import java.text.SimpleDateFormat;
  21 +import java.util.*;
32 22  
33 23 @Service
34 24 public class CulateMileageServiceImpl implements CulateMileageService{
... ... @@ -179,10 +169,12 @@ public class CulateMileageServiceImpl implements CulateMileageService{
179 169 Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
180 170 while (it.hasNext()) {
181 171 ChildTaskPlan childTaskPlan = it.next();
182   - if(childTaskPlan.getMileageType().equals("service")){
183   - if (childTaskPlan.isDestroy()) {
184   - zlblc=Arith.add(zlblc,childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage());
185   - }
  172 + if(childTaskPlan.getCcId()==null){
  173 + if(childTaskPlan.getMileageType().equals("service")){
  174 + if (childTaskPlan.isDestroy()) {
  175 + zlblc=Arith.add(zlblc,childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage());
  176 + }
  177 + }
186 178 }
187 179 }
188 180 }
... ... @@ -198,30 +190,11 @@ public class CulateMileageServiceImpl implements CulateMileageService{
198 190 for (int i = 0; i < lists.size(); i++) {
199 191 ScheduleRealInfo scheduleRealInfo=lists.get(i);
200 192 if (!isInOut(scheduleRealInfo)) {
201   -// Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
202   -// if(childTaskPlans.isEmpty()){
  193 + if(!scheduleRealInfo.isCcService()){
203 194 if(scheduleRealInfo.getStatus() == -1){
204 195 lbbc++;
205 196 }
206   -// }
207   - /*else{
208   - if(scheduleRealInfo.getStatus() == -1){
209   - boolean fage=true;
210   - Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
211   - if(it.hasNext()){
212   - ChildTaskPlan childTaskPlan = it.next();
213   - if(!childTaskPlan.isDestroy()){
214   - if(childTaskPlan.getMileageType().equals("service")){
215   - fage=false;
216   - }
217   - }
218   -
219   - }
220   - if(fage){
221   - lbbc++;
222   - }
223   - }
224   - }*/
  197 + }
225 198 }
226 199 }
227 200 return lbbc;
... ... @@ -378,7 +351,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
378 351 Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
379 352 while (it.hasNext()) {
380 353 ChildTaskPlan childTaskPlan = it.next();
381   - if(childTaskPlan.getMileageType().equals("service")){
  354 + if(childTaskPlan.getMileageType().equals("service") && childTaskPlan.getCcId()==null){
382 355 if (!childTaskPlan.isDestroy()) {
383 356 Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
384 357 ljgl=Arith.add(ljgl,jhgl);
... ... @@ -399,11 +372,13 @@ public class CulateMileageServiceImpl implements CulateMileageService{
399 372 Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
400 373 while (it.hasNext()) {
401 374 ChildTaskPlan childTaskPlan = it.next();
402   - if("service".equals(childTaskPlan.getMileageType())&&"临加".equals(childTaskPlan.getType1())){
403   - if (!childTaskPlan.isDestroy()) {
404   - Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
405   - ljgl=Arith.add(ljgl,jhgl);
406   - }
  375 + if(childTaskPlan.getCcId()==null){
  376 + if("service".equals(childTaskPlan.getMileageType())&&"临加".equals(childTaskPlan.getType1())){
  377 + if (!childTaskPlan.isDestroy()) {
  378 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  379 + ljgl=Arith.add(ljgl,jhgl);
  380 + }
  381 + }
407 382 }
408 383 }
409 384 }
... ... @@ -463,7 +438,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
463 438 for (int i = 0; i < lists.size(); i++) {
464 439 ScheduleRealInfo scheduleRealInfo=lists.get(i);
465 440 if (!isInOut(scheduleRealInfo)) {
466   - if(!scheduleRealInfo.isSflj()){
  441 + if(!scheduleRealInfo.isSflj() && !scheduleRealInfo.isCcService()){
467 442 jhgl=Arith.add(jhgl,scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
468 443 }
469 444 }
... ... @@ -504,7 +479,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
504 479 for (int i = 0; i < lists.size(); i++) {
505 480 ScheduleRealInfo scheduleRealInfo=lists.get(i);
506 481 if (!isInOut(scheduleRealInfo)) {
507   - if(!scheduleRealInfo.isSflj()){
  482 + if(!scheduleRealInfo.isSflj() && !scheduleRealInfo.isCcService()){
508 483 String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");
509 484 long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
510 485 if(item.equals("zgf")){
... ... @@ -535,21 +510,23 @@ public class CulateMileageServiceImpl implements CulateMileageService{
535 510 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
536 511 if(!scheduleRealInfo.isSflj()){
537 512 if(childTaskPlans.isEmpty()){
538   - if(!scheduleRealInfo.isDestroy()){
539   - double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
540   - double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
541   - if(jhlc-jhlcOrig>0){
542   - sjgl=Arith.add(sjgl,jhlcOrig);
543   - }else{
544   - sjgl=Arith.add(sjgl,jhlc);
545   - }
546   -
  513 + if(!scheduleRealInfo.isDestroy()){
  514 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  515 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  516 + if(jhlc-jhlcOrig>0){
  517 + sjgl=Arith.add(sjgl,jhlcOrig);
  518 + }else{
  519 + sjgl=Arith.add(sjgl,jhlc);
547 520 }
  521 +
  522 + }
548 523 }else{
549 524 Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
550 525 while (it.hasNext()) {
551 526 ChildTaskPlan childTaskPlan = it.next();
552   - if(childTaskPlan.getMileageType().equals("service")&&"正常".equals(childTaskPlan.getType1())){
  527 + if(childTaskPlan.getMileageType().equals("service")
  528 + &&"正常".equals(childTaskPlan.getType1())
  529 + && childTaskPlan.getCcId()==null){
553 530 if (!childTaskPlan.isDestroy()) {
554 531 Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
555 532 sjgl=Arith.add(sjgl,jhgl);
... ... @@ -649,8 +626,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
649 626 for (int i = 0; i < lists.size(); i++) {
650 627 ScheduleRealInfo scheduleRealInfo=lists.get(i);
651 628 if (!isInOut(scheduleRealInfo)) {
652   - Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
653   - if(!scheduleRealInfo.isSflj()){
  629 + if(!scheduleRealInfo.isSflj() && !scheduleRealInfo.isCcService()){
654 630 String time="";
655 631 if(item.equals("zgf") || item.equals("wgf")){
656 632 if(scheduleRealInfo.getFcsjActual()!=null){
... ... @@ -681,62 +657,6 @@ public class CulateMileageServiceImpl implements CulateMileageService{
681 657 }
682 658  
683 659 }
684   - /*if(childTaskPlans.isEmpty()){
685   - if(scheduleRealInfo.getStatus()!=-1){
686   - if(item.equals("zgf")){
687   - if(fcsj>=zgf1 && fcsj<=zgf2){
688   - sjbc++;
689   - }
690   - }else if(item.equals("wgf")){
691   - if(fcsj>=wgf1 && fcsj<=wgf2){
692   - sjbc++;
693   - }
694   - }else{
695   - sjbc++;
696   - }
697   -
698   - }
699   - }else{
700   - if(scheduleRealInfo.getStatus() == -1){
701   - boolean fage=false;
702   - Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
703   - while(it.hasNext()){
704   - ChildTaskPlan childTaskPlan = it.next();
705   - if(!childTaskPlan.isDestroy()){
706   - if(childTaskPlan.getMileageType().equals("service")){
707   - fage=true;
708   - }
709   - }
710   -
711   - }
712   - if(fage){
713   - if(item.equals("zgf")){
714   - if(fcsj>=zgf1 && fcsj<=zgf2){
715   - sjbc++;
716   - }
717   - }else if(item.equals("wgf")){
718   - if(fcsj>=wgf1 && fcsj<=wgf2){
719   - sjbc++;
720   - }
721   - }else{
722   - sjbc++;
723   - }
724   - }
725   -
726   - }else{
727   - if(item.equals("zgf")){
728   - if(fcsj>=zgf1 && fcsj<=zgf2){
729   - sjbc++;
730   - }
731   - }else if(item.equals("wgf")){
732   - if(fcsj>=wgf1 && fcsj<=wgf2){
733   - sjbc++;
734   - }
735   - }else{
736   - sjbc++;
737   - }
738   - }
739   - }*/
740 660 }
741 661 }
742 662 }
... ... @@ -750,14 +670,13 @@ public class CulateMileageServiceImpl implements CulateMileageService{
750 670 double ksgl =0;
751 671 for (int i = 0; i < lists.size(); i++) {
752 672 ScheduleRealInfo scheduleRealInfo=lists.get(i);
753   - if (!(scheduleRealInfo.getBcType().equals("in")
754   - || scheduleRealInfo.getBcType().equals("out"))) {
  673 + if (!isInOut(scheduleRealInfo)) {
755 674 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
756 675 if(!childTaskPlans.isEmpty()){
757 676 Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
758 677 while (it.hasNext()) {
759 678 ChildTaskPlan childTaskPlan = it.next();
760   - if(childTaskPlan.getMileageType().equals("empty")){
  679 + if(childTaskPlan.getMileageType().equals("empty") && childTaskPlan.getCcId()==null){
761 680 if (!childTaskPlan.isDestroy()) {
762 681 Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
763 682 ksgl=Arith.add(ksgl,jhgl);
... ... @@ -786,7 +705,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
786 705 Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
787 706 while (it.hasNext()) {
788 707 ChildTaskPlan childTaskPlan = it.next();
789   - if(childTaskPlan.getMileageType().equals("empty")){
  708 + if(childTaskPlan.getMileageType().equals("empty") && childTaskPlan.getCcId()==null){
790 709 if (!childTaskPlan.isDestroy()) {
791 710 Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
792 711 jcclc=Arith.add(jcclc,jhgl);
... ... @@ -907,7 +826,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
907 826 double jcclc =0;
908 827 for (int i = 0; i < lists.size(); i++) {
909 828 ScheduleRealInfo scheduleRealInfo=lists.get(i);
910   - if(!scheduleRealInfo.isSflj()){
  829 + if(!scheduleRealInfo.isSflj() && !scheduleRealInfo.isCcService()){
911 830 if (scheduleRealInfo.getBcType().equals("in")
912 831 || scheduleRealInfo.getBcType().equals("out")|| scheduleRealInfo.getBcType().equals("ldks")) {
913 832 if(!scheduleRealInfo.isSflj()){
... ... @@ -946,16 +865,17 @@ public class CulateMileageServiceImpl implements CulateMileageService{
946 865 //有子任务
947 866 if (cts != null && cts.size() > 0) {
948 867 for(ChildTaskPlan c : cts){
949   - if(item.equals("其他")){
950   - if(c.isDestroy() &&
951   - ((c.getDestroyReason()==null?"": c.getDestroyReason()).equals(item)||
952   - (c.getDestroyReason()==null?"": c.getDestroyReason()).equals("")))
953   - sum = Arith.add(sum, c.getMileage());
954   - }else{
955   - if(c.isDestroy() && (c.getDestroyReason()==null?"": c.getDestroyReason()).equals(item))
956   - sum = Arith.add(sum, c.getMileage());
  868 + if(c.getCcId()==null){
  869 + if(item.equals("其他")){
  870 + if(c.isDestroy() &&
  871 + ((c.getDestroyReason()==null?"": c.getDestroyReason()).equals(item)||
  872 + (c.getDestroyReason()==null?"": c.getDestroyReason()).equals("")))
  873 + sum = Arith.add(sum, c.getMileage());
  874 + }else{
  875 + if(c.isDestroy() && (c.getDestroyReason()==null?"": c.getDestroyReason()).equals(item))
  876 + sum = Arith.add(sum, c.getMileage());
  877 + }
957 878 }
958   -
959 879 }
960 880 }
961 881 else if(isInOut(sch))
... ... @@ -984,7 +904,8 @@ public class CulateMileageServiceImpl implements CulateMileageService{
984 904 int fzbc=0;
985 905 for (int i = 0; i < lists.size(); i++) {
986 906 ScheduleRealInfo scheduleRealInfo=lists.get(i);
987   - if (scheduleRealInfo.getBcType().equals("venting")) {
  907 + if (scheduleRealInfo.getBcType().equals("venting")
  908 + || scheduleRealInfo.getBcType().equals("major")) {
988 909 // if(!scheduleRealInfo.isSflj()){
989 910 String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");
990 911 long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
... ...
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
... ... @@ -1838,7 +1838,7 @@ public class ReportServiceImpl implements ReportService{
1838 1838 || scheduleRealInfo.getBcType().equals("ldks"))) {
1839 1839 // Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
1840 1840 // if(childTaskPlans.isEmpty()){
1841   - if(scheduleRealInfo.isSflj()){
  1841 + if(scheduleRealInfo.isSflj() && !scheduleRealInfo.isCcService()){
1842 1842 Map<String, Object> newMap=new HashMap<String,Object>();
1843 1843 newMap.put("lp", scheduleRealInfo.getLpName());
1844 1844 newMap.put("nbbm", scheduleRealInfo.getClZbh());
... ... @@ -1916,7 +1916,7 @@ public class ReportServiceImpl implements ReportService{
1916 1916 if(cts != null && cts.size() > 0){
1917 1917 lists.add(s);
1918 1918 }else{
1919   - if(s.getZdsjActual()!=null){
  1919 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
1920 1920 lists.add(s);
1921 1921 }
1922 1922 }
... ... @@ -2534,7 +2534,7 @@ public class ReportServiceImpl implements ReportService{
2534 2534 if(cts != null && cts.size() > 0){
2535 2535 lists.add(s);
2536 2536 }else{
2537   - if(s.getZdsjActual()!=null){
  2537 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
2538 2538 lists.add(s);
2539 2539 }
2540 2540 }
... ...
src/main/java/com/bsth/service/schedule/impl/PeopleCarPlanServiceImpl.java
... ... @@ -42,7 +42,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
42 42 List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>();
43 43  
44 44 try {
45   - String sql = "select * from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d') = '"+date+"'";
  45 + String sql = "select * from bsth_c_s_sp_info_real where schedule_date_str = '"+date+"'";
46 46  
47 47 if(line.length() != 0)
48 48 sql += " and xl_bm = '"+line+"'";
... ... @@ -54,7 +54,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
54 54 @Override
55 55 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
56 56 ScheduleRealInfo schedule = new ScheduleRealInfo();
57   - schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  57 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
58 58 schedule.setRealExecDate(rs.getString("real_exec_date"));
59 59 schedule.setXlName(rs.getString("xl_name"));
60 60 schedule.setLpName(rs.getString("lp_name"));
... ... @@ -80,6 +80,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
80 80 schedule.setsGh(rs.getString("s_gh"));
81 81 schedule.setsName(rs.getString("s_name"));
82 82 schedule.setSpId(rs.getLong("sp_id"));
  83 + schedule.setCcService(rs.getBoolean("cc_service"));
83 84  
84 85 if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
85 86 schedule.setFcsjActual(null);
... ... @@ -175,7 +176,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
175 176 }
176 177  
177 178 if(map.get("subCompany")!=null){
178   - subCompany=map.get("subCompany").toString();
  179 + subCompany = map.get("subCompany").toString();
179 180 }
180 181 String line = map.get("line").toString();
181 182 String date = map.get("date").toString();
... ... @@ -187,7 +188,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
187 188  
188 189 try {
189 190  
190   - String sql = "select * from bsth_c_s_sp_info where DATE_FORMAT(schedule_date,'%Y-%m-%d') = '"+date+"'";
  191 + String sql = "select * from bsth_c_s_sp_info where schedule_date = '"+date+"'";
191 192 if(line.length() != 0){
192 193 sql += " and xl_bm = '"+line+"'";
193 194 }
... ... @@ -364,7 +365,10 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
364 365 int jhsb = 0, sjsb = 0, jhmb = 0, sjmb = 0;
365 366 int jhzgf = 0, sjzgf = 0, jhwgf = 0, sjwgf = 0;
366 367 for(ScheduleRealInfo schedule : keyMap.get(key)){
367   -// schedule.setFcsjAll(schedule.getFcsj());
  368 + if(schedule.isCcService()){
  369 + continue;
  370 + }
  371 +
368 372 if(companyName.length() == 0 && schedule.getGsName() != null)
369 373 companyName = schedule.getGsName();
370 374 if(subCompanyName.length() == 0 && schedule.getFgsName() != null)
... ... @@ -547,7 +551,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
547 551 }
548 552 try {
549 553  
550   - String sql = "select * from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'";
  554 + String sql = "select * from bsth_c_s_sp_info_real where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'";
551 555 if(line.length() != 0){
552 556 sql += " and xl_bm = '"+line+"'";
553 557 }
... ... @@ -565,7 +569,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
565 569 @Override
566 570 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
567 571 ScheduleRealInfo schedule = new ScheduleRealInfo();
568   - schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  572 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
569 573 schedule.setXlName(rs.getString("xl_name"));
570 574 schedule.setBcType(rs.getString("bc_type"));
571 575 schedule.setGsName(rs.getString("gs_name"));
... ... @@ -579,6 +583,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
579 583 schedule.setBcsj(rs.getInt("bcsj"));
580 584 schedule.setQdzName(rs.getString("qdz_name"));
581 585 schedule.setSpId(rs.getLong("sp_id"));
  586 + schedule.setCcService(rs.getBoolean("cc_service"));
582 587  
583 588 if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
584 589 schedule.setFcsjActual(null);
... ... @@ -636,6 +641,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
636 641  
637 642 //分组计算 同时判断是否所选时刻信息
638 643 for(ScheduleRealInfo schedule : list){
  644 + if(schedule.isCcService()){
  645 + continue;
  646 + }
639 647 DO:{
640 648 if(model.length() != 0){
641 649 for(Long tt : ttList){
... ... @@ -840,7 +848,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
840 848 }
841 849 try {
842 850  
843   - String sql = "select * from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'";
  851 + String sql = "select * from bsth_c_s_sp_info_real where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'";
844 852 if(line.length() != 0){
845 853 sql += " and xl_bm = '"+line+"'";
846 854 }
... ... @@ -862,7 +870,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
862 870 @Override
863 871 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
864 872 ScheduleRealInfo schedule = new ScheduleRealInfo();
865   - schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  873 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
866 874 schedule.setRealExecDate(rs.getString("real_exec_date"));
867 875 schedule.setXlName(rs.getString("xl_name"));
868 876 schedule.setBcType(rs.getString("bc_type"));
... ... @@ -878,6 +886,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
878 886 schedule.setBcsj(rs.getInt("bcsj"));
879 887 schedule.setQdzName(rs.getString("qdz_name"));
880 888 schedule.setSpId(rs.getLong("sp_id"));
  889 + schedule.setCcService(rs.getBoolean("cc_service"));
881 890  
882 891 if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
883 892 schedule.setFcsjActual(null);
... ... @@ -973,6 +982,10 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
973 982  
974 983 //按时间段分组
975 984 for(ScheduleRealInfo schedule : list){
  985 + if(schedule.isCcService()){
  986 + continue;
  987 + }
  988 +
976 989 if(companyName.length()==0&&schedule.getGsName()!=null
977 990 &&schedule.getGsName().trim().length()!=0){
978 991 companyName = schedule.getGsName();
... ... @@ -1230,9 +1243,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1230 1243 date = sdf.format(new Date());
1231 1244  
1232 1245 try {
1233   - String sql = "select a.schedule_date_Str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name,"
1234   - + " b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line"
1235   - + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') = '"+date+"'"
  1246 + String sql = "select a.schedule_date_str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name,"
  1247 + + " a.cc_service, b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line"
  1248 + + " where schedule_date_str = '"+date+"'"
1236 1249 + " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks' and bc_type != 'region'";
1237 1250 if(line.trim().length() != 0)
1238 1251 sql += " and xl_bm = '"+line+"'";
... ... @@ -1244,7 +1257,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1244 1257 @Override
1245 1258 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
1246 1259 ScheduleRealInfo schedule = new ScheduleRealInfo();
1247   - schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  1260 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
1248 1261 schedule.setRealExecDate(rs.getString("real_exec_date"));
1249 1262 schedule.setXlName(rs.getString("xl_name"));
1250 1263 schedule.setFcsj(rs.getString("fcsj"));
... ... @@ -1257,6 +1270,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1257 1270 schedule.setStatus(rs.getInt("status"));
1258 1271 schedule.setGsName(rs.getString("gs_name"));
1259 1272 schedule.setFgsName(rs.getString("fgs_name"));
  1273 + schedule.setCcService(rs.getBoolean("cc_service"));
1260 1274  
1261 1275 int startOpt = 0;
1262 1276 if(rs.getString("start_opt") != null && rs.getString("start_opt").trim().length() != 0){
... ... @@ -1298,7 +1312,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1298 1312 String companyName = "", subCompanyName = "";
1299 1313  
1300 1314 for(ScheduleRealInfo s : list){
1301   - if(lineSet.contains(s.getXlName())){
  1315 + if(lineSet.contains(s.getXlName()) || s.isCcService()){
1302 1316 continue;
1303 1317 }
1304 1318 String xlName = s.getXlName();
... ... @@ -1456,9 +1470,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1456 1470 }
1457 1471  
1458 1472 try {
1459   - String sql = "select a.schedule_date_Str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name,"
1460   - + " b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line"
1461   - + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'"
  1473 + String sql = "select a.schedule_date_str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name,"
  1474 + + " a.cc_service, b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line"
  1475 + + " where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'"
1462 1476 + " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks' and bc_type != 'region'";
1463 1477 if(line.length() != 0)
1464 1478 sql += " and xl_bm = '"+line+"'";
... ... @@ -1470,7 +1484,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1470 1484 @Override
1471 1485 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
1472 1486 ScheduleRealInfo schedule = new ScheduleRealInfo();
1473   - schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  1487 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
1474 1488 schedule.setRealExecDate(rs.getString("real_exec_date"));
1475 1489 schedule.setXlName(rs.getString("xl_name"));
1476 1490 schedule.setFcsj(rs.getString("fcsj"));
... ... @@ -1483,6 +1497,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1483 1497 schedule.setStatus(rs.getInt("status"));
1484 1498 schedule.setGsName(rs.getString("gs_name"));
1485 1499 schedule.setFgsName(rs.getString("fgs_name"));
  1500 + schedule.setCcService(rs.getBoolean("cc_service"));
1486 1501  
1487 1502 int startOpt = 0;
1488 1503 if(rs.getString("start_opt") != null && rs.getString("start_opt").trim().length() != 0){
... ... @@ -1524,7 +1539,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1524 1539 String companyName = "", subCompanyName = "";
1525 1540  
1526 1541 for(ScheduleRealInfo s : list){
1527   - if(lineSet.contains(s.getXlName())){
  1542 + if(lineSet.contains(s.getXlName()) || s.isCcService()){
1528 1543 continue;
1529 1544 }
1530 1545 String xlName = s.getXlName();
... ... @@ -1716,7 +1731,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1716 1731  
1717 1732 String sql =
1718 1733 "select r.id, r.schedule_date_str, r.xl_name, r.cl_zbh, r.j_gh, r.j_name, r.fcsj, d.timestamp, d.reply46, d.reply47, d.reply46time, d.reply47time, r.gs_name, r.fgs_name " +
1719   - "FROM bsth_c_s_sp_info_real as r left join bsth_v_directive_60 as d on r.id = d.sch and d.is_dispatch = 1 where DATE_FORMAT(schedule_date,'%Y-%m-%d') = '"+date+"'";
  1734 + "FROM bsth_c_s_sp_info_real as r left join bsth_v_directive_60 as d on r.id = d.sch and d.is_dispatch = 1 where schedule_date_str = '"+date+"'";
1720 1735 if(line.length() != 0){
1721 1736 sql += " and xl_bm = '"+line+"'";
1722 1737 }
... ... @@ -1728,7 +1743,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1728 1743 }
1729 1744 sql += " union " +
1730 1745 "select r.id, r.schedule_date_str, r.xl_name, r.cl_zbh, r.j_gh, r.j_name, r.fcsj, d.timestamp, d.reply46, d.reply47, d.reply46time, d.reply47time, r.gs_name, r.fgs_name " +
1731   - "FROM bsth_c_s_sp_info_real as r right join bsth_v_directive_60 as d on r.id = d.sch where d.is_dispatch = 1 and DATE_FORMAT(schedule_date,'%Y-%m-%d') = '"+date+"'";
  1746 + "FROM bsth_c_s_sp_info_real as r right join bsth_v_directive_60 as d on r.id = d.sch where d.is_dispatch = 1 and schedule_date_str = '"+date+"'";
1732 1747 if(line.length() != 0){
1733 1748 sql += " and xl_bm = '"+line+"'";
1734 1749 }
... ...
src/main/java/com/bsth/service/traffic/impl/YgcBasicDataServiceImpl.java
... ... @@ -45,6 +45,7 @@ public class YgcBasicDataServiceImpl implements YgcBasicDataService{
45 45  
46 46 private static String IP = "218.242.195.76:9091";
47 47 private static String downTargetEndpoint = "http://" + IP +"/ygc.TransManager.Basicdown?wsdl";
  48 + // 此地址作废
48 49 private static String upTargetEndpoint = "http://" + IP +"/ygc.TransManager.BasicUpload?wsdl";
49 50 private static String namespace = "http://service.shygc.com";
50 51 private static String userName = "admin";
... ...
src/main/java/com/bsth/webService/trafficManage/up/org/tempuri/Results.java 0 → 100644
  1 +/**
  2 + * Results.java
  3 + *
  4 + * This file was auto-generated from WSDL
  5 + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
  6 + */
  7 +
  8 +package com.bsth.webService.trafficManage.up.org.tempuri;
  9 +
  10 +public class Results implements java.io.Serializable {
  11 + private boolean success;
  12 +
  13 + private java.lang.String message;
  14 +
  15 + public Results() {
  16 + }
  17 +
  18 + public Results(
  19 + boolean success,
  20 + java.lang.String message) {
  21 + this.success = success;
  22 + this.message = message;
  23 + }
  24 +
  25 +
  26 + /**
  27 + * Gets the success value for this Results.
  28 + *
  29 + * @return success
  30 + */
  31 + public boolean isSuccess() {
  32 + return success;
  33 + }
  34 +
  35 +
  36 + /**
  37 + * Sets the success value for this Results.
  38 + *
  39 + * @param success
  40 + */
  41 + public void setSuccess(boolean success) {
  42 + this.success = success;
  43 + }
  44 +
  45 +
  46 + /**
  47 + * Gets the message value for this Results.
  48 + *
  49 + * @return message
  50 + */
  51 + public java.lang.String getMessage() {
  52 + return message;
  53 + }
  54 +
  55 +
  56 + /**
  57 + * Sets the message value for this Results.
  58 + *
  59 + * @param message
  60 + */
  61 + public void setMessage(java.lang.String message) {
  62 + this.message = message;
  63 + }
  64 +
  65 + private java.lang.Object __equalsCalc = null;
  66 + public synchronized boolean equals(java.lang.Object obj) {
  67 + if (!(obj instanceof Results)) return false;
  68 + Results other = (Results) obj;
  69 + if (obj == null) return false;
  70 + if (this == obj) return true;
  71 + if (__equalsCalc != null) {
  72 + return (__equalsCalc == obj);
  73 + }
  74 + __equalsCalc = obj;
  75 + boolean _equals;
  76 + _equals = true &&
  77 + this.success == other.isSuccess() &&
  78 + ((this.message==null && other.getMessage()==null) ||
  79 + (this.message!=null &&
  80 + this.message.equals(other.getMessage())));
  81 + __equalsCalc = null;
  82 + return _equals;
  83 + }
  84 +
  85 + private boolean __hashCodeCalc = false;
  86 + public synchronized int hashCode() {
  87 + if (__hashCodeCalc) {
  88 + return 0;
  89 + }
  90 + __hashCodeCalc = true;
  91 + int _hashCode = 1;
  92 + _hashCode += (isSuccess() ? Boolean.TRUE : Boolean.FALSE).hashCode();
  93 + if (getMessage() != null) {
  94 + _hashCode += getMessage().hashCode();
  95 + }
  96 + __hashCodeCalc = false;
  97 + return _hashCode;
  98 + }
  99 +
  100 + // Type metadata
  101 + private static org.apache.axis.description.TypeDesc typeDesc =
  102 + new org.apache.axis.description.TypeDesc(Results.class, true);
  103 +
  104 + static {
  105 + typeDesc.setXmlType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  106 + org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
  107 + elemField.setFieldName("success");
  108 + elemField.setXmlName(new javax.xml.namespace.QName("http://tempuri.org/", "success"));
  109 + elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
  110 + elemField.setNillable(false);
  111 + typeDesc.addFieldDesc(elemField);
  112 + elemField = new org.apache.axis.description.ElementDesc();
  113 + elemField.setFieldName("message");
  114 + elemField.setXmlName(new javax.xml.namespace.QName("http://tempuri.org/", "message"));
  115 + elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
  116 + elemField.setMinOccurs(0);
  117 + elemField.setNillable(false);
  118 + typeDesc.addFieldDesc(elemField);
  119 + }
  120 +
  121 + /**
  122 + * Return type metadata object
  123 + */
  124 + public static org.apache.axis.description.TypeDesc getTypeDesc() {
  125 + return typeDesc;
  126 + }
  127 +
  128 + /**
  129 + * Get Custom Serializer
  130 + */
  131 + public static org.apache.axis.encoding.Serializer getSerializer(
  132 + java.lang.String mechType,
  133 + java.lang.Class _javaType,
  134 + javax.xml.namespace.QName _xmlType) {
  135 + return
  136 + new org.apache.axis.encoding.ser.BeanSerializer(
  137 + _javaType, _xmlType, typeDesc);
  138 + }
  139 +
  140 + /**
  141 + * Get Custom Deserializer
  142 + */
  143 + public static org.apache.axis.encoding.Deserializer getDeserializer(
  144 + java.lang.String mechType,
  145 + java.lang.Class _javaType,
  146 + javax.xml.namespace.QName _xmlType) {
  147 + return
  148 + new org.apache.axis.encoding.ser.BeanDeserializer(
  149 + _javaType, _xmlType, typeDesc);
  150 + }
  151 +
  152 +}
... ...
src/main/java/com/bsth/webService/trafficManage/up/org/tempuri/WebService.java 0 → 100644
  1 +/**
  2 + * WebService.java
  3 + *
  4 + * This file was auto-generated from WSDL
  5 + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
  6 + */
  7 +
  8 +package com.bsth.webService.trafficManage.up.org.tempuri;
  9 +
  10 +public interface WebService extends javax.xml.rpc.Service {
  11 + public java.lang.String getWebServiceSoapAddress();
  12 +
  13 + public com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap getWebServiceSoap() throws javax.xml.rpc.ServiceException;
  14 +
  15 + public com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap getWebServiceSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
  16 +}
... ...
src/main/java/com/bsth/webService/trafficManage/up/org/tempuri/WebServiceLocator.java 0 → 100644
  1 +/**
  2 + * WebServiceLocator.java
  3 + *
  4 + * This file was auto-generated from WSDL
  5 + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
  6 + */
  7 +
  8 +package com.bsth.webService.trafficManage.up.org.tempuri;
  9 +
  10 +public class WebServiceLocator extends org.apache.axis.client.Service implements com.bsth.webService.trafficManage.up.org.tempuri.WebService {
  11 +
  12 + public WebServiceLocator() {
  13 + }
  14 +
  15 +
  16 + public WebServiceLocator(org.apache.axis.EngineConfiguration config) {
  17 + super(config);
  18 + }
  19 +
  20 + public WebServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {
  21 + super(wsdlLoc, sName);
  22 + }
  23 +
  24 + // Use to get a proxy class for WebServiceSoap
  25 + private java.lang.String WebServiceSoap_address = "http://218.242.195.76:8411/WebService_test/WebService.asmx";
  26 +
  27 + public java.lang.String getWebServiceSoapAddress() {
  28 + return WebServiceSoap_address;
  29 + }
  30 +
  31 + // The WSDD service name defaults to the port name.
  32 + private java.lang.String WebServiceSoapWSDDServiceName = "WebServiceSoap";
  33 +
  34 + public java.lang.String getWebServiceSoapWSDDServiceName() {
  35 + return WebServiceSoapWSDDServiceName;
  36 + }
  37 +
  38 + public void setWebServiceSoapWSDDServiceName(java.lang.String name) {
  39 + WebServiceSoapWSDDServiceName = name;
  40 + }
  41 +
  42 + public com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap getWebServiceSoap() throws javax.xml.rpc.ServiceException {
  43 + java.net.URL endpoint;
  44 + try {
  45 + endpoint = new java.net.URL(WebServiceSoap_address);
  46 + }
  47 + catch (java.net.MalformedURLException e) {
  48 + throw new javax.xml.rpc.ServiceException(e);
  49 + }
  50 + return getWebServiceSoap(endpoint);
  51 + }
  52 +
  53 + public com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap getWebServiceSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
  54 + try {
  55 + com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoapStub _stub = new com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoapStub(portAddress, this);
  56 + _stub.setPortName(getWebServiceSoapWSDDServiceName());
  57 + return _stub;
  58 + }
  59 + catch (org.apache.axis.AxisFault e) {
  60 + return null;
  61 + }
  62 + }
  63 +
  64 + public void setWebServiceSoapEndpointAddress(java.lang.String address) {
  65 + WebServiceSoap_address = address;
  66 + }
  67 +
  68 + /**
  69 + * For the given interface, get the stub implementation.
  70 + * If this service has no port for the given interface,
  71 + * then ServiceException is thrown.
  72 + */
  73 + public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
  74 + try {
  75 + if (com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap.class.isAssignableFrom(serviceEndpointInterface)) {
  76 + com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoapStub _stub = new com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoapStub(new java.net.URL(WebServiceSoap_address), this);
  77 + _stub.setPortName(getWebServiceSoapWSDDServiceName());
  78 + return _stub;
  79 + }
  80 + }
  81 + catch (java.lang.Throwable t) {
  82 + throw new javax.xml.rpc.ServiceException(t);
  83 + }
  84 + throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
  85 + }
  86 +
  87 + /**
  88 + * For the given interface, get the stub implementation.
  89 + * If this service has no port for the given interface,
  90 + * then ServiceException is thrown.
  91 + */
  92 + public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
  93 + if (portName == null) {
  94 + return getPort(serviceEndpointInterface);
  95 + }
  96 + java.lang.String inputPortName = portName.getLocalPart();
  97 + if ("WebServiceSoap".equals(inputPortName)) {
  98 + return getWebServiceSoap();
  99 + }
  100 + else {
  101 + java.rmi.Remote _stub = getPort(serviceEndpointInterface);
  102 + ((org.apache.axis.client.Stub) _stub).setPortName(portName);
  103 + return _stub;
  104 + }
  105 + }
  106 +
  107 + public javax.xml.namespace.QName getServiceName() {
  108 + return new javax.xml.namespace.QName("http://tempuri.org/", "WebService");
  109 + }
  110 +
  111 + private java.util.HashSet ports = null;
  112 +
  113 + public java.util.Iterator getPorts() {
  114 + if (ports == null) {
  115 + ports = new java.util.HashSet();
  116 + ports.add(new javax.xml.namespace.QName("http://tempuri.org/", "WebServiceSoap"));
  117 + }
  118 + return ports.iterator();
  119 + }
  120 +
  121 + /**
  122 + * Set the endpoint address for the specified port name.
  123 + */
  124 + public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
  125 +
  126 +if ("WebServiceSoap".equals(portName)) {
  127 + setWebServiceSoapEndpointAddress(address);
  128 + }
  129 + else
  130 +{ // Unknown Port Name
  131 + throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
  132 + }
  133 + }
  134 +
  135 + /**
  136 + * Set the endpoint address for the specified port name.
  137 + */
  138 + public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
  139 + setEndpointAddress(portName.getLocalPart(), address);
  140 + }
  141 +
  142 +}
... ...
src/main/java/com/bsth/webService/trafficManage/up/org/tempuri/WebServiceSoap.java 0 → 100644
  1 +/**
  2 + * WebServiceSoap.java
  3 + *
  4 + * This file was auto-generated from WSDL
  5 + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
  6 + */
  7 +
  8 +package com.bsth.webService.trafficManage.up.org.tempuri;
  9 +
  10 +public interface WebServiceSoap extends java.rmi.Remote {
  11 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setXL(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  12 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setCL(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  13 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setLD(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  14 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setDDRB(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  15 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setJHBC(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  16 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setSKB(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  17 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setSJ(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  18 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setLCYH(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  19 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setXLPC(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  20 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setCS(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  21 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setFZCKGM(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  22 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setJJZD(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException;
  23 +}
... ...
src/main/java/com/bsth/webService/trafficManage/up/org/tempuri/WebServiceSoapProxy.java 0 → 100644
  1 +package com.bsth.webService.trafficManage.up.org.tempuri;
  2 +
  3 +public class WebServiceSoapProxy implements com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap {
  4 + private String _endpoint = null;
  5 + private com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap webServiceSoap = null;
  6 +
  7 + public WebServiceSoapProxy() {
  8 + _initWebServiceSoapProxy();
  9 + }
  10 +
  11 + public WebServiceSoapProxy(String endpoint) {
  12 + _endpoint = endpoint;
  13 + _initWebServiceSoapProxy();
  14 + }
  15 +
  16 + private void _initWebServiceSoapProxy() {
  17 + try {
  18 + webServiceSoap = (new com.bsth.webService.trafficManage.up.org.tempuri.WebServiceLocator()).getWebServiceSoap();
  19 + if (webServiceSoap != null) {
  20 + if (_endpoint != null)
  21 + ((javax.xml.rpc.Stub)webServiceSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
  22 + else
  23 + _endpoint = (String)((javax.xml.rpc.Stub)webServiceSoap)._getProperty("javax.xml.rpc.service.endpoint.address");
  24 + }
  25 +
  26 + }
  27 + catch (javax.xml.rpc.ServiceException serviceException) {}
  28 + }
  29 +
  30 + public String getEndpoint() {
  31 + return _endpoint;
  32 + }
  33 +
  34 + public void setEndpoint(String endpoint) {
  35 + _endpoint = endpoint;
  36 + if (webServiceSoap != null)
  37 + ((javax.xml.rpc.Stub)webServiceSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
  38 +
  39 + }
  40 +
  41 + public com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap getWebServiceSoap() {
  42 + if (webServiceSoap == null)
  43 + _initWebServiceSoapProxy();
  44 + return webServiceSoap;
  45 + }
  46 +
  47 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setXL(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  48 + if (webServiceSoap == null)
  49 + _initWebServiceSoapProxy();
  50 + return webServiceSoap.setXL(uName, uPass, sXml);
  51 + }
  52 +
  53 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setCL(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  54 + if (webServiceSoap == null)
  55 + _initWebServiceSoapProxy();
  56 + return webServiceSoap.setCL(uName, uPass, sXml);
  57 + }
  58 +
  59 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setLD(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  60 + if (webServiceSoap == null)
  61 + _initWebServiceSoapProxy();
  62 + return webServiceSoap.setLD(uName, uPass, sXml);
  63 + }
  64 +
  65 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setDDRB(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  66 + if (webServiceSoap == null)
  67 + _initWebServiceSoapProxy();
  68 + return webServiceSoap.setDDRB(uName, uPass, sXml);
  69 + }
  70 +
  71 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setJHBC(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  72 + if (webServiceSoap == null)
  73 + _initWebServiceSoapProxy();
  74 + return webServiceSoap.setJHBC(uName, uPass, sXml);
  75 + }
  76 +
  77 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setSKB(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  78 + if (webServiceSoap == null)
  79 + _initWebServiceSoapProxy();
  80 + return webServiceSoap.setSKB(uName, uPass, sXml);
  81 + }
  82 +
  83 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setSJ(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  84 + if (webServiceSoap == null)
  85 + _initWebServiceSoapProxy();
  86 + return webServiceSoap.setSJ(uName, uPass, sXml);
  87 + }
  88 +
  89 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setLCYH(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  90 + if (webServiceSoap == null)
  91 + _initWebServiceSoapProxy();
  92 + return webServiceSoap.setLCYH(uName, uPass, sXml);
  93 + }
  94 +
  95 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setXLPC(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  96 + if (webServiceSoap == null)
  97 + _initWebServiceSoapProxy();
  98 + return webServiceSoap.setXLPC(uName, uPass, sXml);
  99 + }
  100 +
  101 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setCS(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  102 + if (webServiceSoap == null)
  103 + _initWebServiceSoapProxy();
  104 + return webServiceSoap.setCS(uName, uPass, sXml);
  105 + }
  106 +
  107 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setFZCKGM(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  108 + if (webServiceSoap == null)
  109 + _initWebServiceSoapProxy();
  110 + return webServiceSoap.setFZCKGM(uName, uPass, sXml);
  111 + }
  112 +
  113 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setJJZD(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException{
  114 + if (webServiceSoap == null)
  115 + _initWebServiceSoapProxy();
  116 + return webServiceSoap.setJJZD(uName, uPass, sXml);
  117 + }
  118 +
  119 +
  120 +}
0 121 \ No newline at end of file
... ...
src/main/java/com/bsth/webService/trafficManage/up/org/tempuri/WebServiceSoapStub.java 0 → 100644
  1 +/**
  2 + * WebServiceSoapStub.java
  3 + *
  4 + * This file was auto-generated from WSDL
  5 + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
  6 + */
  7 +
  8 +package com.bsth.webService.trafficManage.up.org.tempuri;
  9 +
  10 +public class WebServiceSoapStub extends org.apache.axis.client.Stub implements com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap {
  11 + private java.util.Vector cachedSerClasses = new java.util.Vector();
  12 + private java.util.Vector cachedSerQNames = new java.util.Vector();
  13 + private java.util.Vector cachedSerFactories = new java.util.Vector();
  14 + private java.util.Vector cachedDeserFactories = new java.util.Vector();
  15 +
  16 + static org.apache.axis.description.OperationDesc [] _operations;
  17 +
  18 + static {
  19 + _operations = new org.apache.axis.description.OperationDesc[12];
  20 + _initOperationDesc1();
  21 + _initOperationDesc2();
  22 + }
  23 +
  24 + private static void _initOperationDesc1(){
  25 + org.apache.axis.description.OperationDesc oper;
  26 + org.apache.axis.description.ParameterDesc param;
  27 + oper = new org.apache.axis.description.OperationDesc();
  28 + oper.setName("setXL");
  29 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  30 + param.setOmittable(true);
  31 + oper.addParameter(param);
  32 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  33 + param.setOmittable(true);
  34 + oper.addParameter(param);
  35 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  36 + param.setOmittable(true);
  37 + oper.addParameter(param);
  38 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  39 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  40 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setXLResult"));
  41 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  42 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  43 + _operations[0] = oper;
  44 +
  45 + oper = new org.apache.axis.description.OperationDesc();
  46 + oper.setName("setCL");
  47 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  48 + param.setOmittable(true);
  49 + oper.addParameter(param);
  50 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  51 + param.setOmittable(true);
  52 + oper.addParameter(param);
  53 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  54 + param.setOmittable(true);
  55 + oper.addParameter(param);
  56 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  57 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  58 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setCLResult"));
  59 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  60 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  61 + _operations[1] = oper;
  62 +
  63 + oper = new org.apache.axis.description.OperationDesc();
  64 + oper.setName("setLD");
  65 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  66 + param.setOmittable(true);
  67 + oper.addParameter(param);
  68 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  69 + param.setOmittable(true);
  70 + oper.addParameter(param);
  71 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  72 + param.setOmittable(true);
  73 + oper.addParameter(param);
  74 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  75 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  76 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setLDResult"));
  77 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  78 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  79 + _operations[2] = oper;
  80 +
  81 + oper = new org.apache.axis.description.OperationDesc();
  82 + oper.setName("setDDRB");
  83 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  84 + param.setOmittable(true);
  85 + oper.addParameter(param);
  86 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  87 + param.setOmittable(true);
  88 + oper.addParameter(param);
  89 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  90 + param.setOmittable(true);
  91 + oper.addParameter(param);
  92 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  93 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  94 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setDDRBResult"));
  95 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  96 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  97 + _operations[3] = oper;
  98 +
  99 + oper = new org.apache.axis.description.OperationDesc();
  100 + oper.setName("setJHBC");
  101 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  102 + param.setOmittable(true);
  103 + oper.addParameter(param);
  104 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  105 + param.setOmittable(true);
  106 + oper.addParameter(param);
  107 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  108 + param.setOmittable(true);
  109 + oper.addParameter(param);
  110 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  111 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  112 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setJHBCResult"));
  113 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  114 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  115 + _operations[4] = oper;
  116 +
  117 + oper = new org.apache.axis.description.OperationDesc();
  118 + oper.setName("setSKB");
  119 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  120 + param.setOmittable(true);
  121 + oper.addParameter(param);
  122 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  123 + param.setOmittable(true);
  124 + oper.addParameter(param);
  125 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  126 + param.setOmittable(true);
  127 + oper.addParameter(param);
  128 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  129 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  130 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setSKBResult"));
  131 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  132 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  133 + _operations[5] = oper;
  134 +
  135 + oper = new org.apache.axis.description.OperationDesc();
  136 + oper.setName("setSJ");
  137 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  138 + param.setOmittable(true);
  139 + oper.addParameter(param);
  140 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  141 + param.setOmittable(true);
  142 + oper.addParameter(param);
  143 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  144 + param.setOmittable(true);
  145 + oper.addParameter(param);
  146 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  147 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  148 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setSJResult"));
  149 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  150 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  151 + _operations[6] = oper;
  152 +
  153 + oper = new org.apache.axis.description.OperationDesc();
  154 + oper.setName("setLCYH");
  155 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  156 + param.setOmittable(true);
  157 + oper.addParameter(param);
  158 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  159 + param.setOmittable(true);
  160 + oper.addParameter(param);
  161 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  162 + param.setOmittable(true);
  163 + oper.addParameter(param);
  164 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  165 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  166 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setLCYHResult"));
  167 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  168 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  169 + _operations[7] = oper;
  170 +
  171 + oper = new org.apache.axis.description.OperationDesc();
  172 + oper.setName("setXLPC");
  173 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  174 + param.setOmittable(true);
  175 + oper.addParameter(param);
  176 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  177 + param.setOmittable(true);
  178 + oper.addParameter(param);
  179 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  180 + param.setOmittable(true);
  181 + oper.addParameter(param);
  182 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  183 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  184 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setXLPCResult"));
  185 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  186 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  187 + _operations[8] = oper;
  188 +
  189 + oper = new org.apache.axis.description.OperationDesc();
  190 + oper.setName("setCS");
  191 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  192 + param.setOmittable(true);
  193 + oper.addParameter(param);
  194 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  195 + param.setOmittable(true);
  196 + oper.addParameter(param);
  197 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  198 + param.setOmittable(true);
  199 + oper.addParameter(param);
  200 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  201 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  202 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setCSResult"));
  203 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  204 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  205 + _operations[9] = oper;
  206 +
  207 + }
  208 +
  209 + private static void _initOperationDesc2(){
  210 + org.apache.axis.description.OperationDesc oper;
  211 + org.apache.axis.description.ParameterDesc param;
  212 + oper = new org.apache.axis.description.OperationDesc();
  213 + oper.setName("setFZCKGM");
  214 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  215 + param.setOmittable(true);
  216 + oper.addParameter(param);
  217 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  218 + param.setOmittable(true);
  219 + oper.addParameter(param);
  220 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  221 + param.setOmittable(true);
  222 + oper.addParameter(param);
  223 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  224 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  225 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setFZCKGMResult"));
  226 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  227 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  228 + _operations[10] = oper;
  229 +
  230 + oper = new org.apache.axis.description.OperationDesc();
  231 + oper.setName("setJJZD");
  232 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  233 + param.setOmittable(true);
  234 + oper.addParameter(param);
  235 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "uPass"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  236 + param.setOmittable(true);
  237 + oper.addParameter(param);
  238 + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/", "sXml"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
  239 + param.setOmittable(true);
  240 + oper.addParameter(param);
  241 + oper.setReturnType(new javax.xml.namespace.QName("http://tempuri.org/", "Results"));
  242 + oper.setReturnClass(com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  243 + oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/", "setJJZDResult"));
  244 + oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
  245 + oper.setUse(org.apache.axis.constants.Use.LITERAL);
  246 + _operations[11] = oper;
  247 +
  248 + }
  249 +
  250 + public WebServiceSoapStub() throws org.apache.axis.AxisFault {
  251 + this(null);
  252 + }
  253 +
  254 + public WebServiceSoapStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
  255 + this(service);
  256 + super.cachedEndpoint = endpointURL;
  257 + }
  258 +
  259 + public WebServiceSoapStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
  260 + if (service == null) {
  261 + super.service = new org.apache.axis.client.Service();
  262 + } else {
  263 + super.service = service;
  264 + }
  265 + ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
  266 + java.lang.Class cls;
  267 + javax.xml.namespace.QName qName;
  268 + javax.xml.namespace.QName qName2;
  269 + java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
  270 + java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
  271 + java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
  272 + java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
  273 + java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
  274 + java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
  275 + java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
  276 + java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
  277 + java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
  278 + java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
  279 + qName = new javax.xml.namespace.QName("http://tempuri.org/", "Results");
  280 + cachedSerQNames.add(qName);
  281 + cls = com.bsth.webService.trafficManage.up.org.tempuri.Results.class;
  282 + cachedSerClasses.add(cls);
  283 + cachedSerFactories.add(beansf);
  284 + cachedDeserFactories.add(beandf);
  285 +
  286 + }
  287 +
  288 + protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
  289 + try {
  290 + org.apache.axis.client.Call _call = super._createCall();
  291 + if (super.maintainSessionSet) {
  292 + _call.setMaintainSession(super.maintainSession);
  293 + }
  294 + if (super.cachedUsername != null) {
  295 + _call.setUsername(super.cachedUsername);
  296 + }
  297 + if (super.cachedPassword != null) {
  298 + _call.setPassword(super.cachedPassword);
  299 + }
  300 + if (super.cachedEndpoint != null) {
  301 + _call.setTargetEndpointAddress(super.cachedEndpoint);
  302 + }
  303 + if (super.cachedTimeout != null) {
  304 + _call.setTimeout(super.cachedTimeout);
  305 + }
  306 + if (super.cachedPortName != null) {
  307 + _call.setPortName(super.cachedPortName);
  308 + }
  309 + java.util.Enumeration keys = super.cachedProperties.keys();
  310 + while (keys.hasMoreElements()) {
  311 + java.lang.String key = (java.lang.String) keys.nextElement();
  312 + _call.setProperty(key, super.cachedProperties.get(key));
  313 + }
  314 + // All the type mapping information is registered
  315 + // when the first call is made.
  316 + // The type mapping information is actually registered in
  317 + // the TypeMappingRegistry of the service, which
  318 + // is the reason why registration is only needed for the first call.
  319 + synchronized (this) {
  320 + if (firstCall()) {
  321 + // must set encoding style before registering serializers
  322 + _call.setEncodingStyle(null);
  323 + for (int i = 0; i < cachedSerFactories.size(); ++i) {
  324 + java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
  325 + javax.xml.namespace.QName qName =
  326 + (javax.xml.namespace.QName) cachedSerQNames.get(i);
  327 + java.lang.Object x = cachedSerFactories.get(i);
  328 + if (x instanceof Class) {
  329 + java.lang.Class sf = (java.lang.Class)
  330 + cachedSerFactories.get(i);
  331 + java.lang.Class df = (java.lang.Class)
  332 + cachedDeserFactories.get(i);
  333 + _call.registerTypeMapping(cls, qName, sf, df, false);
  334 + }
  335 + else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {
  336 + org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)
  337 + cachedSerFactories.get(i);
  338 + org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)
  339 + cachedDeserFactories.get(i);
  340 + _call.registerTypeMapping(cls, qName, sf, df, false);
  341 + }
  342 + }
  343 + }
  344 + }
  345 + return _call;
  346 + }
  347 + catch (java.lang.Throwable _t) {
  348 + throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
  349 + }
  350 + }
  351 +
  352 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setXL(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  353 + if (super.cachedEndpoint == null) {
  354 + throw new org.apache.axis.NoEndPointException();
  355 + }
  356 + org.apache.axis.client.Call _call = createCall();
  357 + _call.setOperation(_operations[0]);
  358 + _call.setUseSOAPAction(true);
  359 + _call.setSOAPActionURI("http://tempuri.org/setXL");
  360 + _call.setEncodingStyle(null);
  361 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  362 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  363 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  364 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setXL"));
  365 +
  366 + setRequestHeaders(_call);
  367 + setAttachments(_call);
  368 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  369 +
  370 + if (_resp instanceof java.rmi.RemoteException) {
  371 + throw (java.rmi.RemoteException)_resp;
  372 + }
  373 + else {
  374 + extractAttachments(_call);
  375 + try {
  376 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  377 + } catch (java.lang.Exception _exception) {
  378 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  379 + }
  380 + }
  381 + } catch (org.apache.axis.AxisFault axisFaultException) {
  382 + throw axisFaultException;
  383 +}
  384 + }
  385 +
  386 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setCL(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  387 + if (super.cachedEndpoint == null) {
  388 + throw new org.apache.axis.NoEndPointException();
  389 + }
  390 + org.apache.axis.client.Call _call = createCall();
  391 + _call.setOperation(_operations[1]);
  392 + _call.setUseSOAPAction(true);
  393 + _call.setSOAPActionURI("http://tempuri.org/setCL");
  394 + _call.setEncodingStyle(null);
  395 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  396 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  397 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  398 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setCL"));
  399 +
  400 + setRequestHeaders(_call);
  401 + setAttachments(_call);
  402 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  403 +
  404 + if (_resp instanceof java.rmi.RemoteException) {
  405 + throw (java.rmi.RemoteException)_resp;
  406 + }
  407 + else {
  408 + extractAttachments(_call);
  409 + try {
  410 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  411 + } catch (java.lang.Exception _exception) {
  412 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  413 + }
  414 + }
  415 + } catch (org.apache.axis.AxisFault axisFaultException) {
  416 + throw axisFaultException;
  417 +}
  418 + }
  419 +
  420 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setLD(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  421 + if (super.cachedEndpoint == null) {
  422 + throw new org.apache.axis.NoEndPointException();
  423 + }
  424 + org.apache.axis.client.Call _call = createCall();
  425 + _call.setOperation(_operations[2]);
  426 + _call.setUseSOAPAction(true);
  427 + _call.setSOAPActionURI("http://tempuri.org/setLD");
  428 + _call.setEncodingStyle(null);
  429 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  430 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  431 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  432 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setLD"));
  433 +
  434 + setRequestHeaders(_call);
  435 + setAttachments(_call);
  436 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  437 +
  438 + if (_resp instanceof java.rmi.RemoteException) {
  439 + throw (java.rmi.RemoteException)_resp;
  440 + }
  441 + else {
  442 + extractAttachments(_call);
  443 + try {
  444 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  445 + } catch (java.lang.Exception _exception) {
  446 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  447 + }
  448 + }
  449 + } catch (org.apache.axis.AxisFault axisFaultException) {
  450 + throw axisFaultException;
  451 +}
  452 + }
  453 +
  454 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setDDRB(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  455 + if (super.cachedEndpoint == null) {
  456 + throw new org.apache.axis.NoEndPointException();
  457 + }
  458 + org.apache.axis.client.Call _call = createCall();
  459 + _call.setOperation(_operations[3]);
  460 + _call.setUseSOAPAction(true);
  461 + _call.setSOAPActionURI("http://tempuri.org/setDDRB");
  462 + _call.setEncodingStyle(null);
  463 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  464 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  465 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  466 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setDDRB"));
  467 +
  468 + setRequestHeaders(_call);
  469 + setAttachments(_call);
  470 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  471 +
  472 + if (_resp instanceof java.rmi.RemoteException) {
  473 + throw (java.rmi.RemoteException)_resp;
  474 + }
  475 + else {
  476 + extractAttachments(_call);
  477 + try {
  478 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  479 + } catch (java.lang.Exception _exception) {
  480 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  481 + }
  482 + }
  483 + } catch (org.apache.axis.AxisFault axisFaultException) {
  484 + throw axisFaultException;
  485 +}
  486 + }
  487 +
  488 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setJHBC(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  489 + if (super.cachedEndpoint == null) {
  490 + throw new org.apache.axis.NoEndPointException();
  491 + }
  492 + org.apache.axis.client.Call _call = createCall();
  493 + _call.setOperation(_operations[4]);
  494 + _call.setUseSOAPAction(true);
  495 + _call.setSOAPActionURI("http://tempuri.org/setJHBC");
  496 + _call.setEncodingStyle(null);
  497 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  498 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  499 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  500 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setJHBC"));
  501 +
  502 + setRequestHeaders(_call);
  503 + setAttachments(_call);
  504 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  505 +
  506 + if (_resp instanceof java.rmi.RemoteException) {
  507 + throw (java.rmi.RemoteException)_resp;
  508 + }
  509 + else {
  510 + extractAttachments(_call);
  511 + try {
  512 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  513 + } catch (java.lang.Exception _exception) {
  514 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  515 + }
  516 + }
  517 + } catch (org.apache.axis.AxisFault axisFaultException) {
  518 + throw axisFaultException;
  519 +}
  520 + }
  521 +
  522 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setSKB(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  523 + if (super.cachedEndpoint == null) {
  524 + throw new org.apache.axis.NoEndPointException();
  525 + }
  526 + org.apache.axis.client.Call _call = createCall();
  527 + _call.setOperation(_operations[5]);
  528 + _call.setUseSOAPAction(true);
  529 + _call.setSOAPActionURI("http://tempuri.org/setSKB");
  530 + _call.setEncodingStyle(null);
  531 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  532 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  533 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  534 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setSKB"));
  535 +
  536 + setRequestHeaders(_call);
  537 + setAttachments(_call);
  538 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  539 +
  540 + if (_resp instanceof java.rmi.RemoteException) {
  541 + throw (java.rmi.RemoteException)_resp;
  542 + }
  543 + else {
  544 + extractAttachments(_call);
  545 + try {
  546 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  547 + } catch (java.lang.Exception _exception) {
  548 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  549 + }
  550 + }
  551 + } catch (org.apache.axis.AxisFault axisFaultException) {
  552 + throw axisFaultException;
  553 +}
  554 + }
  555 +
  556 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setSJ(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  557 + if (super.cachedEndpoint == null) {
  558 + throw new org.apache.axis.NoEndPointException();
  559 + }
  560 + org.apache.axis.client.Call _call = createCall();
  561 + _call.setOperation(_operations[6]);
  562 + _call.setUseSOAPAction(true);
  563 + _call.setSOAPActionURI("http://tempuri.org/setSJ");
  564 + _call.setEncodingStyle(null);
  565 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  566 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  567 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  568 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setSJ"));
  569 +
  570 + setRequestHeaders(_call);
  571 + setAttachments(_call);
  572 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  573 +
  574 + if (_resp instanceof java.rmi.RemoteException) {
  575 + throw (java.rmi.RemoteException)_resp;
  576 + }
  577 + else {
  578 + extractAttachments(_call);
  579 + try {
  580 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  581 + } catch (java.lang.Exception _exception) {
  582 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  583 + }
  584 + }
  585 + } catch (org.apache.axis.AxisFault axisFaultException) {
  586 + throw axisFaultException;
  587 +}
  588 + }
  589 +
  590 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setLCYH(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  591 + if (super.cachedEndpoint == null) {
  592 + throw new org.apache.axis.NoEndPointException();
  593 + }
  594 + org.apache.axis.client.Call _call = createCall();
  595 + _call.setOperation(_operations[7]);
  596 + _call.setUseSOAPAction(true);
  597 + _call.setSOAPActionURI("http://tempuri.org/setLCYH");
  598 + _call.setEncodingStyle(null);
  599 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  600 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  601 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  602 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setLCYH"));
  603 +
  604 + setRequestHeaders(_call);
  605 + setAttachments(_call);
  606 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  607 +
  608 + if (_resp instanceof java.rmi.RemoteException) {
  609 + throw (java.rmi.RemoteException)_resp;
  610 + }
  611 + else {
  612 + extractAttachments(_call);
  613 + try {
  614 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  615 + } catch (java.lang.Exception _exception) {
  616 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  617 + }
  618 + }
  619 + } catch (org.apache.axis.AxisFault axisFaultException) {
  620 + throw axisFaultException;
  621 +}
  622 + }
  623 +
  624 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setXLPC(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  625 + if (super.cachedEndpoint == null) {
  626 + throw new org.apache.axis.NoEndPointException();
  627 + }
  628 + org.apache.axis.client.Call _call = createCall();
  629 + _call.setOperation(_operations[8]);
  630 + _call.setUseSOAPAction(true);
  631 + _call.setSOAPActionURI("http://tempuri.org/setXLPC");
  632 + _call.setEncodingStyle(null);
  633 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  634 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  635 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  636 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setXLPC"));
  637 +
  638 + setRequestHeaders(_call);
  639 + setAttachments(_call);
  640 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  641 +
  642 + if (_resp instanceof java.rmi.RemoteException) {
  643 + throw (java.rmi.RemoteException)_resp;
  644 + }
  645 + else {
  646 + extractAttachments(_call);
  647 + try {
  648 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  649 + } catch (java.lang.Exception _exception) {
  650 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  651 + }
  652 + }
  653 + } catch (org.apache.axis.AxisFault axisFaultException) {
  654 + throw axisFaultException;
  655 +}
  656 + }
  657 +
  658 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setCS(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  659 + if (super.cachedEndpoint == null) {
  660 + throw new org.apache.axis.NoEndPointException();
  661 + }
  662 + org.apache.axis.client.Call _call = createCall();
  663 + _call.setOperation(_operations[9]);
  664 + _call.setUseSOAPAction(true);
  665 + _call.setSOAPActionURI("http://tempuri.org/setCS");
  666 + _call.setEncodingStyle(null);
  667 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  668 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  669 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  670 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setCS"));
  671 +
  672 + setRequestHeaders(_call);
  673 + setAttachments(_call);
  674 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  675 +
  676 + if (_resp instanceof java.rmi.RemoteException) {
  677 + throw (java.rmi.RemoteException)_resp;
  678 + }
  679 + else {
  680 + extractAttachments(_call);
  681 + try {
  682 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  683 + } catch (java.lang.Exception _exception) {
  684 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  685 + }
  686 + }
  687 + } catch (org.apache.axis.AxisFault axisFaultException) {
  688 + throw axisFaultException;
  689 +}
  690 + }
  691 +
  692 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setFZCKGM(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  693 + if (super.cachedEndpoint == null) {
  694 + throw new org.apache.axis.NoEndPointException();
  695 + }
  696 + org.apache.axis.client.Call _call = createCall();
  697 + _call.setOperation(_operations[10]);
  698 + _call.setUseSOAPAction(true);
  699 + _call.setSOAPActionURI("http://tempuri.org/setFZCKGM");
  700 + _call.setEncodingStyle(null);
  701 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  702 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  703 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  704 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setFZCKGM"));
  705 +
  706 + setRequestHeaders(_call);
  707 + setAttachments(_call);
  708 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  709 +
  710 + if (_resp instanceof java.rmi.RemoteException) {
  711 + throw (java.rmi.RemoteException)_resp;
  712 + }
  713 + else {
  714 + extractAttachments(_call);
  715 + try {
  716 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  717 + } catch (java.lang.Exception _exception) {
  718 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  719 + }
  720 + }
  721 + } catch (org.apache.axis.AxisFault axisFaultException) {
  722 + throw axisFaultException;
  723 +}
  724 + }
  725 +
  726 + public com.bsth.webService.trafficManage.up.org.tempuri.Results setJJZD(java.lang.String uName, java.lang.String uPass, java.lang.String sXml) throws java.rmi.RemoteException {
  727 + if (super.cachedEndpoint == null) {
  728 + throw new org.apache.axis.NoEndPointException();
  729 + }
  730 + org.apache.axis.client.Call _call = createCall();
  731 + _call.setOperation(_operations[11]);
  732 + _call.setUseSOAPAction(true);
  733 + _call.setSOAPActionURI("http://tempuri.org/setJJZD");
  734 + _call.setEncodingStyle(null);
  735 + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
  736 + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  737 + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
  738 + _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "setJJZD"));
  739 +
  740 + setRequestHeaders(_call);
  741 + setAttachments(_call);
  742 + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {uName, uPass, sXml});
  743 +
  744 + if (_resp instanceof java.rmi.RemoteException) {
  745 + throw (java.rmi.RemoteException)_resp;
  746 + }
  747 + else {
  748 + extractAttachments(_call);
  749 + try {
  750 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) _resp;
  751 + } catch (java.lang.Exception _exception) {
  752 + return (com.bsth.webService.trafficManage.up.org.tempuri.Results) org.apache.axis.utils.JavaUtils.convert(_resp, com.bsth.webService.trafficManage.up.org.tempuri.Results.class);
  753 + }
  754 + }
  755 + } catch (org.apache.axis.AxisFault axisFaultException) {
  756 + throw axisFaultException;
  757 +}
  758 + }
  759 +
  760 +}
... ...
src/main/resources/fatso/start.js
... ... @@ -16,7 +16,7 @@ var platform = process.platform;
16 16 var iswin = platform=='win32';
17 17 var sp = platform=='win32'?'\\':'/';
18 18 //不参与的目录
19   -var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission'+sp+'authorize_all', 'summary', 'report'+sp+'oil']
  19 +var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission'+sp+'authorize_all', 'summary', 'history_sch' ,'report'+sp+'oil']
20 20 ,ep = new EventProxy()
21 21 ,pName = 'bsth_control'
22 22 ,path = process.cwd()
... ...
src/main/resources/static/pages/base/carpark/js/add-form-wizard.js
... ... @@ -25,7 +25,7 @@ var FormWizard = function() {
25 25 rules : {
26 26 'parkNamebooxt' : {required : true,},// 停车场名称 必填项
27 27 'parkName' : {required : true,},// 停车场名称 必填项
28   - 'parkCode' : {required : true,alnum:true, remote : {
  28 + 'parkCode' : {required : true,rangelength:[8,8], alnum:true, remote : {
29 29 type : "get",// 异步发送请求到服务器,验证parkCode
30 30 url : "/carpark/isHaveParkCode",//需要服务器controllor 中提供停车场编码检查的方法
31 31 cache:false,
... ... @@ -40,7 +40,8 @@ var FormWizard = function() {
40 40 'descriptions' : {maxlength: 200,},// 描述/说明 最大长度200
41 41 },
42 42 messages:{
43   - 'parkCode':{remote:'停车场编码系统已存在,请您重新输入!',},
  43 + 'parkCode':{remote:'停车场编码系统已存在,请您重新输入!',
  44 + rangelength:'请填写8位长度的编码!'},
44 45 },
45 46 /**
46 47 * 类型:Callback。当未通过验证的表单提交时,可以在该回调函数中处理一些事情。
... ...
src/main/resources/static/pages/base/timesmodel/js/strategy/ParameterObj.js
1   -/**
2   - * 包装表单参数为内部参数对象。
3   - * @param formMap 表单form参数map
4   - * @param dataMap
5   - * @constructor
6   - *
7   - * 注意:moment是mutable,所有的moment操作都会改变原有对象的值,
8   - * 所以所有的操作都要小心处理。
9   - */
10   -var ParameterObj = function(formMap, dataMap) {
11   - // 内部保存的form参数
12   - var _formMap = formMap;
13   - // 计算行驶时间对象
14   - var _travelTimeObj_fun = function() {
15   - var upMoningPeakTravelTime =
16   - isNaN(_formMap.earlyUpTime) ?
17   - parseInt(_formMap.upTravelTime) :
18   - parseInt(_formMap.earlyUpTime);
19   - var downMoningPeakTravelTime =
20   - isNaN(_formMap.earlyDownTime) ?
21   - parseInt(_formMap.downTravelTime) :
22   - parseInt(_formMap.earlyDownTime);
23   - var upEveningPeakTravelTime =
24   - isNaN(_formMap.lateUpTime) ?
25   - parseInt(_formMap.upTravelTime) :
26   - parseInt(_formMap.lateUpTime);
27   - var downEveningPeakTravelTime =
28   - isNaN(_formMap.lateDownTime) ?
29   - parseInt(_formMap.downTravelTime) :
30   - parseInt(_formMap.lateDownTime);
31   - var upTroughTravelTime =
32   - isNaN(_formMap.troughUpTime) ?
33   - parseInt(_formMap.upTravelTime) :
34   - parseInt(_formMap.troughUpTime);
35   - var downTroughTravelTime =
36   - isNaN(_formMap.troughDownTime) ?
37   - parseInt(_formMap.downTravelTime) :
38   - parseInt(_formMap.troughDownTime);
39   -
40   - return { // TODO:暂时获取标准信息,之后改成历史数据,可能需要使用promise封装
41   - "moningpeak": [
42   - upMoningPeakTravelTime,
43   - downMoningPeakTravelTime
44   - ],
45   - "eveningpeak": [
46   - upEveningPeakTravelTime,
47   - downEveningPeakTravelTime
48   - ],
49   - "trough": [
50   - upTroughTravelTime,
51   - downTroughTravelTime
52   - ]
53   - }
54   - };
55   - var _travelTimeObj = _travelTimeObj_fun();
56   -
57   - // 计算行驶里程对象
58   - var _travelLcObj_fun = function() {
59   - return [
60   - { // 上行里程
61   - "normalLc": isNaN(_formMap.upMileage) ? 0 : parseFloat(_formMap.upMileage),
62   - "inLc": isNaN(_formMap.upInMileage) ? 0 : parseFloat(_formMap.upInMileage),
63   - "outLc": isNaN(_formMap.upOutMileage) ? 0 : parseFloat(_formMap.upOutMileage)
64   - },
65   - { // 下行里程
66   - "normalLc": isNaN(_formMap.downMileage) ? 0 : parseFloat(_formMap.downMileage),
67   - "inLc": isNaN(_formMap.downInMileage) ? 0 : parseFloat(_formMap.downInMileage),
68   - "outLc": isNaN(_formMap.downOutMileage) ? 0 : parseFloat(_formMap.downOutMileage)
69   - }
70   - ];
71   - };
72   - var _travelLcObj = _travelLcObj_fun();
73   -
74   - // 计算首班车,末班车行驶时间字符串
75   - var _firstLastDepartureTimeStrObj_fun = function() {
76   - return {
77   - up: { // 上行
78   - firstVehicleDepartureTimeStr: _formMap.startStationFirstTime,
79   - lastVehicleDepartureTimeStr: _formMap.startStationEndTime
80   - },
81   - down: { // 下行
82   - firstVehicleDepartureTimeStr: _formMap.endStationFirstTime,
83   - lastVehicleDepartureTimeStr: _formMap.endStationEndTime
84   - }
85   - };
86   - };
87   - var _firstLastDepartureTimeStrObj = _firstLastDepartureTimeStrObj_fun();
88   -
89   - // 计算时间段划分对象
90   - var _timeIntervalObj_fun = function() {
91   - return {
92   - moningPeakTimeStrs: {
93   - start: _formMap.earlyStartTime,
94   - end: _formMap.earlyEndTime
95   - },
96   - eveningPeakTimeStrs: {
97   - start: _formMap.lateStartTime,
98   - end: _formMap.lateEndTime
99   - }
100   -
101   - // TODO:其他时间段以后再加
102   - };
103   - };
104   - var _timeIntervalObj = _timeIntervalObj_fun();
105   -
106   - // 计算各个时段的发车间隙
107   - var _fcjxIntervalObj_fun = function() {
108   - var _rtn = {
109   - mpeakfcjx : {}, // 早高峰
110   - epeakfcjx : {}, // 晚高峰
111   - troughfcjx: {} //低谷
112   - };
113   - var _fcjx = [];
114   - var i = 0;
115   -
116   - // TODO:这里只有3个间隔,以后加其他的
117   - // 1、早高峰间隙
118   - // 2、晚高峰间隙
119   - // 3、低谷
120   -
121   - _rtn.mpeakfcjx.min = parseInt(_formMap.zgffcjxmin);
122   - _rtn.mpeakfcjx.max = parseInt(_formMap.zgffcjxmax);
123   -
124   - _rtn.epeakfcjx.min = parseInt(_formMap.wffcjxmin);
125   - _rtn.epeakfcjx.max = parseInt(_formMap.wffcjxmax);
126   -
127   - _rtn.troughfcjx.min = parseInt(_formMap.dgfcjxmin);
128   - _rtn.troughfcjx.max = parseInt(_formMap.dgfcjxmax);
129   -
130   - // 做一些逻辑检查
131   - if (_rtn.mpeakfcjx.min > _rtn.mpeakfcjx.max) {
132   - alert("早高峰最小间隔大于最大间隔");
133   - throw "早高峰最小间隔大于最大间隔";
134   - }
135   - if (_rtn.epeakfcjx.min > _rtn.epeakfcjx.max) {
136   - alert("晚高峰最小间隔大于最大间隔");
137   - throw "晚高峰最小间隔大于最大间隔";
138   - }
139   - if (_rtn.troughfcjx.min > _rtn.troughfcjx.max) {
140   - alert("低谷最小间隔大于最大间隔");
141   - throw "低谷最小间隔大于最大间隔";
142   - }
143   -
144   -
145   - return _rtn;
146   - };
147   - var _fcjxIntervalObj = _fcjxIntervalObj_fun();
148   -
149   - // 获取停站类型
150   - var _stopTypeObj_fun = function() {
151   - var isMasterStop = false; // 是否主站停
152   - var isMasterUpStop = false; // 主站停是否上行站点
153   - if (_formMap) {
154   - var fm_temp = _formMap.stt.split("/");
155   - if (fm_temp.length == 1) { // 双向停站
156   - isMasterStop = false;
157   - } else {
158   - isMasterStop = true;
159   - if (fm_temp[1] == "0") {
160   - isMasterUpStop = true;
161   - } else {
162   - isMasterUpStop = false;
163   - }
164   - }
165   - } else {
166   - throw "停站类型没有选择!";
167   - }
168   -
169   - return {
170   - isMasterStop: isMasterStop,
171   - isMasterUpStop: isMasterUpStop
172   - }
173   - };
174   - var _stopTypeObj = _stopTypeObj_fun();
175   -
176   - // 计算线路对象
177   - var _xlObj_fun = function() {
178   - return { // TODO:其他属性再议
179   - xl: {
180   - id: _formMap.lineName.split('_')[0]
181   - }
182   - };
183   - };
184   - var _xlObj = _xlObj_fun();
185   -
186   - // 计算停车场对象
187   - var _parkObj_fun = function() {
188   - return { // TODO:其他属性再议
189   - park: {
190   - id: _formMap.tcc_id
191   - }
192   - };
193   - };
194   - var _parkObj = _parkObj_fun();
195   -
196   - // 计算时刻表对象
197   - var _ttInfoObj_fun = function() {
198   - return { // TODO:其他属性再议
199   - ttinfo: {
200   - id: _formMap.skbName
201   - }
202   - };
203   - };
204   - var _ttInfoObj = _ttInfoObj_fun();
205   -
206   - // 计算起点站终点站对象
207   - var _startEndStopObj_fun = function() {
208   - return { // TODO:其他属性再议
209   - up: {
210   - qdz: { // 起点站
211   - id: dataMap.qdzArr[0]
212   - },
213   - zdz: { // 终点站
214   - id: dataMap.zdzArr[0]
215   - }
216   - },
217   - down: {
218   - qdz: { // 起点站
219   - id: dataMap.qdzArr[1]
220   - },
221   - zdz: { // 终点站
222   - id: dataMap.zdzArr[1]
223   - }
224   - }
225   -
226   - };
227   - };
228   - var _startEndStopObj = _startEndStopObj_fun();
229   -
230   - return {
231   - /**
232   - * 重置内部form参数。
233   - * @param formMap
234   - */
235   - reset: function(formMap) {
236   - _formMap = formMap;
237   -
238   - // 首班车,末班车行驶时间字符串
239   - _firstLastDepartureTimeStrObj = _firstLastDepartureTimeStrObj_fun();
240   - // 行驶时间对象
241   - _travelTimeObj = _travelTimeObj_fun();
242   - // 行驶里程对象
243   - _travelLcObj = _travelLcObj_fun();
244   - // 时间段划分对象
245   - _timeIntervalObj = _timeIntervalObj_fun();
246   - // 各个时段的发车间隙
247   - _fcjxIntervalObj = _fcjxIntervalObj_fun();
248   - // 停站类型
249   - _stopTypeObj = _stopTypeObj_fun();
250   - // 线路对象
251   - _xlObj = _xlObj_fun();
252   - // 停车场对象
253   - _parkObj = _parkObj_fun();
254   - // 时刻表对象
255   - _ttInfoObj = _ttInfoObj_fun();
256   - // 起点站终点站对象
257   - _startEndStopObj = _startEndStopObj_fun();
258   -
259   - // TODO:其他再议
260   - },
261   -
262   - //------------ 获取首班末班时间 ------------//
263   - /**
264   - * 获取上行首班时间对象。
265   - * @return moment obj
266   - */
267   - getUpFirstDTimeObj: function() {
268   - return StrategyUtils.toTimeObj(
269   - _firstLastDepartureTimeStrObj.up.firstVehicleDepartureTimeStr
270   - );
271   - },
272   - /**
273   - * 获取上行末班时间对象。
274   - * @return moment obj
275   - */
276   - getUpLastDtimeObj: function() {
277   - return StrategyUtils.toTimeObj(
278   - _firstLastDepartureTimeStrObj.up.lastVehicleDepartureTimeStr
279   - );
280   - },
281   - /**
282   - * 获取下行首班时间对象。
283   - * @return moment obj
284   - */
285   - getDownFirstDTimeObj: function() {
286   - return StrategyUtils.toTimeObj(
287   - _firstLastDepartureTimeStrObj.down.firstVehicleDepartureTimeStr
288   - );
289   - },
290   - /**
291   - * 获取下行末班时间对象。
292   - * @return moment obj
293   - */
294   - getDownLastDTimeObj: function() {
295   - return StrategyUtils.toTimeObj(
296   - _firstLastDepartureTimeStrObj.down.lastVehicleDepartureTimeStr
297   - );
298   - },
299   -
300   - //-------------- 获取行驶时间 ----------------//
301   - /**
302   - * 获取上行早高峰行驶时间。
303   - * @returns int number
304   - */
305   - getUpMPeakTime: function() {
306   - return _travelTimeObj.moningpeak[0];
307   - },
308   - /**
309   - * 获取上行晚高峰行驶时间。
310   - * @returns int number
311   - */
312   - getUpEPeakTime: function() {
313   - return _travelTimeObj.eveningpeak[0];
314   - },
315   - /**
316   - * 获取上行低谷行驶时间。
317   - * @returns int number
318   - */
319   - getUpTroughTime: function() {
320   - return _travelTimeObj.trough[0];
321   - },
322   - /**
323   - * 获取下行早高峰行驶时间。
324   - * @returns int number
325   - */
326   - getDownMPeakTime: function() {
327   - return _travelTimeObj.moningpeak[1];
328   - },
329   - /**
330   - * 获取下行晚高峰行驶时间。
331   - * @returns int number
332   - */
333   - getDownEPeakTime: function() {
334   - return _travelTimeObj.eveningpeak[1];
335   - },
336   - /**
337   - * 获取下行低谷行驶时间。
338   - * @returns int number
339   - */
340   - getDownTroughTime: function() {
341   - return _travelTimeObj.trough[1];
342   - },
343   -
344   - //---------------- 获取行驶里程 -----------------//
345   - /**
346   - * 获取上行normal班次里程。
347   - * @returns number
348   - */
349   - getUpNormalLc: function() {
350   - return _travelLcObj[0].normalLc;
351   - },
352   - /**
353   - * 获取上行进场班次类型。
354   - * @returns number
355   - */
356   - getUpInLc: function() {
357   - return _travelLcObj[0].inLc;
358   - },
359   - /**
360   - * 获取上行出场班次类型。
361   - * @returns number
362   - */
363   - getUpOutLc: function() {
364   - return _travelLcObj[0].outLc;
365   - },
366   - /**
367   - * 获取下行normal班次类型。
368   - * @returns number
369   - */
370   - getDownNormalLc: function() {
371   - return _travelLcObj[1].normalLc;
372   - },
373   - /**
374   - * 获取下行进场班次类型。
375   - * @returns number
376   - */
377   - getDownInLc: function() {
378   - return _travelLcObj[1].inLc;
379   - },
380   - /**
381   - * 获取下行出场班次类型。
382   - * @returns number
383   - */
384   - getDownOutLc: function() {
385   - return _travelLcObj[1].outLc;
386   - },
387   -
388   - //---------------- 获取时间段信息 --------------//
389   - /**
390   - * 获取早高峰开始时间对象。
391   - * @returns moment obj
392   - */
393   - getMPeakStartTimeObj: function() {
394   - return StrategyUtils.toTimeObj(
395   - _timeIntervalObj.moningPeakTimeStrs.start
396   - );
397   - },
398   - /**
399   - * 获取早高峰结束时间对象。
400   - * @returns moment obj
401   - */
402   - getMPeakEndTimeObj: function() {
403   - return StrategyUtils.toTimeObj(
404   - _timeIntervalObj.moningPeakTimeStrs.end
405   - );
406   - },
407   - /**
408   - * 获取晚高峰开始时间对象。
409   - * @returns moment obj
410   - */
411   - getEPeakStartTimeObj: function() {
412   - return StrategyUtils.toTimeObj(
413   - _timeIntervalObj.eveningPeakTimeStrs.start
414   - );
415   - },
416   - /**
417   - * 获取晚高峰结束时间对象。
418   - * @returns moment obj
419   - */
420   - getEPeakEndTimeObj: function() {
421   - return StrategyUtils.toTimeObj(
422   - _timeIntervalObj.eveningPeakTimeStrs.end
423   - );
424   - },
425   -
426   - //----------------- 获取发车间隙(TODO:以后通过客流估算)-----------------//
427   - /**
428   - * 获取早高峰最小发车间隙。
429   - * @returns int
430   - */
431   - getMPeakMinFcjx: function() {
432   - return _fcjxIntervalObj.mpeakfcjx.min;
433   - },
434   - /**
435   - * 获取早高峰最大发车间隙。
436   - * @returns int
437   - */
438   - getMPeakMaxFcjx: function() {
439   - return _fcjxIntervalObj.mpeakfcjx.max;
440   - },
441   - /**
442   - * 获取晚高峰最小发车间隙。
443   - * @returns int
444   - */
445   - getEPeakMinFcjx: function() {
446   - return _fcjxIntervalObj.epeakfcjx.min;
447   - },
448   - /**
449   - * 获取晚高峰最小发车间隙。
450   - * @returns int
451   - */
452   - getEPeakMaxFcjx: function() {
453   - return _fcjxIntervalObj.epeakfcjx.max;
454   - },
455   - /**
456   - * 获取低谷最小发车间隙。
457   - * @returns int
458   - */
459   - getTroughMinFcjx: function() {
460   - return _fcjxIntervalObj.troughfcjx.min;
461   - },
462   - /**
463   - * 获取低谷最大发车间隙。
464   - * @returns int
465   - */
466   - getTroughMaxFcjx: function() {
467   - return _fcjxIntervalObj.troughfcjx.max;
468   - },
469   -
470   - //----------------- 获取停站方式 -------------------//
471   - /**
472   - * 是否双向停站。
473   - * @returns {boolean}
474   - */
475   - isTwoWayStop: function() {
476   - return !_stopTypeObj.isMasterStop;
477   - },
478   - /**
479   - * 是否上行单向停站。
480   - * @returns {boolean}
481   - */
482   - isUpOneWayStop: function() {
483   - return _stopTypeObj.isMasterStop && _stopTypeObj.isMasterUpStop;
484   - },
485   - /**
486   - * 是否下行单向停站。
487   - * @returns {boolean}
488   - */
489   - isDownOneWayStop: function() {
490   - return _stopTypeObj.isMasterStop && (!_stopTypeObj.isMasterUpStop);
491   - },
492   -
493   - //----------------- 获取高峰配车数、加班路牌数 ----------------//
494   - /**
495   - * 获取高峰建议配车数(TODO:参照一下)。
496   - * @returns {Number|*}
497   - */
498   - getAdvicePeakClzs: function() {
499   - return parseInt(_formMap.gfjypcs);
500   - },
501   - /**
502   - * 获取加班路牌数(5休2路牌的个数)。
503   - * @returns {Number|*}
504   - */
505   - getJBLpes: function() {
506   - return parseInt(_formMap.jbclcount);
507   - },
508   -
509   - //----------------- 获取关联数据信息 -----------------//
510   - /**
511   - * 获取线路id。
512   - */
513   - getXlId: function() {
514   - return _xlObj.xl.id;
515   - },
516   - /**
517   - * 获取停车场id。
518   - */
519   - getTccId: function() {
520   - return _parkObj.park.id;
521   - },
522   - /**
523   - * 获取时刻表id。
524   - */
525   - getTTinfoId: function() {
526   - return _ttInfoObj.ttinfo.id;
527   - },
528   - /**
529   - * 获取上行起点站对象。
530   - * @returns {{id: *}}
531   - */
532   - getUpQdzObj: function() {
533   - return {
534   - id: _startEndStopObj.up.qdz.id
535   - };
536   - },
537   - /**
538   - * 获取上行终点站对象。
539   - * @returns {{id: *}}
540   - */
541   - getUpZdzObj: function() {
542   - return {
543   - id: _startEndStopObj.up.zdz.id
544   - };
545   - },
546   - /**
547   - * 获取下行起点站对象。
548   - * @returns {{id: *}}
549   - */
550   - getDownQdzObj: function() {
551   - return {
552   - id: _startEndStopObj.down.qdz.id
553   - };
554   - },
555   - /**
556   - * 获取下行终点站对象。
557   - * @returns {{id: *}}
558   - */
559   - getDownZdzObj: function() {
560   - return {
561   - id: _startEndStopObj.down.zdz.id
562   - };
563   - }
564   -
565   -
566   - };
  1 +/**
  2 + * 包装表单参数为内部参数对象。
  3 + * @param formMap 表单form参数map
  4 + * @param dataMap
  5 + * @constructor
  6 + *
  7 + * 注意:moment是mutable,所有的moment操作都会改变原有对象的值,
  8 + * 所以所有的操作都要小心处理。
  9 + */
  10 +var ParameterObj = function(formMap, dataMap) {
  11 + // 内部保存的form参数
  12 + var _formMap = formMap;
  13 + // 计算行驶时间对象
  14 + var _travelTimeObj_fun = function() {
  15 + var upMoningPeakTravelTime =
  16 + isNaN(_formMap.earlyUpTime) ?
  17 + parseInt(_formMap.upTravelTime) :
  18 + parseInt(_formMap.earlyUpTime);
  19 + var downMoningPeakTravelTime =
  20 + isNaN(_formMap.earlyDownTime) ?
  21 + parseInt(_formMap.downTravelTime) :
  22 + parseInt(_formMap.earlyDownTime);
  23 + var upEveningPeakTravelTime =
  24 + isNaN(_formMap.lateUpTime) ?
  25 + parseInt(_formMap.upTravelTime) :
  26 + parseInt(_formMap.lateUpTime);
  27 + var downEveningPeakTravelTime =
  28 + isNaN(_formMap.lateDownTime) ?
  29 + parseInt(_formMap.downTravelTime) :
  30 + parseInt(_formMap.lateDownTime);
  31 + var upTroughTravelTime =
  32 + isNaN(_formMap.troughUpTime) ?
  33 + parseInt(_formMap.upTravelTime) :
  34 + parseInt(_formMap.troughUpTime);
  35 + var downTroughTravelTime =
  36 + isNaN(_formMap.troughDownTime) ?
  37 + parseInt(_formMap.downTravelTime) :
  38 + parseInt(_formMap.troughDownTime);
  39 +
  40 + return { // TODO:暂时获取标准信息,之后改成历史数据,可能需要使用promise封装
  41 + "moningpeak": [
  42 + upMoningPeakTravelTime,
  43 + downMoningPeakTravelTime
  44 + ],
  45 + "eveningpeak": [
  46 + upEveningPeakTravelTime,
  47 + downEveningPeakTravelTime
  48 + ],
  49 + "trough": [
  50 + upTroughTravelTime,
  51 + downTroughTravelTime
  52 + ]
  53 + }
  54 + };
  55 + var _travelTimeObj = _travelTimeObj_fun();
  56 +
  57 + // 计算行驶里程对象
  58 + var _travelLcObj_fun = function() {
  59 + return [
  60 + { // 上行里程
  61 + "normalLc": isNaN(_formMap.upMileage) ? 0 : parseFloat(_formMap.upMileage),
  62 + "inLc": isNaN(_formMap.upInMileage) ? 0 : parseFloat(_formMap.upInMileage),
  63 + "outLc": isNaN(_formMap.upOutMileage) ? 0 : parseFloat(_formMap.upOutMileage)
  64 + },
  65 + { // 下行里程
  66 + "normalLc": isNaN(_formMap.downMileage) ? 0 : parseFloat(_formMap.downMileage),
  67 + "inLc": isNaN(_formMap.downInMileage) ? 0 : parseFloat(_formMap.downInMileage),
  68 + "outLc": isNaN(_formMap.downOutMileage) ? 0 : parseFloat(_formMap.downOutMileage)
  69 + }
  70 + ];
  71 + };
  72 + var _travelLcObj = _travelLcObj_fun();
  73 +
  74 + // 计算首班车,末班车行驶时间字符串
  75 + var _firstLastDepartureTimeStrObj_fun = function() {
  76 + return {
  77 + up: { // 上行
  78 + firstVehicleDepartureTimeStr: _formMap.startStationFirstTime,
  79 + lastVehicleDepartureTimeStr: _formMap.startStationEndTime
  80 + },
  81 + down: { // 下行
  82 + firstVehicleDepartureTimeStr: _formMap.endStationFirstTime,
  83 + lastVehicleDepartureTimeStr: _formMap.endStationEndTime
  84 + }
  85 + };
  86 + };
  87 + var _firstLastDepartureTimeStrObj = _firstLastDepartureTimeStrObj_fun();
  88 +
  89 + // 计算时间段划分对象
  90 + var _timeIntervalObj_fun = function() {
  91 + return {
  92 + moningPeakTimeStrs: {
  93 + start: _formMap.earlyStartTime,
  94 + end: _formMap.earlyEndTime
  95 + },
  96 + eveningPeakTimeStrs: {
  97 + start: _formMap.lateStartTime,
  98 + end: _formMap.lateEndTime
  99 + }
  100 +
  101 + // TODO:其他时间段以后再加
  102 + };
  103 + };
  104 + var _timeIntervalObj = _timeIntervalObj_fun();
  105 +
  106 + // 计算各个时段的发车间隙
  107 + var _fcjxIntervalObj_fun = function() {
  108 + var _rtn = {
  109 + mpeakfcjx : {}, // 早高峰
  110 + epeakfcjx : {}, // 晚高峰
  111 + troughfcjx: {} //低谷
  112 + };
  113 + var _fcjx = [];
  114 + var i = 0;
  115 +
  116 + // TODO:这里只有3个间隔,以后加其他的
  117 + // 1、早高峰间隙
  118 + // 2、晚高峰间隙
  119 + // 3、低谷
  120 +
  121 + _rtn.mpeakfcjx.min = parseInt(_formMap.zgffcjxmin);
  122 + _rtn.mpeakfcjx.max = parseInt(_formMap.zgffcjxmax);
  123 +
  124 + _rtn.epeakfcjx.min = parseInt(_formMap.wffcjxmin);
  125 + _rtn.epeakfcjx.max = parseInt(_formMap.wffcjxmax);
  126 +
  127 + _rtn.troughfcjx.min = parseInt(_formMap.dgfcjxmin);
  128 + _rtn.troughfcjx.max = parseInt(_formMap.dgfcjxmax);
  129 +
  130 + // 做一些逻辑检查
  131 + if (_rtn.mpeakfcjx.min > _rtn.mpeakfcjx.max) {
  132 + alert("早高峰最小间隔大于最大间隔");
  133 + throw "早高峰最小间隔大于最大间隔";
  134 + }
  135 + if (_rtn.epeakfcjx.min > _rtn.epeakfcjx.max) {
  136 + alert("晚高峰最小间隔大于最大间隔");
  137 + throw "晚高峰最小间隔大于最大间隔";
  138 + }
  139 + if (_rtn.troughfcjx.min > _rtn.troughfcjx.max) {
  140 + alert("低谷最小间隔大于最大间隔");
  141 + throw "低谷最小间隔大于最大间隔";
  142 + }
  143 +
  144 +
  145 + return _rtn;
  146 + };
  147 + var _fcjxIntervalObj = _fcjxIntervalObj_fun();
  148 +
  149 + // 获取停站类型
  150 + var _stopTypeObj_fun = function() {
  151 + var isMasterStop = false; // 是否主站停
  152 + var isMasterUpStop = false; // 主站停是否上行站点
  153 + if (_formMap) {
  154 + var fm_temp = _formMap.stt.split("/");
  155 + if (fm_temp.length == 1) { // 双向停站
  156 + isMasterStop = false;
  157 + } else {
  158 + isMasterStop = true;
  159 + if (fm_temp[1] == "0") {
  160 + isMasterUpStop = true;
  161 + } else {
  162 + isMasterUpStop = false;
  163 + }
  164 + }
  165 + } else {
  166 + throw "停站类型没有选择!";
  167 + }
  168 +
  169 + return {
  170 + isMasterStop: isMasterStop,
  171 + isMasterUpStop: isMasterUpStop
  172 + }
  173 + };
  174 + var _stopTypeObj = _stopTypeObj_fun();
  175 +
  176 + // 计算线路对象
  177 + var _xlObj_fun = function() {
  178 + return { // TODO:其他属性再议
  179 + xl: {
  180 + id: _formMap.lineName.split('_')[0]
  181 + }
  182 + };
  183 + };
  184 + var _xlObj = _xlObj_fun();
  185 +
  186 + // 计算停车场对象
  187 + var _parkObj_fun = function() {
  188 + return { // TODO:其他属性再议
  189 + park: {
  190 + id: _formMap.tcc_id
  191 + }
  192 + };
  193 + };
  194 + var _parkObj = _parkObj_fun();
  195 +
  196 + // 计算时刻表对象
  197 + var _ttInfoObj_fun = function() {
  198 + return { // TODO:其他属性再议
  199 + ttinfo: {
  200 + id: _formMap.skbName
  201 + }
  202 + };
  203 + };
  204 + var _ttInfoObj = _ttInfoObj_fun();
  205 +
  206 + // 计算起点站终点站对象
  207 + var _startEndStopObj_fun = function() {
  208 + return { // TODO:其他属性再议
  209 + up: {
  210 + qdz: { // 起点站
  211 + id: dataMap.qdzArr[0]
  212 + },
  213 + zdz: { // 终点站
  214 + id: dataMap.zdzArr[0]
  215 + }
  216 + },
  217 + down: {
  218 + qdz: { // 起点站
  219 + id: dataMap.qdzArr[1]
  220 + },
  221 + zdz: { // 终点站
  222 + id: dataMap.zdzArr[1]
  223 + }
  224 + }
  225 +
  226 + };
  227 + };
  228 + var _startEndStopObj = _startEndStopObj_fun();
  229 +
  230 + return {
  231 + /**
  232 + * 重置内部form参数。
  233 + * @param formMap
  234 + */
  235 + reset: function(formMap) {
  236 + _formMap = formMap;
  237 +
  238 + // 首班车,末班车行驶时间字符串
  239 + _firstLastDepartureTimeStrObj = _firstLastDepartureTimeStrObj_fun();
  240 + // 行驶时间对象
  241 + _travelTimeObj = _travelTimeObj_fun();
  242 + // 行驶里程对象
  243 + _travelLcObj = _travelLcObj_fun();
  244 + // 时间段划分对象
  245 + _timeIntervalObj = _timeIntervalObj_fun();
  246 + // 各个时段的发车间隙
  247 + _fcjxIntervalObj = _fcjxIntervalObj_fun();
  248 + // 停站类型
  249 + _stopTypeObj = _stopTypeObj_fun();
  250 + // 线路对象
  251 + _xlObj = _xlObj_fun();
  252 + // 停车场对象
  253 + _parkObj = _parkObj_fun();
  254 + // 时刻表对象
  255 + _ttInfoObj = _ttInfoObj_fun();
  256 + // 起点站终点站对象
  257 + _startEndStopObj = _startEndStopObj_fun();
  258 +
  259 + // TODO:其他再议
  260 + },
  261 +
  262 + //------------ 获取首班末班时间 ------------//
  263 + /**
  264 + * 获取上行首班时间对象。
  265 + * @return moment obj
  266 + */
  267 + getUpFirstDTimeObj: function() {
  268 + return StrategyUtils.toTimeObj(
  269 + _firstLastDepartureTimeStrObj.up.firstVehicleDepartureTimeStr
  270 + );
  271 + },
  272 + /**
  273 + * 获取上行末班时间对象。
  274 + * @return moment obj
  275 + */
  276 + getUpLastDtimeObj: function() {
  277 + return StrategyUtils.toTimeObj(
  278 + _firstLastDepartureTimeStrObj.up.lastVehicleDepartureTimeStr
  279 + );
  280 + },
  281 + /**
  282 + * 获取下行首班时间对象。
  283 + * @return moment obj
  284 + */
  285 + getDownFirstDTimeObj: function() {
  286 + return StrategyUtils.toTimeObj(
  287 + _firstLastDepartureTimeStrObj.down.firstVehicleDepartureTimeStr
  288 + );
  289 + },
  290 + /**
  291 + * 获取下行末班时间对象。
  292 + * @return moment obj
  293 + */
  294 + getDownLastDTimeObj: function() {
  295 + return StrategyUtils.toTimeObj(
  296 + _firstLastDepartureTimeStrObj.down.lastVehicleDepartureTimeStr
  297 + );
  298 + },
  299 +
  300 + //-------------- 获取行驶时间 ----------------//
  301 + /**
  302 + * 获取上行早高峰行驶时间。
  303 + * @returns int number
  304 + */
  305 + getUpMPeakTime: function() {
  306 + return _travelTimeObj.moningpeak[0];
  307 + },
  308 + /**
  309 + * 获取上行晚高峰行驶时间。
  310 + * @returns int number
  311 + */
  312 + getUpEPeakTime: function() {
  313 + return _travelTimeObj.eveningpeak[0];
  314 + },
  315 + /**
  316 + * 获取上行低谷行驶时间。
  317 + * @returns int number
  318 + */
  319 + getUpTroughTime: function() {
  320 + return _travelTimeObj.trough[0];
  321 + },
  322 + /**
  323 + * 获取下行早高峰行驶时间。
  324 + * @returns int number
  325 + */
  326 + getDownMPeakTime: function() {
  327 + return _travelTimeObj.moningpeak[1];
  328 + },
  329 + /**
  330 + * 获取下行晚高峰行驶时间。
  331 + * @returns int number
  332 + */
  333 + getDownEPeakTime: function() {
  334 + return _travelTimeObj.eveningpeak[1];
  335 + },
  336 + /**
  337 + * 获取下行低谷行驶时间。
  338 + * @returns int number
  339 + */
  340 + getDownTroughTime: function() {
  341 + return _travelTimeObj.trough[1];
  342 + },
  343 +
  344 + //---------------- 获取行驶里程 -----------------//
  345 + /**
  346 + * 获取上行normal班次里程。
  347 + * @returns number
  348 + */
  349 + getUpNormalLc: function() {
  350 + return _travelLcObj[0].normalLc;
  351 + },
  352 + /**
  353 + * 获取上行进场班次类型。
  354 + * @returns number
  355 + */
  356 + getUpInLc: function() {
  357 + return _travelLcObj[0].inLc;
  358 + },
  359 + /**
  360 + * 获取上行出场班次类型。
  361 + * @returns number
  362 + */
  363 + getUpOutLc: function() {
  364 + return _travelLcObj[0].outLc;
  365 + },
  366 + /**
  367 + * 获取下行normal班次类型。
  368 + * @returns number
  369 + */
  370 + getDownNormalLc: function() {
  371 + return _travelLcObj[1].normalLc;
  372 + },
  373 + /**
  374 + * 获取下行进场班次类型。
  375 + * @returns number
  376 + */
  377 + getDownInLc: function() {
  378 + return _travelLcObj[1].inLc;
  379 + },
  380 + /**
  381 + * 获取下行出场班次类型。
  382 + * @returns number
  383 + */
  384 + getDownOutLc: function() {
  385 + return _travelLcObj[1].outLc;
  386 + },
  387 +
  388 + //---------------- 获取时间段信息 --------------//
  389 + /**
  390 + * 获取早高峰开始时间对象。
  391 + * @returns moment obj
  392 + */
  393 + getMPeakStartTimeObj: function() {
  394 + return StrategyUtils.toTimeObj(
  395 + _timeIntervalObj.moningPeakTimeStrs.start
  396 + );
  397 + },
  398 + /**
  399 + * 获取早高峰结束时间对象。
  400 + * @returns moment obj
  401 + */
  402 + getMPeakEndTimeObj: function() {
  403 + return StrategyUtils.toTimeObj(
  404 + _timeIntervalObj.moningPeakTimeStrs.end
  405 + );
  406 + },
  407 + /**
  408 + * 获取晚高峰开始时间对象。
  409 + * @returns moment obj
  410 + */
  411 + getEPeakStartTimeObj: function() {
  412 + return StrategyUtils.toTimeObj(
  413 + _timeIntervalObj.eveningPeakTimeStrs.start
  414 + );
  415 + },
  416 + /**
  417 + * 获取晚高峰结束时间对象。
  418 + * @returns moment obj
  419 + */
  420 + getEPeakEndTimeObj: function() {
  421 + return StrategyUtils.toTimeObj(
  422 + _timeIntervalObj.eveningPeakTimeStrs.end
  423 + );
  424 + },
  425 +
  426 + //----------------- 获取发车间隙(TODO:以后通过客流估算)-----------------//
  427 + /**
  428 + * 获取早高峰最小发车间隙。
  429 + * @returns int
  430 + */
  431 + getMPeakMinFcjx: function() {
  432 + return _fcjxIntervalObj.mpeakfcjx.min;
  433 + },
  434 + /**
  435 + * 获取早高峰最大发车间隙。
  436 + * @returns int
  437 + */
  438 + getMPeakMaxFcjx: function() {
  439 + return _fcjxIntervalObj.mpeakfcjx.max;
  440 + },
  441 + /**
  442 + * 获取晚高峰最小发车间隙。
  443 + * @returns int
  444 + */
  445 + getEPeakMinFcjx: function() {
  446 + return _fcjxIntervalObj.epeakfcjx.min;
  447 + },
  448 + /**
  449 + * 获取晚高峰最小发车间隙。
  450 + * @returns int
  451 + */
  452 + getEPeakMaxFcjx: function() {
  453 + return _fcjxIntervalObj.epeakfcjx.max;
  454 + },
  455 + /**
  456 + * 获取低谷最小发车间隙。
  457 + * @returns int
  458 + */
  459 + getTroughMinFcjx: function() {
  460 + return _fcjxIntervalObj.troughfcjx.min;
  461 + },
  462 + /**
  463 + * 获取低谷最大发车间隙。
  464 + * @returns int
  465 + */
  466 + getTroughMaxFcjx: function() {
  467 + return _fcjxIntervalObj.troughfcjx.max;
  468 + },
  469 +
  470 + //----------------- 获取停站方式 -------------------//
  471 + /**
  472 + * 是否双向停站。
  473 + * @returns {boolean}
  474 + */
  475 + isTwoWayStop: function() {
  476 + return !_stopTypeObj.isMasterStop;
  477 + },
  478 + /**
  479 + * 是否上行单向停站。
  480 + * @returns {boolean}
  481 + */
  482 + isUpOneWayStop: function() {
  483 + return _stopTypeObj.isMasterStop && _stopTypeObj.isMasterUpStop;
  484 + },
  485 + /**
  486 + * 是否下行单向停站。
  487 + * @returns {boolean}
  488 + */
  489 + isDownOneWayStop: function() {
  490 + return _stopTypeObj.isMasterStop && (!_stopTypeObj.isMasterUpStop);
  491 + },
  492 +
  493 + //----------------- 获取高峰配车数、加班路牌数 ----------------//
  494 + /**
  495 + * 获取高峰建议配车数(TODO:参照一下)。
  496 + * @returns {Number|*}
  497 + */
  498 + getAdvicePeakClzs: function() {
  499 + return parseInt(_formMap.gfjypcs);
  500 + },
  501 + /**
  502 + * 获取加班路牌数(5休2路牌的个数)。
  503 + * @returns {Number|*}
  504 + */
  505 + getJBLpes: function() {
  506 + return parseInt(_formMap.jbclcount);
  507 + },
  508 +
  509 + //----------------- 获取关联数据信息 -----------------//
  510 + /**
  511 + * 获取线路id。
  512 + */
  513 + getXlId: function() {
  514 + return _xlObj.xl.id;
  515 + },
  516 + /**
  517 + * 获取停车场id。
  518 + */
  519 + getTccId: function() {
  520 + return _parkObj.park.id;
  521 + },
  522 + /**
  523 + * 获取时刻表id。
  524 + */
  525 + getTTinfoId: function() {
  526 + return _ttInfoObj.ttinfo.id;
  527 + },
  528 + /**
  529 + * 获取上行起点站对象。
  530 + * @returns {{id: *}}
  531 + */
  532 + getUpQdzObj: function() {
  533 + return {
  534 + id: _startEndStopObj.up.qdz.id
  535 + };
  536 + },
  537 + /**
  538 + * 获取上行终点站对象。
  539 + * @returns {{id: *}}
  540 + */
  541 + getUpZdzObj: function() {
  542 + return {
  543 + id: _startEndStopObj.up.zdz.id
  544 + };
  545 + },
  546 + /**
  547 + * 获取下行起点站对象。
  548 + * @returns {{id: *}}
  549 + */
  550 + getDownQdzObj: function() {
  551 + return {
  552 + id: _startEndStopObj.down.qdz.id
  553 + };
  554 + },
  555 + /**
  556 + * 获取下行终点站对象。
  557 + * @returns {{id: *}}
  558 + */
  559 + getDownZdzObj: function() {
  560 + return {
  561 + id: _startEndStopObj.down.zdz.id
  562 + };
  563 + }
  564 +
  565 +
  566 + };
567 567 };
568 568 \ No newline at end of file
... ...
src/main/resources/static/pages/forms/statement/jobSummary.html
... ... @@ -273,7 +273,13 @@
273 273 })
274 274  
275 275 $get('/report/jobHzxx',{line:line,date:date},function(result){
276   - console
  276 + //临加
  277 + $("#ljbcs").html(result.ljbc);
  278 + $("#ljgls").html(result.ljgl)
  279 +
  280 + //烂班
  281 + $("#lbbcs").html(result.lbbc);
  282 + $("#lbgls").html(result.lbgl)
277 283 var list_xxsj=template('list_xxsj',result);
278 284 $('#forms .list_xxsj').html(list_xxsj);
279 285  
... ...
src/main/resources/static/pages/history_sch/edit/css/main.css 0 → 100644
  1 +input::-webkit-outer-spin-button,
  2 +input::-webkit-inner-spin-button{
  3 + display: none;
  4 +}
  5 +
  6 +input::-webkit-calendar-picker-indicator {
  7 + display: none;
  8 +}
  9 +
  10 +input::-webkit-datetime-edit { padding: 1px; }
  11 +
  12 +.ps-container > .ps-scrollbar-y-rail{
  13 + z-index: 1 !important;
  14 +}
  15 +
  16 +.ps-container > .ps-scrollbar-x-rail,
  17 +.ps-container > .ps-scrollbar-y-rail {
  18 + opacity: 0.6 !important;
  19 + padding: 0 !important;
  20 +}
  21 +/* ^_^ baidu map hide logo */
  22 +.anchorBL, .anchorBL, .amap-logo, .amap-copyright {
  23 + display: none;
  24 +}
  25 +
  26 +audio, canvas, img, svg, video {
  27 + max-width: none;
  28 +}
  29 +
  30 +html, body {
  31 + width: 100%;
  32 + height: 100%;
  33 + overflow: hidden;
  34 + margin-left: 0 !important;
  35 +}
  36 +
  37 +.main-container {
  38 + height: calc(100% - 120px);
  39 +}
  40 +
  41 +#main-tab-content {
  42 + height: 100%;
  43 + margin-bottom: 0;
  44 +}
  45 +
  46 +.uk-modal .uk-form.fv-form, .uk-modal .ct-modal-body {
  47 + margin-bottom: -20px !important;
  48 +}
  49 +
  50 +.uk-modal .uk-form.fv-form.fixed-tool {
  51 + width: 100%;
  52 + position: relative;
  53 + height: 100%;
  54 +}
  55 +
  56 +.uk-modal .ct-modal-body .uk-modal-footer {
  57 + margin-left: 0;
  58 +}
  59 +
  60 +.uk-modal .uk-form.fv-form.fixed-tool .uk-modal-footer {
  61 + position: absolute;
  62 + bottom: 0;
  63 + width: calc(100% - 20px);
  64 +}
  65 +
  66 +table.ct-fixed-table {
  67 + table-layout: fixed;
  68 +}
  69 +
  70 +table.ct-fixed-table tr.context-menu-active {
  71 + background: #f0f0f0;
  72 +}
  73 +
  74 +table.ct-fixed-table.uk-table tr td {
  75 + white-space: nowrap;
  76 + overflow: hidden;
  77 + text-overflow: ellipsis;
  78 +}
  79 +
  80 +table.ct-fixed-table.uk-table .uk-badge {
  81 + padding: 2px 5px;
  82 +}
  83 +
  84 +.horizontal-field {
  85 + vertical-align: middle;
  86 + margin: 0 5px;
  87 +}
  88 +
  89 +.legend-tools {
  90 + float: right;
  91 + font-size: 11px;
  92 +}
  93 +
  94 +.legend-tools a.uk-icon-small {
  95 + margin: 0 5px;
  96 + cursor: pointer;
  97 +}
  98 +
  99 +.text-succ {
  100 + color: #659f13;
  101 +}
  102 +
  103 +.text-err {
  104 + color: red;
  105 +}
  106 +
  107 +.text-grey {
  108 + color: grey;
  109 +}
  110 +
  111 +svg.line-chart {
  112 + width: 100%;
  113 + height: 100%;
  114 + position: absolute;
  115 + left: 0;
  116 +}
  117 +
  118 +svg.line-chart circle.station_circle {
  119 + fill: #5e96d2;
  120 + r: 5.5;
  121 + stroke: rgb(253, 253, 253);
  122 + stroke-width: 3;
  123 + Pointer-events: none;
  124 +}
  125 +
  126 +svg.line-chart circle.station_circle.down {
  127 + fill: #c92121;
  128 +}
  129 +
  130 +svg.line-chart path.station_link {
  131 + stroke-width: 3.5px;
  132 + stroke: #5E96D2;
  133 + Pointer-events: none;
  134 +}
  135 +
  136 +svg.line-chart path.station_link.down {
  137 + stroke: #c92121;
  138 +}
  139 +
  140 +svg.line-chart path.station_link.down.loop_line {
  141 + stroke-dasharray: 4, 3;
  142 + stroke-width: 1px;
  143 +}
  144 +
  145 +svg.line-chart text.station_text {
  146 + writing-mode: tb;
  147 + fill: #3e3e3e;
  148 + letter-spacing: -.2px;
  149 + text-shadow: 0 0 2px #dadada;
  150 + Pointer-events: none;
  151 +}
  152 +
  153 +svg.line-chart text.station_text.up {
  154 + fill: #4556b6;
  155 +}
  156 +
  157 +svg.line-chart text.station_text.down {
  158 + fill: #c94f21;
  159 +}
  160 +
  161 +svg.line-chart g.item:first-child > text {
  162 + stroke: #6f6e6e;
  163 + fill: none;
  164 +}
  165 +
  166 +svg.line-chart g.item:nth-last-child(3) > text {
  167 + stroke: #6f6e6e;
  168 + fill: none;
  169 +}
  170 +
  171 +svg.line-chart g.item:first-child > text.up,
  172 +svg.line-chart g.item:nth-last-child(3) > text.up {
  173 + stroke: #4556b6;
  174 +}
  175 +
  176 +svg.line-chart g.item:first-child > text.down,
  177 +svg.line-chart g.item:nth-last-child(3) > text.down {
  178 + stroke: #c94f21;
  179 +}
  180 +
  181 +svg.line-chart g.gps-wrap > rect {
  182 + width: 30px;
  183 + height: 15px;
  184 + /* fill: #fff; */
  185 + rx: 2px;
  186 + cursor: pointer;
  187 +}
  188 +
  189 +svg.line-chart g.gps-wrap > rect[updown="0"] {
  190 + stroke: rgb(62, 80, 179);
  191 + fill: rgb(62, 80, 179);
  192 +}
  193 +
  194 +svg.line-chart g.gps-wrap > rect[updown="1"] {
  195 + stroke: #c94f21;
  196 + fill: #c94f21;
  197 +}
  198 +
  199 +svg.line-chart g.gps-wrap > rect.hover {
  200 + stroke-width: 2;
  201 +}
  202 +
  203 +svg.line-chart g.gps-wrap > text {
  204 + font-size: 12px;
  205 + transform: translate(0, 12px);
  206 + pointer-events: none;
  207 +}
  208 +
  209 +svg.line-chart g.gps-wrap > text[updown="0"] {
  210 + fill: #fff;
  211 +}
  212 +
  213 +svg.line-chart g.gps-wrap > text[updown="1"] {
  214 + fill: #fff;
  215 +}
  216 +
  217 +svg.line-chart g.gps-wrap > rect.abnormal[updown="0"],
  218 +svg.line-chart g.gps-wrap > rect.abnormal[updown="1"] {
  219 + width: 40px;
  220 + fill: yellow;
  221 + stroke: yellow;
  222 +}
  223 +
  224 +svg.line-chart g.gps-wrap > text.abnormal[updown="0"],
  225 +svg.line-chart g.gps-wrap > text.abnormal[updown="1"] {
  226 + fill: black;
  227 +}
  228 +
  229 +svg.line-chart .merge_hide {
  230 + display: none !important;
  231 +}
  232 +
  233 +svg.line-chart g.merge-item rect {
  234 + width: 22px;
  235 + height: 22px;
  236 + rx: 15px;
  237 + fill: #19a53a;
  238 + cursor: pointer;
  239 + stroke: #19a53a;
  240 + stroke-dasharray: 1, 2;
  241 + stroke-width: 3px;
  242 +}
  243 +
  244 +svg.line-chart g.merge-item text {
  245 + fill: #fff;
  246 + pointer-events: none;
  247 +}
  248 +
  249 +.qtip-multi-gps {
  250 + max-width: 720px !important;
  251 +}
  252 +
  253 +.qtip-bootstrap.qtip-multi-gps .qtip-content {
  254 + padding: 0;
  255 +}
  256 +
  257 +.tooltip {
  258 + position: relative;
  259 + padding-bottom: 160px;
  260 + width: 220px;
  261 +}
  262 +
  263 +.multi-tooltip-wrap {
  264 + width: 100%;
  265 + max-height: 350px;
  266 + overflow: auto;
  267 +}
  268 +
  269 +.tip_map_wrap.multi {
  270 + width: 100%;
  271 + height: 130px;
  272 +}
  273 +
  274 +.tooltip.multi-tooltip {
  275 + width: 160px;
  276 + display: inline-block;
  277 + padding: 10px 0 10px 15px;
  278 + border-right: 1px solid #eeeeee;
  279 + border-bottom: 1px solid #eeeeee;
  280 +}
  281 +
  282 +.tooltip hr {
  283 + border-top: 1px solid #eeeeee;
  284 + width: calc(100% + 30px);
  285 + margin: 7px 0 11px -15px;
  286 +}
  287 +
  288 +.tooltip.multi-tooltip hr {
  289 + width: calc(100% + 16px);
  290 +}
  291 +
  292 +.tooltip .tooltip-container {
  293 + padding: 1px;
  294 +}
  295 +
  296 +.tooltip .tooltip-container div, .tooltip .tooltip-container div a {
  297 + margin: 7px 1px;
  298 + font-size: 13px;
  299 + color: rgb(76, 76, 76);
  300 +}
  301 +
  302 +.tooltip .tooltip-container div.title {
  303 + margin: 8px 1px 12px;
  304 +}
  305 +
  306 +.tooltip .tooltip-container .title a {
  307 + font-size: 18px;
  308 + font-family: 微软雅黑;
  309 +}
  310 +
  311 +.tooltip span.field {
  312 + color: #7d7d7b;
  313 + margin-right: 5px;
  314 +}
  315 +
  316 +.tooltip .tip_map_wrap {
  317 + position: absolute;
  318 + bottom: -16px;
  319 + left: -15px;
  320 + width: calc(100% + 28px);
  321 + background: #fff;
  322 + height: 165px;
  323 + border-radius: 0 0 5px 5px;
  324 + border-top: 1px solid #e6e4e4;
  325 +}
  326 +
  327 +canvas.crosshair-layer {
  328 + position: absolute;
  329 + width: 100%;
  330 + height: 100%;
  331 + background: rgba(255, 255, 255, 0.33);
  332 + left: 0;
  333 +}
  334 +
  335 +li.map-panel {
  336 + height: 100%;
  337 + position: relative;
  338 +}
  339 +
  340 +.main-container .load-panel {
  341 + display: block;
  342 + color: #999797;
  343 +}
  344 +
  345 +.uk-panel-box-danger {
  346 + background-color: #fff1f0;
  347 + /*color: #d85030;*/
  348 + border-color: rgba(216, 80, 48, .3);
  349 +}
  350 +
  351 +/*.uk-panel-box-danger .uk-panel-title {
  352 + color: #d85030;
  353 +}*/
  354 +
  355 +.uk-badge-default {
  356 + background-color: #a09b9c;
  357 + background-image: -webkit-linear-gradient(top, #9a9898, #8c8687);
  358 + background-image: linear-gradient(to bottom, #9a9898, #8c8687);
  359 +}
  360 +
  361 +.ct-bottom-drawer {
  362 + width: 100%;
  363 + background: rgb(255, 255, 255);
  364 + position: fixed;
  365 + bottom: 0;
  366 + box-shadow: 0 0 10px rgba(0, 0, 0, .3);
  367 + transition: all .3s ease;
  368 + height: 0;
  369 +}
  370 +
  371 +.ct-bottom-drawer.open {
  372 + height: 320px;
  373 +}
  374 +
  375 +.ct-bottom-drawer a.ct-bottom-drawer-close {
  376 + position: absolute;
  377 + right: 10px;
  378 + top: 10px;
  379 + color: #c3c3c3;
  380 + width: 20px;
  381 + line-height: 20px;
  382 + background: #fff;
  383 + text-align: center;
  384 + z-index: 99;
  385 +}
  386 +
  387 +.ct-bottom-drawer a.ct-bottom-drawer-close:hover {
  388 + text-decoration: none;
  389 + color: grey;
  390 +}
  391 +
  392 +.ct-bottom-drawer a.ct-bottom-drawer-close:after {
  393 + display: block;
  394 + content: "\f00d";
  395 + font-family: FontAwesome;
  396 +}
  397 +
  398 +.ct-bottom-drawer-body {
  399 + width: 100%;
  400 + height: 100%;
  401 +}
  402 +
  403 +#station_route_spacing_chart_drawer .svg_wrap {
  404 + width: 80%;
  405 + height: 100%;
  406 + display: inline-block;
  407 + font-size: 14px;
  408 + overflow: hidden;
  409 + position: relative;
  410 +}
  411 +
  412 +#station_route_spacing_chart_drawer .drawer_right_map {
  413 + width: 20%;
  414 + height: 100%;
  415 + display: inline-block;
  416 +}
  417 +
  418 +#station_route_spacing_chart_drawer .svg_cont_body {
  419 + height: 100%;
  420 + position: absolute;
  421 + top: 0;
  422 + left: 0;
  423 +}
  424 +
  425 +#station_route_spacing_chart_drawer svg {
  426 + width: 100%;
  427 + height: 100%;
  428 +}
  429 +
  430 +#station_route_spacing_chart_drawer svg g._item rect {
  431 + stroke: rgb(62, 80, 179);
  432 + fill: rgb(62, 80, 179);
  433 + width: 30px;
  434 + height: 124px;
  435 + rx: 5;
  436 + transform: translate(-15px);
  437 +}
  438 +
  439 +#station_route_spacing_chart_drawer svg g._item text {
  440 + writing-mode: tb;
  441 + transform: translate(0, 9px);
  442 + fill: #fff;
  443 +}
  444 +
  445 +#station_route_spacing_chart_drawer svg g._item path {
  446 + stroke-width: 5.4px;
  447 + stroke: #3e50b3;
  448 +}
  449 +
  450 +#station_route_spacing_chart_drawer svg g._item circle {
  451 + r: 3px;
  452 + fill: #ffffff;
  453 +}
  454 +
  455 +#station_route_spacing_chart_drawer svg g._item path.arc_path {
  456 + stroke-width: 1.3px;
  457 + stroke: #3e50b3;
  458 + stroke-dasharray: 1000;
  459 + stroke-dashoffset: 1000;
  460 + fill: none;
  461 +
  462 + animation: dash .9s;
  463 + webkit-amimation: dash .9s;
  464 + animation-fill-mode: forwards;
  465 + -webkit-animation-fill-mode: forwards;
  466 +}
  467 +
  468 +@keyframes dash {
  469 + to {
  470 + stroke-dashoffset: 0;
  471 + stroke-dasharray: 4, 4;
  472 + }
  473 +}
  474 +
  475 +@-webkit-keyframes dash {
  476 + to {
  477 + stroke-dashoffset: 0;
  478 + stroke-dasharray: 4, 4;
  479 + }
  480 +}
  481 +
  482 +#station_route_spacing_chart_drawer svg g._item text.distance_text {
  483 + writing-mode: horizontal-tb;
  484 + fill: #3e50b3;
  485 +}
  486 +
  487 +#station_route_spacing_chart_drawer svg g._item rect.distance_rect {
  488 + height: 20px;
  489 + width: 40px;
  490 + fill: #fff !important;
  491 + stroke-width: 0;
  492 +}
  493 +
  494 +#station_route_spacing_chart_drawer .tl_desc_text {
  495 + position: absolute;
  496 + top: 5px;
  497 + left: 5px;
  498 + font-size: 12px;
  499 + color: #525050;
  500 + font-family: 微软雅黑;
  501 +}
  502 +
  503 +#station_route_spacing_chart_drawer svg g._item:first-child circle {
  504 + fill: #3e50b3;
  505 + r: 6px;
  506 +}
  507 +
  508 +#station_route_spacing_chart_drawer svg g._item:last-child circle {
  509 + fill: #3e50b3;
  510 + r: 6px;
  511 +}
  512 +
  513 +/* 下行 */
  514 +#station_route_spacing_chart_drawer svg.down g._item rect {
  515 + stroke: #dd3829;
  516 + fill: #dd3829;
  517 +}
  518 +
  519 +#station_route_spacing_chart_drawer svg.down g._item path {
  520 + stroke: #dd3829;
  521 +}
  522 +
  523 +#station_route_spacing_chart_drawer svg.down g._item:first-child circle {
  524 + fill: #dd3829;
  525 +}
  526 +
  527 +#station_route_spacing_chart_drawer svg.down g._item text.distance_text {
  528 + fill: #dd3829;
  529 +}
  530 +
  531 +#station_route_spacing_chart_drawer svg.down g._item path.arc_path {
  532 + stroke: #dd3829;
  533 +}
  534 +
  535 +#station_route_spacing_chart_drawer svg.down g._item:last-child circle {
  536 + fill: #dd3829;
  537 +}
  538 +
  539 +.svg-edit-panel-wrap {
  540 + width: 48%;
  541 + border: 1px solid #e1d3d3;
  542 + padding: 12px 0 0 0;
  543 + border-radius: 4px;
  544 + position: relative;
  545 + display: inline-block;
  546 + vertical-align: top;
  547 + height: 440px;
  548 +}
  549 +
  550 +.svg-edit-panel-wrap .title-badge {
  551 + position: absolute;
  552 + top: -10px;
  553 + left: 7px;
  554 + font-size: 13px;
  555 + background: #fff;
  556 + padding: 0 3px;
  557 + color: #888888;
  558 +}
  559 +
  560 +.svg-edit-panel-wrap .rename-tools {
  561 + height: 21px;
  562 + padding: 0 0 0 9px;
  563 +}
  564 +
  565 +.svg-edit-panel-wrap .rename-item-panel {
  566 + border-bottom: 1px solid #ede5e5;
  567 + padding: 4px;
  568 +}
  569 +
  570 +.svg-edit-panel-wrap .rename-item-panel select {
  571 + width: 150px;
  572 +}
  573 +
  574 +.svg-edit-panel-wrap .rename-item-panel input {
  575 + margin-left: 7px;
  576 +}
  577 +
  578 +.svg-edit-panel-wrap .rename-item-panel input[type=checkbox] {
  579 + margin-top: 2px;
  580 + margin-right: 4px;
  581 +}
  582 +
  583 +.svg-edit-panel-wrap .rename-item-panel.active {
  584 + background: #65c9f8;
  585 + box-shadow: 0px 3px 7px 0 rgba(101, 201, 248, 0.48), 0px 1px 4px 0 rgba(101, 201, 248, 0.32);
  586 +}
  587 +
  588 +.svg-edit-panel-wrap .rename-item-panel.active select,
  589 +.svg-edit-panel-wrap .rename-item-panel.active input {
  590 + background: #65c9f8;
  591 + color: #fff;
  592 +}
  593 +
  594 +.svg-edit-panel-wrap .rename-item-panel.active i {
  595 + color: #e4f6ff;
  596 +}
  597 +
  598 +.svg-edit-panel-wrap .rename-item-panel.active input[type=checkbox] {
  599 + border: none;
  600 +}
  601 +
  602 +.svg-edit-panel-wrap .rename-item-panel.active input[type=checkbox]:before {
  603 + color: #fff;
  604 +}
  605 +
  606 +.svg-edit-panel-wrap .rename-tools a {
  607 + font-size: 14px;
  608 + padding: 5px;
  609 +}
  610 +
  611 +.svg-edit-panel-wrap .rename-tools a:hover {
  612 + background: #e8edef;
  613 + border-radius: 5px;
  614 +}
  615 +
  616 +.station-list {
  617 + width: 190px;
  618 + padding: 2px 7px;
  619 + height: 100%;
  620 + overflow: auto;
  621 + display: inline-block;
  622 +}
  623 +
  624 +.station-list .station-item {
  625 + padding: 3px 0;
  626 + margin: 5px 0;
  627 + border-radius: 3px;
  628 + font-size: 13px;
  629 + text-indent: 7px;
  630 + cursor: pointer;
  631 + white-space: nowrap;
  632 + overflow: hidden;
  633 + text-overflow: ellipsis;
  634 +}
  635 +
  636 +.station-list .station-item.disable,
  637 +.station-list .station-item.disable:hover {
  638 + background: #d5c9c9 !important;
  639 + color: #686565 !important;
  640 +}
  641 +
  642 +.station-list.up .station-item {
  643 + background: #5364c3;
  644 + color: white;
  645 +}
  646 +
  647 +.station-list.up .station-item:hover {
  648 + box-shadow: 0px 3px 6px 0 rgba(0, 0, 0, 0.2), 0px 1px 4px 0 rgba(0, 0, 0, 0.19);
  649 + background: #4556b6;
  650 +}
  651 +
  652 +.station-list.down .station-item {
  653 + background: #f95858;
  654 + color: white;
  655 +}
  656 +
  657 +.station-list.down .station-item:hover {
  658 + box-shadow: 0px 3px 6px 0 rgba(0, 0, 0, 0.2), 0px 1px 4px 0 rgba(0, 0, 0, 0.19);
  659 + background: #e95151;
  660 +}
  661 +
  662 +.modal-dotted-hr {
  663 + height: 1px;
  664 + border: none;
  665 + border-top: 1px dashed #d1d1d1;
  666 + width: calc(100% + 40px);
  667 + margin-left: -20px;
  668 +}
  669 +
  670 +#add-sub-task-range_turn-modal .main-sch-panel {
  671 + height: 60px;
  672 + border: 1px solid #dddddd;
  673 + border-radius: 5px;
  674 + position: relative;
  675 + padding: 20px 0 0 8px;
  676 +}
  677 +
  678 +#add-sub-task-range_turn-modal .main-sch-panel:before {
  679 + content: '主任务';
  680 + position: absolute;
  681 + top: -10px;
  682 + left: 10px;
  683 + background: #fff;
  684 + padding: 0 4px;
  685 + font-size: 12px;
  686 + color: #adadad;
  687 +}
  688 +
  689 +.ct_row {
  690 + font-size: 0;
  691 +}
  692 +
  693 +.ct_row .ct_cell {
  694 + display: inline-block;
  695 + font-size: 13px;
  696 + white-space: nowrap;
  697 + overflow: hidden;
  698 + text-overflow: ellipsis;
  699 +}
  700 +
  701 +.ct_row .ct_cell label {
  702 + color: #979393;
  703 + margin-right: 3px;
  704 +}
  705 +
  706 +.ct_row .ct_cell.c_1_3 {
  707 + width: 33%;
  708 +}
  709 +
  710 +#schedule-lp_change-modal .sch-list dl dd {
  711 + font-size: 14px;
  712 +}
  713 +
  714 +#schedule-lp_change-modal .sch-list dl dt:nth-of-type(1), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(1) {
  715 + width: 5%;
  716 + border-left: 1px solid #dedede;
  717 +}
  718 +
  719 +#schedule-lp_change-modal .sch-list dl dt:nth-of-type(2), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(2) {
  720 + width: 22%;
  721 +}
  722 +
  723 +#schedule-lp_change-modal .sch-list dl dt:nth-of-type(3), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(3) {
  724 + width: 17%;
  725 +}
  726 +
  727 +#schedule-lp_change-modal .sch-list dl dt:nth-of-type(4), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(4) {
  728 + width: 10%;
  729 + }
  730 +
  731 +#schedule-lp_change-modal .sch-list dl dt:nth-of-type(5), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(5) {
  732 + width: 21%;
  733 +}
  734 +
  735 +#schedule-lp_change-modal .sch-list dl dt:nth-of-type(6), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(6) {
  736 + width: 10%;
  737 +}
  738 +
  739 +#schedule-lp_change-modal .sch-list dl dt:nth-of-type(7), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(7) {
  740 + width: 14%;
  741 +}
  742 +
  743 +
  744 +
  745 +
  746 +#schedule-lp_change-modal .sch-list.reverse dl dt:nth-of-type(1), #schedule-lp_change-modal .sch-list.reverse dl dd:nth-of-type(1) {
  747 + width: 5%;
  748 + border-left: 1px solid #dedede;
  749 +}
  750 +
  751 +#schedule-lp_change-modal .sch-list.reverse dl dt:nth-of-type(2), #schedule-lp_change-modal .sch-list.reverse dl dd:nth-of-type(2) {
  752 + width: 14%;
  753 +}
  754 +
  755 +#schedule-lp_change-modal .sch-list.reverse dl dt:nth-of-type(3), #schedule-lp_change-modal .sch-list.reverse dl dd:nth-of-type(3) {
  756 + width: 10%;
  757 +}
  758 +
  759 +#schedule-lp_change-modal .sch-list.reverse dl dt:nth-of-type(4), #schedule-lp_change-modal .sch-list.reverse dl dd:nth-of-type(4) {
  760 + width: 21%;
  761 +}
  762 +
  763 +#schedule-lp_change-modal .sch-list.reverse dl dt:nth-of-type(5), #schedule-lp_change-modal .sch-list.reverse dl dd:nth-of-type(5) {
  764 + width: 10%;
  765 +}
  766 +
  767 +#schedule-lp_change-modal .sch-list.reverse dl dt:nth-of-type(6), #schedule-lp_change-modal .sch-list.reverse dl dd:nth-of-type(6) {
  768 + width: 17%;
  769 +}
  770 +
  771 +#schedule-lp_change-modal .sch-list.reverse dl dt:nth-of-type(7), #schedule-lp_change-modal .sch-list.reverse dl dd:nth-of-type(7) {
  772 + width: 22%;
  773 +}
  774 +
  775 +#schedule-lp_change-modal .ct_table.sch-list .ct_table_body dl.active {
  776 + background: #b9d2ff;
  777 +}
  778 +
  779 +#schedule-lp_change-modal .ct_table.sch-list .ct_table_body dl.active dd {
  780 + border-top: 1px solid #b9d2ff;
  781 +}
  782 +
  783 +#schedule-lp_change-modal .ct_table.sch-list dl.active input[type=checkbox] {
  784 + border: none;
  785 +}
  786 +
  787 +#schedule-lp_change-modal .ct_table.sch-list.reverse .ct_table_body dl.active {
  788 + background: #ffe2b9;
  789 +}
  790 +
  791 +#schedule-lp_change-modal .ct_table.sch-list.reverse .ct_table_body dl.active dd {
  792 + border-top: 1px solid #ffe2b9;
  793 +}
  794 +
  795 +#cache_data_manage-modal .uk-table td{
  796 + vertical-align: bottom;
  797 +}
  798 +
  799 +#cache_data_manage-modal .uk-table td,
  800 +#cache_data_manage-modal .uk-table th{
  801 + padding: 8px 8px 6px;
  802 +}
  803 +
  804 +
  805 +.ps-help-panel{
  806 + color: grey;
  807 + padding: 5px 2px;
  808 +}
  809 +
  810 +.ps-help-panel small{
  811 + display: block;
  812 +}
  813 +
  814 +
  815 +svg text.offline{
  816 + fill: #6f6a6a !important;
  817 +}
  818 +
  819 +svg rect.offline{
  820 + stroke: #dbdada !important;
  821 + fill: #dbdada !important;
  822 +}
  823 +
  824 +.tooltip .tooltip-container .title a>.abnormal-text{
  825 + font-size: 14px;
  826 + color: #ff5e5e;
  827 + font-weight: 600;
  828 +}
  829 +
  830 +#addChildTaskBtn{
  831 + margin-left: 5px;
  832 + color: #36729b;
  833 + padding: 1px 5px 1px 6px;
  834 +}
  835 +
  836 +#addChildTaskBtn:hover{
  837 + box-shadow: 2px 1px 3px 0 rgba(0, 0, 0, 0.2), 0px 3px 8px 0 rgba(0, 0, 0, 0.19);
  838 +}
  839 +
  840 +.edit-icon{
  841 + color: #aba9a9;
  842 + font-size: 12px;
  843 + margin-left: 5px;
  844 + display: none;
  845 +}
  846 +
  847 +.operation-real-text{
  848 + position: absolute;
  849 + top: 9px;
  850 + width: 100%;
  851 + left: 0;
  852 + text-align: center;
  853 + pointer-events: none;
  854 +}
  855 +
  856 +.operation-real-text span{
  857 + padding: 15px;
  858 + background: #ff4f4f;
  859 + color: white;
  860 + box-shadow: 0px 4px 6px 0 rgba(0, 0, 0, 0.2), 0px 4px 10px 0 rgba(0, 0, 0, 0.19);
  861 + border-radius: 1px 1px 4px 4px;
  862 +}
  863 +
  864 +#oil_station-modal.ct-form-modal form.uk-form-horizontal .uk-form-label{
  865 + width: 120px;
  866 +}
  867 +
  868 +#oil_station-modal.ct-form-modal form.uk-form-horizontal .uk-form-controls{
  869 + margin-left: 125px;
  870 +}
  871 +
  872 +#oil_station-modal .uk-form-icon>[class*=uk-icon-]{
  873 + right: 23px;
  874 +}
  875 +
  876 +#oil_station-modal .uk-form-icon:not(.uk-form-icon-flip)>input{
  877 + padding-left: 10px !important;
  878 +}
  879 +
  880 +#oil_station-modal .uk-form-icon{
  881 + width: calc(100% - 145px);
  882 +}
  883 +
  884 +#oil_station-modal .uk-icon-mile:before{
  885 + content: '公里';
  886 +}
  887 +
  888 +#oil_station-modal .uk-icon-minute:before{
  889 + content: '分钟';
  890 +}
  891 +
  892 +option.oil_station_opt{
  893 + color: red;
  894 +}
  895 +
  896 +#oil_station-modal .uk-modal .uk-form.fv-form{
  897 + margin-bottom: 0 !important;
  898 +}
  899 +
  900 +#gb_wait_modal .uk-modal-spinner{
  901 + top: 25px;
  902 + -webkit-transform: translate(-50%,0);
  903 + transform: translate(-50%,0);
  904 +}
  905 +
  906 +#gb_wait_modal .wait-modal-text{
  907 + text-align: center;
  908 + margin-top: 35px;
  909 + font-size: 15px;
  910 + color: #635e5e;
  911 +}
  912 +
  913 +.park-and-station-wrap{
  914 + margin-top: 9px;
  915 + border: 1px solid #3dce69;
  916 + width: 580px;
  917 + padding: 12px;
  918 + border-radius: 5px;
  919 +}
  920 +.park-and-station-wrap select{
  921 + width: auto !important;
  922 +}
  923 +
  924 +/** 安全驾驶相关css */
  925 +.safe_driv_pop_wrap{
  926 + position: absolute;
  927 + right: 12px;
  928 + bottom: 12px;
  929 + z-index: 99;
  930 +}
  931 +
  932 +.safe_driv_pop{
  933 + background: #d44b4b;
  934 + font-size: 15px;
  935 + padding: 9px 10px 0;
  936 + border: 1px solid #f4f0f0;
  937 + border-radius: 5px;
  938 + cursor: pointer;
  939 + box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  940 + transition: all .03s;
  941 + color: #f2f2f2;
  942 +}
  943 +
  944 +.safe_driv_pop:hover{
  945 + background: #bc2a2a;
  946 +}
  947 +
  948 +.safe_driv_pop .title{
  949 +}
  950 +
  951 +.safe_driv_pop .desc{
  952 + display: block;
  953 + font-size: 12px;
  954 + color: #ff9d9d;
  955 + text-align: right;
  956 + margin-right: 5px;
  957 +}
  958 +
  959 +/** 嵌入表单modal滚动条样式 */
  960 +#formFragmentModal::-webkit-scrollbar {
  961 + width: 10px;
  962 + background-color: #F5F5F5;
  963 +}
  964 +#formFragmentModal::-webkit-scrollbar-thumb {
  965 + background-color: #000000;
  966 +}
  967 +#formFragmentModal::-webkit-scrollbar-track {
  968 + border: 0;
  969 + background-color: #F5F5F5;
  970 + border-radius: 0;
  971 +}
  972 +
  973 +#formFragmentModal::-webkit-scrollbar-thumb{
  974 + border: 5px solid rgb(226, 122, 122);
  975 +}
  976 +
  977 +#schedule-addsch_oil-modal select{
  978 + height: 30px !important;
  979 +}
  980 +
  981 +#oil_station-modal .input_clear_icon{
  982 + position: absolute;
  983 + top: 6px;
  984 + right: 108px;
  985 + color: #f75757;
  986 + height: 18px;
  987 + line-height: 18px;
  988 + border-radius: 7px;
  989 + font-size: 16px;
  990 + display: none;
  991 + cursor: pointer;
  992 +}
  993 +
  994 +#oil_station-modal .input_clear_icon:hover{
  995 + color: #de2020;
  996 +}
  997 +
  998 +#oil_station-modal .input_clear_icon:before{
  999 + display: block;
  1000 + font-family: FontAwesome;
  1001 + content: "\f057";
  1002 +}
  1003 +
  1004 +#oil_station-modal input.readonly{
  1005 + background: #dddddd;
  1006 +}
  1007 +
  1008 +
  1009 +.ct_tags{
  1010 + margin-bottom: 12px;
  1011 +}
  1012 +
  1013 +.ct_tags>span{
  1014 + padding: 3px 7px;
  1015 + background: #e8e8e8;
  1016 + color: #3a3939;
  1017 + cursor: pointer;
  1018 + margin-right: 5px;
  1019 +}
  1020 +
  1021 +.ct_tags>span.active{
  1022 + background: #62a9e1;
  1023 + color: white;
  1024 + box-shadow: 0 0 4px rgba(0, 0, 0, 0.35);
  1025 +}
  1026 +
  1027 +.ct_tags>span.active:before{
  1028 + content: "\f00c";
  1029 + font-family: FontAwesome;
  1030 + margin-right: 2px;
  1031 + font-size: 13px;
  1032 +}
  1033 +
  1034 +.ct_tags>span:hover{
  1035 + box-shadow: 0 0 4px rgba(0,0,0,.3);
  1036 +}
  1037 +
  1038 +span.late-badge {
  1039 + height: 20px;
  1040 + line-height: 20px;
  1041 + margin-top: 8px;
  1042 + color: grey;
  1043 + margin-left: 2px;
  1044 +}
  1045 +
  1046 +dl.intimity span.late-badge{
  1047 + color: #fbfbfb;
  1048 +}
  1049 +
  1050 +/** badge tooltip */
  1051 +.uk-badge.c_task:hover,
  1052 +.uk-badge.sch_region:hover{
  1053 + background-image: none;
  1054 + background: #38b3e1;
  1055 + border: 1px solid #7ebad1;
  1056 +}
  1057 +
  1058 +.uk-badge.out:hover{
  1059 + background-image: none;
  1060 + background: #8fc650;
  1061 + border: 1px solid #949f86;
  1062 +}
  1063 +
  1064 +.uk-badge.in:hover{
  1065 + background-image: none;
  1066 + background: #fabc64;
  1067 + border: 1px solid #a68c67;
  1068 +}
  1069 +
  1070 +.qtip.sch-badge-tip{
  1071 + max-width: 500px;
  1072 +}
  1073 +
  1074 +.tip_task_list {
  1075 + width: 460px;
  1076 + margin-bottom: -10px;
  1077 +}
  1078 +.tip_task_list dl{
  1079 + font-size: 0;
  1080 + border-bottom: 1px solid #e6e6e6;
  1081 + margin: 0;
  1082 +}
  1083 +.tip_task_list dl:last-child{
  1084 + border-bottom: none;
  1085 +}
  1086 +.tip_task_list dl dt,
  1087 +.tip_task_list dl dd{
  1088 + display: inline-block;
  1089 + font-size: 13px;
  1090 + white-space: nowrap;
  1091 + overflow: hidden;
  1092 + text-overflow: ellipsis;
  1093 + height: 24px;
  1094 + line-height: 24px;
  1095 +}
  1096 +
  1097 +.tip_task_list dl dt:nth-of-type(1), .tip_task_list dl dd:nth-of-type(1){
  1098 + width: 19%;
  1099 +}
  1100 +.tip_task_list dl dt:nth-of-type(2), .tip_task_list dl dd:nth-of-type(2){
  1101 + width: 12%;
  1102 +}
  1103 +.tip_task_list dl dt:nth-of-type(3), .tip_task_list dl dd:nth-of-type(3){
  1104 + width: 28%;
  1105 +}
  1106 +.tip_task_list dl dt:nth-of-type(4), .tip_task_list dl dd:nth-of-type(4){
  1107 + width: 28%;
  1108 +}
  1109 +.tip_task_list dl dt:nth-of-type(5), .tip_task_list dl dd:nth-of-type(5){
  1110 + width: 13%;
  1111 +}
  1112 +
  1113 +.tip_task_list dl.service{
  1114 + color: blue;
  1115 +}
  1116 +.tip_task_list dl.service.destroy{
  1117 + color: red;
  1118 +}
  1119 +
  1120 +.tip_task_list dl.service.temp_add{
  1121 + color: #9C27B0;
  1122 +}
  1123 +
  1124 +.tip_task_list dl span{
  1125 + margin: 0;
  1126 + width: auto;
  1127 +}
  1128 +
  1129 +ul.left_tabs_lg{
  1130 + border: 1px solid #efeded;
  1131 + height: 100%;
  1132 + background: #fafafa;
  1133 +}
  1134 +
  1135 +ul.left_tabs_lg li{
  1136 + line-height: 40px;
  1137 + font-size: 15px;
  1138 +}
  1139 +
  1140 +#schedule-addsch-modal .uk-modal-footer{
  1141 + border-top: none;
  1142 + background: none;
  1143 +}
  1144 +
  1145 +.ct_line_lp_badge{
  1146 + float: left;
  1147 + margin-top: 6px;
  1148 + background: #e0e0e0;
  1149 + padding: 2px 7px;
  1150 + border-radius: 3px;
  1151 +}
  1152 +
  1153 +.uk-badge.sch_ldks{
  1154 + background: #8c8c8c;
  1155 + background-image: linear-gradient(to bottom,#a7a7a7,#8c8c8c);
  1156 +}
  1157 +
  1158 +.ct_layer_modal{
  1159 + background: #e5e5e5;
  1160 + height: 100%;
  1161 + width: 100%;
  1162 + overflow: auto;
  1163 +}
  1164 +
  1165 +.layui-layer-setwin{
  1166 +
  1167 +}
  1168 +
  1169 +.device_config_table dl dt:nth-of-type(1), .device_config_table dl dd:nth-of-type(1){
  1170 + width: 7%;
  1171 + text-indent: 10px;
  1172 +}
  1173 +.device_config_table dl dt:nth-of-type(2), .device_config_table dl dd:nth-of-type(2){
  1174 + width: 7%;
  1175 +}
  1176 +.device_config_table dl dt:nth-of-type(3), .device_config_table dl dd:nth-of-type(3){
  1177 + width: 8%;
  1178 +}
  1179 +.device_config_table dl dt:nth-of-type(4), .device_config_table dl dd:nth-of-type(4){
  1180 + width: 5%;
  1181 +}
  1182 +.device_config_table dl dt:nth-of-type(5), .device_config_table dl dd:nth-of-type(5){
  1183 + width: 4%;
  1184 +}
  1185 +.device_config_table dl dt:nth-of-type(6), .device_config_table dl dd:nth-of-type(6){
  1186 + width: 4%;
  1187 +}
  1188 +.device_config_table dl dt:nth-of-type(7), .device_config_table dl dd:nth-of-type(7){
  1189 + width: 4%;
  1190 +}
  1191 +.device_config_table dl dt:nth-of-type(8), .device_config_table dl dd:nth-of-type(8){
  1192 + width: 5%;
  1193 +}
  1194 +.device_config_table dl dt:nth-of-type(9), .device_config_table dl dd:nth-of-type(9){
  1195 + width: 5%;
  1196 +}
  1197 +.device_config_table dl dt:nth-of-type(10), .device_config_table dl dd:nth-of-type(10){
  1198 + width: 8%;
  1199 +}
  1200 +.device_config_table dl dt:nth-of-type(11), .device_config_table dl dd:nth-of-type(11){
  1201 + width: 5%;
  1202 +}
  1203 +.device_config_table dl dt:nth-of-type(12), .device_config_table dl dd:nth-of-type(12){
  1204 + width: 5%;
  1205 +}
  1206 +.device_config_table dl dt:nth-of-type(13), .device_config_table dl dd:nth-of-type(13){
  1207 + width: 4%;
  1208 +}
  1209 +.device_config_table dl dt:nth-of-type(14), .device_config_table dl dd:nth-of-type(14){
  1210 + width: 4%;
  1211 +}
  1212 +.device_config_table dl dt:nth-of-type(15), .device_config_table dl dd:nth-of-type(15){
  1213 + width: 4%;
  1214 +}
  1215 +.device_config_table dl dt:nth-of-type(16), .device_config_table dl dd:nth-of-type(16){
  1216 + width: 3%;
  1217 +}
  1218 +.device_config_table dl dt:nth-of-type(17), .device_config_table dl dd:nth-of-type(17){
  1219 + width: 4%;
  1220 +}
  1221 +.device_config_table dl dt:nth-of-type(18), .device_config_table dl dd:nth-of-type(18){
  1222 + width: 13%;
  1223 +}
  1224 +
  1225 +.uk-tooltip{
  1226 + z-index: 29999999 !important;
  1227 +}
  1228 +
  1229 +.device_config_table.ct_table dl dd,
  1230 +.device_config_table.ct_table dl dt{
  1231 + border-right: 1px solid #dedede !important;
  1232 +}
  1233 +
  1234 +.device_configs_manager .search_form{
  1235 + text-indent: 12px;
  1236 + margin-bottom: 0;
  1237 + padding: 18px 5px;
  1238 +}
  1239 +
  1240 +.sub_task_form_v2{
  1241 + background: #f9f9f9;
  1242 + padding: 12px 15px;
  1243 + border-radius: 5px 0 5px 5px;
  1244 + border: 1px solid #dfdfdf;
  1245 + position: relative;
  1246 + margin-bottom: 20px;
  1247 +}
  1248 +
  1249 +.task_form_close_icon{
  1250 + background: #f9f9f9;
  1251 + padding: 0px 4px;
  1252 + position: absolute;
  1253 + top: -8px;
  1254 + right: -8px;
  1255 + color: #898989;
  1256 + font-size: 15px;
  1257 + border: 1px solid #dfdfdf;
  1258 + border-radius: 100%;
  1259 + border-left: none;
  1260 + border-bottom: none;
  1261 + transition: all .03s;
  1262 +}
  1263 +
  1264 +.task_form_close_icon:hover{
  1265 + border: 1px solid #ff1515;
  1266 + border-left: none;
  1267 + border-bottom: none;
  1268 + color: #e03e3e;
  1269 +}
  1270 +
  1271 +.sub_task_form_v2:hover::after{
  1272 + color: #5f5b5b;
  1273 +}
  1274 +
  1275 +.sub_task_form_v2.uk-form-horizontal .uk-form-label{
  1276 + width: 80px;
  1277 +}
  1278 +
  1279 +.sub_task_form_v2.uk-form-horizontal .uk-form-controls{
  1280 + margin-left: 85px;
  1281 +}
  1282 +
  1283 +.sub_task_form_v2.uk-form-horizontal .uk-form-controls input[type=text],
  1284 +.sub_task_form_v2.uk-form-horizontal .uk-form-controls input[type=time],
  1285 +.sub_task_form_v2.uk-form-horizontal .uk-form-controls select{
  1286 + width: 100%;
  1287 +}
  1288 +
  1289 +#add-sub-task-main-modal .uk-modal-footer{
  1290 + background: none;
  1291 + border-top: none;
  1292 +}
  1293 +
  1294 +#add-sub-task-main-modal .uk-grid+.uk-grid{
  1295 + margin-top: 12px;
  1296 +}
  1297 +
  1298 +#add-sub-task-main-modal .plus_icon_span{
  1299 + font-size: 26px;
  1300 + color: #b2b2b2;
  1301 + padding: 10px 64px;
  1302 + display: inline-block;
  1303 + border: 1px dashed grey;
  1304 + margin: 15px 0;
  1305 + border-radius: 5px;
  1306 + cursor: pointer;
  1307 +}
  1308 +
  1309 +#add-sub-task-main-modal .uk-animation-fade{
  1310 + animation-duration: .3s;
  1311 +}
  1312 +
  1313 +#add-sub-task-main-modal .forms{
  1314 + max-height: 488px;
  1315 + overflow-y: auto;
  1316 + overflow-x: hidden;
  1317 + padding: 8px 8px 0 0;
  1318 +}
  1319 +
  1320 +.add_custom_wrap .forms .sub_task_form_v2:last-child{
  1321 + margin-bottom: 0;
  1322 +}
  1323 +
  1324 +.sub_task_form_v2.destroy_form{
  1325 + background-color: #fff5f4 !important;
  1326 +}
  1327 +
  1328 +.uk-form>.half_change_car_box{
  1329 + margin: -10px 0 15px;
  1330 + padding: 3px 5px;
  1331 + display: inline-block;
  1332 + border: 1px solid #dfdddd;
  1333 + color: #918f8f;
  1334 +}
  1335 +
  1336 +.half_change_car_box input[type=checkbox]{
  1337 + vertical-align: top;
  1338 +}
  1339 +
  1340 +.uk-form>.half_change_car_box.active{
  1341 + background: #4CAF50;
  1342 + color: #fff;
  1343 +}
  1344 +
  1345 +.uk-form>.half_change_car_box.active input[type=checkbox]{
  1346 + background: #4caf50;
  1347 + border-color: #4caf50;
  1348 +}
  1349 +
  1350 +.uk-form>.half_change_car_box.active input[type=checkbox]:before{
  1351 + color: #ffffff;
  1352 +}
  1353 +
  1354 +.sub_task_form_v2.change_car{
  1355 + z-index: 99;
  1356 +}
  1357 +
  1358 +.st_range_top_form{
  1359 + padding: 0 0 15px 5px;
  1360 + border: 1px solid #c4bb76;
  1361 + background: #e5e1c1;
  1362 + margin-bottom: 15px;
  1363 + box-shadow: 0px 4px 3px 0 rgba(142, 138, 138, 0.2), 0px 4px 5px 0 rgba(157, 156, 156, 0.19);
  1364 +}
  1365 +
  1366 +.st_range_top_form .uk-form-row{
  1367 + margin-top: 20px;
  1368 +}
  1369 +
  1370 +.uk-form-horizontal.st_range_top_form .uk-form-label{
  1371 + width: 80px;
  1372 +}
  1373 +
  1374 +.uk-form-horizontal.st_range_top_form .uk-form-controls{
  1375 + margin-left: 84px;
  1376 +}
  1377 +
  1378 +.uk-form-horizontal.st_range_top_form .uk-form-controls select{
  1379 + width: calc(100% - 2px);
  1380 +}
  1381 +
  1382 +.sub_task_form_v2.service_st_form{
  1383 + background: #f4faff;
  1384 +}
  1385 +
  1386 +.uk-modal .uk-form.fv-form.sub_task_form_v2{
  1387 + margin-bottom: 20px !important;
  1388 +}
  1389 +
  1390 +.sub_task_table_wrap .ct_table>.ct_table_body{
  1391 + border-bottom: none;
  1392 +}
  1393 +
  1394 +.err_panel{
  1395 + font-size: 12px;
  1396 + color: #7e7d7d;
  1397 + font-family: 微软雅黑;
  1398 + margin-top: 5px;
  1399 +}
  1400 +
  1401 +#schedule-lp_change-modal .ct_table dl{
  1402 + height: 35px;
  1403 +}
  1404 +
  1405 +#schedule-lp_change-modal .ct_table dl dd, #schedule-lp_change-modal .ct_table dl dt{
  1406 + line-height: 35px;
  1407 +}
  1408 +
  1409 +/*
  1410 +.sub_task_form_v2.repeat_main:before{
  1411 + content: '复';
  1412 + position: absolute;
  1413 + top: -10px;
  1414 + font-size: 12px;
  1415 + color: #2196F3;
  1416 + background: #ffffff;
  1417 + padding: 0 3px;
  1418 + font-weight: 600;
  1419 +}*/
  1420 +
  1421 +.sub_task_form_v2:before{
  1422 + position: absolute;
  1423 + top: -7px;
  1424 + font-size: 12px;
  1425 + padding: 0 3px;
  1426 + font-weight: 600;
  1427 + line-height: 14px;
  1428 +}
  1429 +
  1430 +.sub_task_form_v2.destroy_form:before{
  1431 + content: '烂班' !important;
  1432 + color: #f14235 !important;
  1433 + background: #ffffff !important;
  1434 +}
  1435 +
  1436 +.sub_task_form_v2.service_form:before{
  1437 + content: '营运';
  1438 + color: #2196F3;
  1439 + background: #ffffff;
  1440 +}
  1441 +
  1442 +.sub_task_form_v2.service_form.temp_service:before{
  1443 + content: '营运 (临加)';
  1444 + color: #9C27B0;
  1445 + background: #ffffff;
  1446 +}
  1447 +
  1448 +.sub_task_form_v2.service_form.temp_service {
  1449 + background: #faf0fd;
  1450 +}
  1451 +
  1452 +.sub_task_form_v2.empty_form:before{
  1453 + content: '空驶';
  1454 + color: #928f92;
  1455 + background: #ffffff;
  1456 +}
  1457 +
  1458 +.sub_task_form_v2.service_form{
  1459 + background: #f4faff;
  1460 +}
  1461 +
  1462 +/*.sub_task_form_v2.repeat_main.destroy_form:before{
  1463 + color: #F44336;
  1464 +}
  1465 +
  1466 +.sub_task_form_v2.repeat_main{
  1467 + background: #f4faff;
  1468 +}*/
  1469 +.footer_tools{
  1470 + position: absolute;
  1471 + left: 235px;
  1472 + bottom: 19px;
  1473 +}
  1474 +
  1475 +.footer_mileage_count{
  1476 + border: 1px solid #f2f2f2;
  1477 + padding: 5px;
  1478 + box-shadow: 0px 2px 5px 0 rgba(0, 0, 0, 0.2), 0px 2px 7px 0 rgba(0, 0, 0, 0.19);
  1479 + display: inline-block;
  1480 +}
  1481 +
  1482 +.footer_mileage_count>span{
  1483 + padding: 2px 5px;
  1484 +}
  1485 +
  1486 +.footer_mileage_count>span.service_sum{
  1487 + color: #2196F3;
  1488 +}
  1489 +
  1490 +.footer_mileage_count>span.empty_sum{
  1491 + color: #636363;
  1492 +}
  1493 +
  1494 +.footer_mileage_count>span.destroy_sum{
  1495 + color: #f5574b;
  1496 +}
  1497 +
  1498 +.station_to_park_link{
  1499 + display: inline-block;
  1500 + margin-left: 15px;
  1501 + vertical-align: bottom;
  1502 + font-size: 12px;
  1503 +}
  1504 +
  1505 +.station_to_park_link>a{
  1506 + color: #607D8B;
  1507 +}
  1508 +
  1509 +#station_to_park-modal.ct-form-modal form input[type=text],
  1510 +#station_to_park-modal.ct-form-modal form select{
  1511 + width: auto;
  1512 +}
  1513 +
  1514 +.s_2_park_form_wrap{
  1515 + background: #fafafa;
  1516 + border: 1px solid #e5e5e5;
  1517 + padding: 7px 16px;
  1518 + margin: 15px 0;
  1519 + position: relative;
  1520 +}
  1521 +
  1522 +.s_2_park_form_wrap .ct_close{
  1523 + position: absolute;
  1524 + top: -12px;
  1525 + padding: 0 4px;
  1526 + right: -8px;
  1527 + color: #939393;
  1528 + border: 1px solid #f7dfdf;
  1529 + border-radius: 25px;
  1530 + cursor: pointer;
  1531 +}
  1532 +
  1533 +.s_2_park_form_wrap .ct_close:hover{
  1534 + background: #e5e5e5;
  1535 + color: #fd6e6e;
  1536 +}
  1537 +
  1538 +.s_2_park_form_wrap label{
  1539 + color: #666;
  1540 + font-size: 13px;
  1541 +}
  1542 +
  1543 +#station_to_park-modal.ct-form-modal form input[readonly]{
  1544 + background: #fafafa;
  1545 +}
  1546 +
  1547 +.s_2_park_form_wrap .bottom_label{
  1548 + margin-top: 25px;
  1549 + display: block;
  1550 +}
  1551 +
  1552 +.s_2_park_form_wrap .bottom_label_2{
  1553 + margin-top: 4px;
  1554 + display: block;
  1555 +}
  1556 +
  1557 +.ct_describe{
  1558 + font-size: 12px;
  1559 + color: #909090;
  1560 + font-family: FontAwesome;
  1561 +}
  1562 +
  1563 +.ct_describe:before{
  1564 + content: "\f059";
  1565 + margin-right: 3px;
  1566 +}
  1567 +
  1568 +#add-sub-task-main-modal abbr{
  1569 + display: inline-block;
  1570 + font-size: 12px;
  1571 + margin-left: 25px;
  1572 + vertical-align: bottom;
  1573 + color: #929292;
  1574 +}
  1575 +
  1576 +#all-devices-modal .search-form input[type=text]{
  1577 + width: 100px;
  1578 +}
  1579 +
  1580 +#all-devices-modal .auto-refresh{
  1581 + vertical-align: middle;margin-left: 5px;color: grey;
  1582 +}
  1583 +
  1584 +#all-devices-modal .auto-refresh.active{
  1585 + color: #405dff;
  1586 +}
  1587 +
  1588 +#all-devices-modal .uk-margin-small-top {
  1589 + margin-top: 0 !important;
  1590 +}
  1591 +
  1592 +#history-sch-maintain-modal .add_lp_link{
  1593 + display: inline-block;
  1594 + vertical-align: bottom;
  1595 + margin-left: 15px;
  1596 + text-decoration: underline;
  1597 + font-size: 13px;
  1598 +}
  1599 +
  1600 +#schedule-tzrc-modal input[type=checkbox]{
  1601 + margin-right: 9px;
  1602 +}
  1603 +
  1604 +#schedule-tzrc-modal span.ct_zt_yzx{
  1605 + color: #2196F3;
  1606 + font-size: 12px;
  1607 +}
  1608 +
  1609 +#schedule-tzrc-modal span.ct_zt_lb{
  1610 + color: red;
  1611 + font-size: 12px;
  1612 +}
  1613 +
  1614 +#schedule-tzrc-modal span.ct_zt_zzzx{
  1615 + font-size: 12px;
  1616 + color: #38ad3c;
  1617 +}
  1618 +
  1619 +#schedule-tzrc-modal .tzrc_form{
  1620 + padding: 20px;
  1621 + border: 1px solid #f0eded;
  1622 + box-shadow: 0px -3px 15px rgba(0,0,0,0.08);
  1623 + background: #f9f9f9;
  1624 +}
  1625 +
  1626 +.uk-panel.ct_search_panel{
  1627 + padding: 15px;
  1628 + border: 1px solid #f0eded;
  1629 + box-shadow: 0px 3px 15px rgba(0,0,0,0.08);
  1630 + background: #f9f9f9;
  1631 +}
  1632 +
  1633 +.sch-tzrc-table.ct_table dl.active,
  1634 +.sch-tzrc-table.ct_table>.ct_table_body dl.active:hover{
  1635 + background: #5bd460;
  1636 + color: white;
  1637 +}
  1638 +
  1639 +#schedule-tzrc-modal dl.active span.ct_zt_yzx{
  1640 + color: #545252;
  1641 +}
  1642 +
  1643 +#schedule-tzrc-modal dl.active span.ct_zt_lb{
  1644 + color: #d64949;
  1645 +}
  1646 +
  1647 +#schedule-tzrc-modal dl.active span.ct_zt_zzzx{
  1648 + color: white;
  1649 +}
  1650 +
  1651 +#schedule-tzrc-modal dl.active input[type=checkbox]{
  1652 + border: 0;
  1653 +}
  1654 +
  1655 +#schedule-tzrc-modal dl.active input[type=checkbox]:before{
  1656 + color: #ffffff;
  1657 +}
  1658 +
  1659 +.sch-search-autocom input{
  1660 + padding: 0 !important;
  1661 + height: 100% !important;
  1662 +}
  1663 +
  1664 +label.blue_checkbox{
  1665 + margin-left: 12px;
  1666 +}
  1667 +
  1668 +label.blue_checkbox>input{
  1669 + width: 17px !important;
  1670 + height: 17px !important;
  1671 +}
  1672 +
  1673 +label.blue_checkbox>input:checked:before,
  1674 +label.blue_checkbox>input:indeterminate:before{
  1675 + line-height: 15px !important;
  1676 +}
  1677 +
  1678 +dd.disabled{
  1679 + color: #b5b3b3;
  1680 +}
  1681 +
  1682 +dl.active>dd.disabled{
  1683 + color: #ececec;
  1684 +}
  1685 +
  1686 +#change_user_options-modal .user_info{
  1687 + width: 360px;
  1688 + margin: auto;
  1689 +}
  1690 +
  1691 +.display_hide{
  1692 + display: none;
  1693 +}
  1694 +
  1695 +.ct_eye_icon{
  1696 + font-size: 16px;
  1697 + cursor: pointer;
  1698 +}
  1699 +
  1700 +.ct_eye_icon.active{
  1701 + color: #444;
  1702 +}
  1703 +
  1704 +#tempScheduleContent .forms::-webkit-scrollbar {
  1705 + width: 19px;
  1706 + height: 16px;
  1707 +}
  1708 +
  1709 +.range_2_normal_tt{
  1710 + margin-bottom: 15px;
  1711 + border-top: 1px dashed #c7c7c7;
  1712 + color: #a6a6a6;
  1713 + text-indent: 7px;
  1714 + padding-bottom: 5px;
  1715 +}
  1716 +
  1717 +.cancel_link{
  1718 + font-size: 12px;
  1719 + margin-left: 15px;
  1720 + vertical-align: bottom;
  1721 + color: #8d8d8d;
  1722 + text-decoration: underline;
  1723 + position: absolute;
  1724 + right: 0;
  1725 +}
  1726 +
  1727 +.edit_link{
  1728 + font-size: 12px;
  1729 + margin-left: 15px;
  1730 + vertical-align: bottom;
  1731 + color: #ff2f2f;
  1732 + text-decoration: underline;
  1733 +}
0 1734 \ No newline at end of file
... ...
src/main/resources/static/pages/history_sch/edit/history_sch_maintain.html 0 → 100644
  1 +<div class="uk-modal " id="history-sch-maintain-modal" style="">
  2 + <div class="uk-modal-dialog" style="width: 95%;margin: 20px auto;">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 + <div class="uk-modal-header">
  5 + <h2>历史路单维护</h2>
  6 + </div>
  7 +
  8 + <div style="padding-left: 12px;margin: 20px 0">
  9 + <ul class="uk-subnav uk-subnav-pill h-s-time">
  10 + </ul>
  11 + </div>
  12 +
  13 + <div class="uk-panel uk-panel-box uk-panel-box-primary">
  14 + <form class="uk-form search-form">
  15 + <fieldset data-uk-margin>
  16 + <span class="horizontal-field">公司</span>
  17 + <select name="companyId" style="width: 110px;"></select>
  18 + <span class="horizontal-field">分公司</span>
  19 + <select name="subCompanyId" style="width: 110px;"></select>
  20 + <span class="horizontal-field">线路</span>
  21 + <select name="xlBm_eq" style="width: 120px;"></select>
  22 + <span class="horizontal-field">路牌</span>
  23 + <select name="lpName_eq" style="width: 80px;"></select>
  24 + <span class="horizontal-field">上下行</span>
  25 + <select name="xlDir_eq">
  26 + <option value="">全部</option>
  27 + <option value="0">上行</option>
  28 + <option value="1">下行</option>
  29 + </select>
  30 + &nbsp;
  31 + <span class="horizontal-field">车辆</span>
  32 + <div class="uk-autocomplete uk-form autocomplete-cars">
  33 + <input type="text" name="clZbh_like" placeholder="自编号" style="width: 80px;">
  34 + </div>
  35 + <span class="horizontal-field">驾驶员</span>
  36 + <div class="uk-autocomplete uk-form autocomplete-jsy">
  37 + <input type="text" name="jGh_like" placeholder="驾驶员" style="width: 80px;">
  38 + </div>
  39 + <button class="uk-button">检索</button>
  40 + <a class="add_lp_link" title="先点击检索后再临加路牌"><i class="uk-icon-plus"></i> 临加路牌</a>
  41 + </fieldset>
  42 + </form>
  43 + </div>
  44 +
  45 + <div class="ct_table_wrap ct_table_no_border history-sch-wrap" style="height: 510px;">
  46 + <div class="ct_table history-sch-table">
  47 + <div class="ct_table_head">
  48 + <dl>
  49 + <dt>序号</dt>
  50 + <dt>路牌</dt>
  51 + <dt>车辆</dt>
  52 + <dt>驾驶员</dt>
  53 + <dt>起点</dt>
  54 + <dt>终点</dt>
  55 + <dt>计发</dt>
  56 + <dt>待发</dt>
  57 + <dt>实发</dt>
  58 + <dt>终点实达</dt>
  59 + <dt>备注</dt>
  60 + </dl>
  61 + </div>
  62 + <div class="ct_table_body">
  63 + </div>
  64 + </div>
  65 + </div>
  66 +
  67 + <div class="load-panel">
  68 + <i class="uk-icon-spinner uk-icon-spin"></i>
  69 + 正在加载数据
  70 + </div>
  71 + </div>
  72 +
  73 + <script id="history-sch-maintain-table-temp" type="text/html">
  74 + {{each list as sch i}}
  75 + <dl data-id="{{sch.id}}">
  76 + <dd>{{i + 1}}</dd>
  77 + <dd>{{sch.lpName}}</dd>
  78 + <dd>{{sch.clZbh}}</dd>
  79 + <dd>{{sch.jGh}}/{{sch.jName}}</dd>
  80 + <dd title="{{sch.qdzName}}">{{sch.qdzName}}</dd>
  81 + <dd title="{{sch.zdzName}}">{{sch.zdzName}}</dd>
  82 + <dd>{{sch.fcsj}}
  83 + {{if sch.bcType == "out"}}
  84 + <span class="uk-badge uk-badge-success">出场</span>
  85 + {{else if sch.bcType == "in"}}
  86 + <span class="uk-badge uk-badge-warning">进场</span>
  87 + {{else if sch.bcType == "venting"}}
  88 + <span class="uk-badge uk-badge-danger">直放</span>
  89 + {{else if sch.bcType == "major"}}
  90 + <span class="uk-badge uk-badge-danger">放站</span>
  91 + {{else if sch.bcType == "region"}}
  92 + <span class="uk-badge sch_region">区间</span>
  93 + {{else if sch.bcType == "ldks"}}
  94 + <span class="uk-badge sch_ldks">空驶</span>
  95 + {{/if}}
  96 + {{if sch.sflj}}
  97 + <span class="uk-badge uk-badge-danger">临加</span>
  98 + {{/if}}
  99 + {{if sch.cTasks.length > 0}}
  100 + <span class="uk-badge uk-badge-notification">{{sch.cTasks.length}}</span>
  101 + {{/if}}</dd>
  102 + <dd>
  103 + {{sch.dfsj}}
  104 + {{if sch.status==-1}}
  105 + <span class="uk-badge uk-badge-danger">烂班</span>
  106 + {{/if}}
  107 + </dd>
  108 + <dd>{{sch.fcsjActual}}<span class="fcsj-diff">{{sch.fcsj_diff}}</span></dd>
  109 + <dd>{{sch.zdsjActual}}</dd>
  110 + <dd title="{{sch.remarks}}">{{sch.remarks}}</dd>
  111 + </dl>
  112 + {{/each}}
  113 + </script>
  114 +
  115 + <script>
  116 + (function () {
  117 + var modal = '#history-sch-maintain-modal';
  118 +
  119 + //滚动条
  120 + $('.history-sch-wrap', modal).perfectScrollbar({suppressScrollX: true});
  121 + //history-sch-wrap
  122 + $(modal).on('init', function (e, data) {
  123 + e.stopPropagation();
  124 + $.get('/realSchedule/dateArray', function (rs) {
  125 + //日期tab
  126 + var tsStr = '';
  127 + $.each(rs, function (i) {
  128 + tsStr += '<li ' + (i == 0 ? 'class="uk-active"' : '') + '><a>' + this + '</a></li>';
  129 + });
  130 +
  131 + $('.h-s-time', modal).html(tsStr);
  132 + clearLpSelect();
  133 + //reLoadLp=true;
  134 + //jsQuery();
  135 + });
  136 + });
  137 +
  138 + $(modal).on('refresh', function (e, data) {
  139 + if(data){
  140 + var lpName = data.lpName;
  141 + if(is_new_temp_lp(lpName)){
  142 + $('[name=lpName_eq]', modal).append('<option value="'+lpName+'" selected>'+lpName+'</option>');
  143 + }
  144 + }
  145 + jsQuery();
  146 + });
  147 +
  148 + $(modal).on('click', '.h-s-time li,.h-s-line li', function () {
  149 + if(loading)
  150 + return;
  151 + $(this).parent().find('li.uk-active').removeClass('uk-active');
  152 + $(this).addClass('uk-active');
  153 + clearLpSelect();
  154 + //检索之前将滚动条置顶
  155 + $('.history-sch-wrap', modal)[0].scrollTop = 0;
  156 + jsQuery();
  157 + });
  158 +
  159 + $('.search-form', modal).on('submit', function (e) {
  160 + try {
  161 + //检索之前将滚动条置顶
  162 + $('.history-sch-wrap', modal)[0].scrollTop = 0;
  163 + jsQuery();
  164 + }catch(e){
  165 + console.log(e);
  166 + }
  167 + return false;
  168 + });
  169 +
  170 + var reLoadLp;
  171 + var nbbmArray,jsyArray,lpArray,loading;
  172 + var schArray;//主键映射
  173 + function jsQuery(cb) {
  174 + var data = $('.search-form', modal).serializeJSON();
  175 + data.companyId=null;
  176 + data.subCompanyId=null;
  177 + var rq = $('.h-s-time li.uk-active', modal).text();
  178 + data.scheduleDateStr_eq = rq;
  179 + if(!data.xlBm_eq)
  180 + return notify_err('请选择线路...');
  181 + if(data.jGh_like.indexOf('/')!=-1){
  182 + var jsy=data.jGh_like.split('/');
  183 + data.jGh_like=jsy[0];
  184 + data.jName_like=jsy[1];
  185 + }
  186 +
  187 + $('.load-panel', modal).show();
  188 + loading=true;
  189 + $.get('/realSchedule/all', data, function (rs) {
  190 + rs.sort(schedule_sort);
  191 + //可搜索的车辆自编号和驾驶员
  192 + nbbmArray=[];
  193 + jsyArray=[];
  194 + lpArray = [];
  195 + schArray = {};
  196 + $.each(rs, function () {
  197 + nbbmArray.push({value: this.clZbh});
  198 + jsyArray.push({value: this.jGh+'/'+this.jName,
  199 + fullChars: pinyin.getFullChars(this.jName).toUpperCase(),
  200 + camelChars: pinyin.getCamelChars(this.jName)});
  201 + lpArray.push({value: this.lpName});
  202 + calc_sch_real_shift(this);
  203 + schArray[this.id] = this;
  204 + });
  205 +
  206 + var tbodyStr = template('history-sch-maintain-table-temp', {list: rs});
  207 + $('.history-sch-table .ct_table_body', modal).html(tbodyStr);
  208 + //value
  209 + nbbmArray=distinctByField(nbbmArray);
  210 + jsyArray=distinctByField(jsyArray);
  211 + lpArray=distinctByField(lpArray);
  212 +
  213 + if(reLoadLp){
  214 + //路牌下拉框
  215 + var ops = '<option value="">全部</option>';
  216 + $.each(lpArray, function () {
  217 + ops += '<option value="'+this.value+'">'+this.value+'</option>';
  218 + });
  219 + $('[name=lpName_eq]', modal).html(ops);
  220 + reLoadLp = false;
  221 + }
  222 +
  223 + //lpName_eq
  224 + $('.load-panel', modal).hide();
  225 + loading=false;
  226 +
  227 + //更新滚动条高度
  228 + $('.history-sch-wrap', modal).perfectScrollbar('update');
  229 +
  230 + cb && cb();
  231 +
  232 + //初始化依赖数据
  233 + gb_data_basic.initData(data.xlBm_eq);
  234 + });
  235 + }
  236 +
  237 + function clearLpSelect() {
  238 + $('[name=lpName_eq]', modal).val('').html('');
  239 + reLoadLp = true;
  240 + }
  241 +
  242 + //nbbm autocomplete
  243 + var carAutoCom=$('.autocomplete-cars', modal);
  244 + UIkit.autocomplete(carAutoCom, {
  245 + minLength: 1,
  246 + delay: 50,
  247 + source: function(release) {
  248 + var q = $('input', carAutoCom).val().toUpperCase()
  249 + ,rs = [],
  250 + count = 0;
  251 + $.each(nbbmArray, function () {
  252 + if(this.value.indexOf(q) != -1){
  253 + rs.push(this);
  254 + count++;
  255 + }
  256 + if (count >= 15)
  257 + return false;
  258 + });
  259 + release && release(rs);
  260 + }
  261 + });
  262 +
  263 + //jsy autocomplete
  264 + var jsyAutoCom=$('.autocomplete-jsy', modal);
  265 + UIkit.autocomplete(jsyAutoCom, {
  266 + minLength: 1,
  267 + delay: 50,
  268 + source: function(release) {
  269 + var q = $('input', jsyAutoCom).val().toUpperCase()
  270 + ,rs = [],
  271 + count = 0;
  272 +
  273 + $.each(jsyArray, function() {
  274 + if (this.value.indexOf(q) != -1 || this.fullChars.indexOf(q) != -1 || this.camelChars.indexOf(q) != -1){
  275 + rs.push(this);
  276 + count++;
  277 + }
  278 +
  279 + if (count >= 10)
  280 + return false;
  281 + });
  282 + release && release(rs);
  283 + }
  284 + });
  285 +
  286 + function schedule_sort(s1, s2) {
  287 + return (s1.realExecDate+s1.fcsj).localeCompare(s2.realExecDate+s2.fcsj);
  288 + }
  289 +
  290 + function distinctByField(arr, f){
  291 + if(!f)
  292 + f = 'value';
  293 + var rs = {};
  294 + $.each(arr, function () {
  295 + rs[this[f]]=this;
  296 + });
  297 + return gb_common.get_vals(rs);
  298 + }
  299 +
  300 + gb_ct_table.fixedHead($('.ct_table_wrap', modal));
  301 +
  302 + //班次点击
  303 + $(modal).on('click contextmenu', '.history-sch-table .ct_table_body dl', function() {
  304 + $(this).parent().find('.active').removeClass('active');
  305 + $(this).addClass('active');
  306 + });
  307 +
  308 + var modal_opts = {center: false,bgclose: false, modal: false};
  309 + var folder = '/real_control_v2/fragments/north/nav/history_sch';
  310 + var callbackHandler={
  311 + edit: function(id){
  312 + open_modal(folder + '/editor.html', {id: id, parentModal: modal}, modal_opts);
  313 + },
  314 + add: function (id) {
  315 + open_modal(folder + '/h_add_temp_sch.html', {
  316 + sch: schArray[id]
  317 + }, modal_opts);
  318 + },
  319 + delete: function (id) {
  320 + var sch = schArray[id];
  321 + if (!sch || !sch.sflj)
  322 + return notify_err('只能删除临加班次!');
  323 + var str = '<h3>确定要删除临加班次<span style="color:red;margin: 0 5px;">' + sch.clZbh + '( ' + sch.dfsj + ' )</span>?</h3><h5 style="color: #6c6c6c;font-size: 12px;">班次删除后,调度指令会保留</h5>';
  324 + alt_confirm(str, function () {
  325 + gb_common.$del('/realSchedule/history/' + sch.id, function (rs) {
  326 + if($('.history-sch-table .ct_table_body dl', modal).length == 1){
  327 + $('[name=lpName_eq]', modal).val('');
  328 + reLoadLp = true;
  329 + }
  330 +
  331 + jsQuery();
  332 + });
  333 + }, '确定删除');
  334 + }
  335 + };
  336 +
  337 + //计算实发时间差值
  338 + var calc_sch_real_shift = function (sch) {
  339 + if (sch.fcsjActualTime) {
  340 + var diff = parseInt((sch.fcsjActualTime - sch.dfsjT) / 1000 / 60);
  341 + if (diff > 0)
  342 + sch.fcsj_diff = '( +' + diff + ' )';
  343 + else if (diff < 0)
  344 + sch.fcsj_diff = '( ' + diff + ' )';
  345 + else
  346 + sch.fcsj_diff = '';
  347 + }
  348 + };
  349 +
  350 + //右键菜单
  351 + $.contextMenu({
  352 + selector: modal+' .history-sch-table .ct_table_body dl',
  353 + className: 'schedule-ct-menu',
  354 + callback: function(key, options) {
  355 + var id = $('.context-menu-active', modal).data('id');
  356 + callbackHandler[key] && callbackHandler[key](id);
  357 + },
  358 + items: {
  359 + 'edit': {
  360 + name: '编辑'
  361 + },
  362 + 'add': {
  363 + name: '新增临加班次'
  364 + },
  365 + 'delete':{
  366 + name: '删除'
  367 + }
  368 + }
  369 + });
  370 +
  371 + //临加路牌
  372 + $('.add_lp_link', modal).on('click', function () {
  373 + var index = 0, max;
  374 + $.each(lpArray, function (i, obj) {
  375 + var lp = obj.value;
  376 + if (lp.indexOf('临') != -1) {
  377 + max = lp.substr(lp.indexOf('临') + 1);
  378 + if (!isNaN(max))
  379 + index = parseInt(max);
  380 + }
  381 + });
  382 +
  383 + var lpName = '临' + (index + 1);
  384 + var lineSelect = $('[name=xlBm_eq]', modal);
  385 + var rq = $('.h-s-time li.uk-active', modal).text(),
  386 + lineName = lineSelect[0].options[lineSelect[0].selectedIndex].text,//$('.h-s-line li.uk-active', modal).text(),
  387 + lineCode = lineSelect.val();
  388 +
  389 + var sch = {
  390 + scheduleDateStr: rq,
  391 + xlBm: lineCode,
  392 + xlName: lineName,
  393 + lpName: lpName
  394 + };
  395 +
  396 + open_modal(folder + '/h_add_temp_sch.html', {
  397 + sch: sch
  398 + }, modal_opts);
  399 + });
  400 +
  401 + /**
  402 + * 是否是临加路牌
  403 + * @param lpName
  404 + */
  405 + function is_new_temp_lp(lpName) {
  406 + if(lpName.indexOf('临') ==-1)
  407 + return false;
  408 +
  409 + for(var i=0,obj;obj=lpArray[i++];){
  410 + if(obj.value==lpName)
  411 + return false;
  412 + }
  413 +
  414 + return true;
  415 + }
  416 +
  417 +
  418 + var f = $('.search-form', modal);
  419 + var ep = EventProxy.create('query_comps', 'query_lines', function () {
  420 + $('[name=companyId]', f).trigger('change');//公司change
  421 + });
  422 + var comps;
  423 + //构建公司级联下拉框
  424 + $.get('/user/companyData', function (rs) {
  425 + comps = rs;
  426 + var opts = '';
  427 + for(var i=0,obj;obj=comps[i++];){
  428 + opts += '<option value="'+obj.companyCode+'">'+obj.companyName+'</option>';
  429 + }
  430 + $('[name=companyId]', f).html(opts);
  431 + ep.emit('query_comps');
  432 + });
  433 + var lineMapps;
  434 + //加载线路信息
  435 + $.get('/line/all', {'destroy_eq': 0}, function (rs) {
  436 + rs.sort(function (a, b) {
  437 + return a.name.localeCompare(b.name);
  438 + });
  439 + lineMapps={};
  440 + var k;
  441 + $.each(rs, function () {
  442 + k = this.company+'_'+this.brancheCompany;
  443 + if(!lineMapps[k])
  444 + lineMapps[k]=[];
  445 + lineMapps[k].push(this);
  446 + });
  447 +
  448 + ep.emit('query_lines');
  449 + });
  450 +
  451 + $('[name=companyId]', f).on('change', function () {
  452 + var code = $(this).val(), subs=[];
  453 + $.each(comps, function () {
  454 + if(this.companyCode==code)
  455 + subs=this.children;
  456 + });
  457 +
  458 + var opts='';
  459 + $.each(subs, function () {
  460 + opts += '<option value="'+this.code+'">'+this.name+'</option>';
  461 + });
  462 + $('[name=subCompanyId]', f).html(opts).trigger('change');
  463 + });
  464 +
  465 + $('[name=subCompanyId]', f).on('change', function () {
  466 + var k = $('[name=companyId]', f).val() + '_' + $(this).val();
  467 + var array = lineMapps[k];
  468 + var opts = '';
  469 + if(array){
  470 + $.each(array, function () {
  471 + opts += '<option value="'+this.lineCode+'">'+this.name+'</option>';
  472 + });
  473 + }
  474 + $('[name=xlBm_eq]', f).html(opts);
  475 + });
  476 +
  477 + $('[name=xlBm_eq]', f).on('change', clearLpSelect);
  478 + //clearLpSelect
  479 + })();
  480 + </script>
  481 +</div>
0 482 \ No newline at end of file
... ...
src/main/resources/static/pages/history_sch/edit/js/data_basic.js 0 → 100644
  1 +/* 基础数据管理模块 */
  2 +
  3 +var gb_data_basic = (function () {
  4 +
  5 + var allPersonnel;
  6 + var stationRoutes, lineInformations, codeToLine={};
  7 + var ep = EventProxy.create("all_personnel"
  8 + , function (all_personnel) {
  9 + allPersonnel = all_personnel;
  10 + //gb_main_ep.emitLater('data-basic');
  11 + });
  12 +
  13 +/* //线路标准信息
  14 + gb_common.$get('/lineInformation/line/multi', {lineCodes: line_idx}, function (rs) {
  15 + var informations = {};
  16 + $.each(rs, function () {
  17 + informations[this.line.lineCode] = this;
  18 + delete this['line'];
  19 + });
  20 + ep.emit('lineInformations', informations);
  21 + });*/
  22 +
  23 + //人员信息
  24 + loadAllPersonnel(function (data) {
  25 + ep.emit('all_personnel', data);
  26 + });
  27 + function loadAllPersonnel(cb) {
  28 + $.get('/personnel/all_py', function (rs) {
  29 + //转换成自动补全组件需要的数据
  30 + var data = [], code;
  31 + for(var i =0, p; p = rs[i++];){
  32 + code = p['workId'].indexOf('-')!=-1?p['workId'].split('-')[1]:p['workId'];
  33 + data.push({
  34 + value: code + '/' + p.name,
  35 + fullChars: p.fullChars.toUpperCase(),
  36 + camelChars: p.camelChars.toUpperCase()
  37 + });
  38 + }
  39 + cb && cb(data);
  40 + });
  41 + }
  42 +
  43 + var carparks = {};
  44 + //停车场数据
  45 + gb_common.$get('/realMap/carParkSpatialData', {}, function (rs) {
  46 + rs.list.sort(function (a, b) {
  47 + return a.parkName.localeCompare(b.parkName);
  48 + });
  49 + $.each(rs.list, function () {
  50 + carparks[this.parkCode] = this;
  51 + });
  52 + });
  53 +
  54 + //车辆数据
  55 + var carsArray;
  56 + $.get('/basic/cars?t=' + Math.random(), function (rs) {
  57 + carsArray = rs;
  58 + });
  59 +
  60 + var getCarparkByCode = function (code) {
  61 + return carparks[code];
  62 + };
  63 +
  64 + //line code to name
  65 + $.get('/basic/lineCode2Name', function (rs) {
  66 + ep.emit('lineCode2Name', rs);
  67 + });
  68 +
  69 + var getLineInformation = function (lineCode) {
  70 + return lineInformations[lineCode];
  71 + };
  72 +
  73 + var stationRouteSort = function (a, b) {
  74 + return a.stationRouteCode - b.stationRouteCode;
  75 + };
  76 +
  77 + function findLineByCodes(codeArr) {
  78 + var rs = [];
  79 + $.each(codeArr, function () {
  80 + rs.push(codeToLine[this]);
  81 + });
  82 + return rs;
  83 + }
  84 +
  85 + return {
  86 + getLineInformation: getLineInformation,
  87 + allInformations: function () {
  88 + return {};
  89 + },
  90 + allPersonnel: function () {
  91 + return allPersonnel;
  92 + },
  93 + getSvgAttr: function (lineCode) {
  94 + return svgAttrs[lineCode];
  95 + },
  96 + //刷新员工信息
  97 + refreshAllPersonnel: function (cb) {
  98 + loadAllPersonnel(function (data) {
  99 + allPersonnel = data;
  100 + cb && cb();
  101 + });
  102 + },
  103 + carsArray: function () {
  104 + return carsArray;
  105 + },
  106 + simpleParksArray: function () {
  107 + var map = {};
  108 + for(var code in carparks)
  109 + map[code] = carparks[code].parkName;
  110 + return map;
  111 + },
  112 + getLineInformation: getLineInformation,
  113 + allInformations: function () {
  114 + return lineInformations;
  115 + },
  116 + stationRoutes: function (lineCode) {
  117 + return stationRoutes[lineCode]
  118 + },
  119 + remarksMapps: function () {
  120 + return "";
  121 + },
  122 + findLineByCodes: findLineByCodes,
  123 + //初始化依赖数据
  124 + initData: function (lineCode) {
  125 + var ep = EventProxy.create("stationRoutes", "lineInformations", "codeToLineMap", function (routes, informations, _codeToLine) {
  126 + stationRoutes = routes;
  127 + lineInformations = informations;
  128 + codeToLine[_codeToLine.lineCode] = _codeToLine;
  129 + });
  130 +
  131 + //站点路由
  132 + gb_common.$get('/stationroute/multiLine', {lineIds: lineCode}, function (rs) {
  133 + var list = rs.list;
  134 + var routeData = gb_common.groupBy(list, 'lineCode');
  135 + //排序
  136 + for (var lineCode in routeData) {
  137 + routeData[lineCode].sort(stationRouteSort);
  138 + }
  139 + ep.emitLater('stationRoutes', routeData);
  140 + });
  141 +
  142 + //线路标准信息
  143 + gb_common.$get('/lineInformation/line/multi', {lineCodes: lineCode}, function (rs) {
  144 + var _informations = {};
  145 + $.each(rs, function () {
  146 + _informations[this.line.lineCode] = this;
  147 + delete this['line'];
  148 + });
  149 + ep.emitLater('lineInformations', _informations);
  150 + });
  151 +
  152 + //线路基础信息
  153 + gb_common.$get('/line/' + lineCode, {}, function (rs) {
  154 + ep.emitLater('codeToLineMap', rs);
  155 + });
  156 + }
  157 + };
  158 +})();
... ...
src/main/resources/static/pages/history_sch/edit/js/modal_extend.js 0 → 100644
  1 +//modal hide remove dom
  2 +$(document).on('hide.uk.modal', '.uk-modal', function () {
  3 + $(this).trigger('ct-destroy').remove();
  4 +});
  5 +
  6 +
  7 +var show_modal = function (id, dom) {
  8 + $(document.body).append(dom);
  9 + return UIkit.modal(id, {
  10 + bgclose: false, modal: false
  11 + }).show();
  12 +};
  13 +
  14 +var open_modal = function (pageUrl, data, opt) {
  15 + $.get(pageUrl, function (dom) {
  16 + open_modal_dom(dom, data, opt);
  17 + });
  18 +};
  19 +
  20 +var open_modal_dom = function (dom, data, opt) {
  21 + if (!$(dom).hasClass('uk-modal')) {
  22 + alert('无效的dom片段!');
  23 + return;
  24 + }
  25 + var id = '#' + $(dom).attr('id');
  26 +
  27 + $(document.body).append(dom);
  28 + UIkit.modal(id, opt).show();
  29 +
  30 + if (data)
  31 + $(id).trigger('init', data);
  32 +};
... ...
src/main/resources/static/pages/history_sch/edit/main_page.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh-cn">
  3 +
  4 +<head>
  5 + <meta charset="UTF-8">
  6 + <!-- uikit core style-->
  7 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/css/uikit.gradient.min.css" />
  8 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/notify.gradient.min.css" />
  9 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.gradient.min.css" />
  10 + <link rel="stylesheet"
  11 + href="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.gradient.min.css" />
  12 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/accordion.gradient.min.css" />
  13 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/slidenav.gradient.min.css" />
  14 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/sticky.gradient.min.css" />
  15 +
  16 + <!-- main style -->
  17 + <link rel="stylesheet" href="/pages/history_sch/edit/css/main.css" />
  18 + <!-- north style -->
  19 + <link rel="stylesheet" href="/real_control_v2/css/north.css" merge="custom_style"/>
  20 + <!-- line style -->
  21 + <link rel="stylesheet" href="/real_control_v2/css/line_schedule.css" merge="custom_style"/>
  22 +
  23 + <!-- custom table -->
  24 + <link rel="stylesheet" href="/real_control_v2/css/ct_table.css" merge="custom_style"/>
  25 + <!-- jquery contextMenu style -->
  26 + <link rel="stylesheet" href="/real_control_v2/assets/css/jquery.contextMenu.min.css" merge="plugins"/>
  27 + <!-- formvalidation style -->
  28 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/formvalidation/formValidation.min.css" merge="plugins"/>
  29 +
  30 + <link rel="stylesheet" href="/real_control_v2/css/modal_extend.css" merge="custom_style"/>
  31 + <!-- perfect-scrollbar style -->
  32 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" merge="plugins"/>
  33 + <style>
  34 + .uk-modal.ct_move_modal .uk-modal-header {
  35 + cursor: default;
  36 + user-select: none;
  37 + }
  38 + .uk-modal.ct_move_modal .uk-modal-dialog {
  39 + position: relative !important;
  40 + margin: 50px auto !important;
  41 + }
  42 + </style>
  43 +</head>
  44 +
  45 +<body>
  46 +<div class="ct_page" >
  47 +</div>
  48 +<!-- jquery -->
  49 +<script src="/real_control_v2/assets/js/jquery.min.js"></script>
  50 +<!-- jquery actual -->
  51 +<script src="/real_control_v2/assets/js/jquery.actual.min.js" merge="plugins"></script>
  52 +<!-- jquery.serializejson JSON序列化插件 -->
  53 +<script src="/assets/plugins/jquery.serializejson.js" merge="plugins"></script>
  54 +<!-- moment.js 日期处理类库 -->
  55 +<script src="/real_control_v2/assets/plugins/moment/moment.min.js"></script>
  56 +<script src="/real_control_v2/assets/plugins/moment/zh-cn.js"></script>
  57 +
  58 +<!-- flatpickr -->
  59 +<script src="/real_control_v2/assets/plugins/flatpickr/flatpickr.min.js" merge="plugins"></script>
  60 +<script src="/real_control_v2/assets/plugins/flatpickr/l10n/zh.js" merge="plugins"></script>
  61 +
  62 +<!-- perfect-scrollbar -->
  63 +<script src="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js" merge="plugins"></script>
  64 +<!-- common js -->
  65 +<script src="/real_control_v2/js/common.js"></script>
  66 +<!-- art-template 模版引擎 -->
  67 +<script src="/assets/plugins/template.js" merge="plugins"></script>
  68 +<!-- d3 -->
  69 +<script src="/assets/js/d3.min.js"></script>
  70 +<!-- EventProxy -->
  71 +<script src="/assets/js/eventproxy.js"></script>
  72 +<!-- uikit core -->
  73 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/uikit.min.js" merge="uikit_js"></script>
  74 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/notify.min.js" merge="uikit_js"></script>
  75 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/pagination.min.js" merge="uikit_js"></script>
  76 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.min.js" merge="uikit_js"></script>
  77 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.min.js" merge="uikit_js"></script>
  78 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/accordion.min.js" merge="uikit_js"></script>
  79 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/timepicker.min.js" merge="uikit_js"></script>
  80 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/lightbox.min.js" merge="uikit_js"></script>
  81 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/sticky.min.js" merge="uikit_js"></script>
  82 +
  83 +<!-- jquery contextMenu -->
  84 +<script src="/real_control_v2/assets/js/jquery.contextMenu.min.js" merge="plugins"></script>
  85 +<script src="/real_control_v2/assets/js/jquery.ui.position.min.js" merge="plugins"></script>
  86 +<!-- formvalidation- -->
  87 +<script src="/real_control_v2/assets/plugins/formvalidation/formValidation.min.js" merge="plugins"></script>
  88 +<script src="/real_control_v2/assets/plugins/formvalidation/zh_CN.js" merge="plugins"></script>
  89 +<script src="/real_control_v2/assets/plugins/formvalidation/uikit.min.js" merge="plugins"></script>
  90 +<!-- js tree -->
  91 +<script src="/real_control_v2/assets/plugins/jstree/jstree.min.js" merge="plugins"></script>
  92 +<!-- simple pinyin -->
  93 +<script src="/assets/plugins/pinyin.js" merge="plugins"></script>
  94 +<!-- qtip -->
  95 +<script src="/real_control_v2/assets/plugins/qtip/jquery.qtip.min.js" merge="plugins"></script>
  96 +<!-- layer 3.0.3 -->
  97 +<script src="/real_control_v2/assets/plugins/layer3.0.3/layer.js" merge="plugins"></script>
  98 +
  99 +<!-- custom table js -->
  100 +<script src="/real_control_v2/js/utils/ct_table.js" merge="custom_js"></script>
  101 +<script src="/pages/history_sch/edit/js/modal_extend.js" merge="custom_js"></script>
  102 +<!-- 字典相关 -->
  103 +<script src="/assets/js/dictionary.js" merge="custom_js"></script>
  104 +<!-- 数据 -->
  105 +<script src="/pages/history_sch/edit/js/data_basic.js" merge="custom_js"></script>
  106 +<script>
  107 +
  108 + (function () {
  109 + open_modal('/pages/history_sch/edit/history_sch_maintain.html', {}, {
  110 + center: false,
  111 + bgclose: false
  112 + });
  113 + })();
  114 +
  115 + var notify_err = function (t) {
  116 + UIkit.notify("<i class='uk-icon-times'></i> " + t, {
  117 + status: 'danger'
  118 + });
  119 + };
  120 +
  121 + var gb_form_validation_opts = {
  122 + framework: 'uikit',
  123 + locale: 'zh_CN',
  124 + icon: {
  125 + valid: 'uk-icon-check',
  126 + invalid: 'uk-icon-times',
  127 + validating: 'uk-icon-refresh'
  128 + }
  129 + };
  130 +
  131 + var disabled_submit_btn = function (form) {
  132 + var subBtn = $('button[type=submit]', form);
  133 + if (subBtn) {
  134 + subBtn.addClass('disabled').attr('disabled', 'disabled');
  135 + }
  136 + };
  137 +
  138 + var notify_succ = function (t) {
  139 + UIkit.notify("<i class='uk-icon-check'></i> " + t, {
  140 + status: 'success'
  141 + });
  142 + };
  143 +
  144 + var hide_wait_modal = function () {
  145 + UIkit.modal('#gb_wait_modal').hide();
  146 + };
  147 +</script>
  148 +</body>
  149 +</html>
0 150 \ No newline at end of file
... ...
src/main/resources/static/pages/history_sch/edit/wrap.html 0 → 100644
  1 +<!-- 历史路单维护 -->
  2 +<iframe src="/pages/history_sch/edit/main_page.html?origin=real_control_iframe" frameborder="0" style="height: 100%;width: 100%;"></iframe>
0 3 \ No newline at end of file
... ...
src/main/resources/static/pages/summary/destory_sch_detail/d_s_d_wrap.html 0 → 100644
  1 +<!-- 烂班明细统计 -->
  2 +<iframe src="/pages/summary/destory_sch_detail/list.html?origin=real_control_iframe" frameborder="0" style="height: 100%;width: 100%;"></iframe>
0 3 \ No newline at end of file
... ...
src/main/resources/static/pages/summary/destory_sch_detail/list.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh-cn">
  3 +
  4 +<head>
  5 + <meta charset="UTF-8">
  6 + <link rel="stylesheet" href="/assets/plugins/uk3.0/uikit.min.css"/>
  7 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" />
  8 + <!-- flatpickr -->
  9 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/flatpickr/flatpickr.min.css">
  10 + <style>
  11 + html,body{
  12 + height: 100%;
  13 + }
  14 + .ct_page{
  15 + padding: 25px 15px;
  16 + height: 100%;
  17 + height: calc(100% - 50px);
  18 + }
  19 +
  20 + .ct_cont{
  21 + height: calc(100% - 35px);
  22 + }
  23 +
  24 + .ct_cont>div>div.uk-card{
  25 + height: 99%;
  26 + }
  27 +
  28 + .loading{
  29 + height: 100%;
  30 + text-align: center;
  31 + }
  32 + .loading .uk-spinner{
  33 + margin-top: 200px;
  34 + }
  35 + .loading circle{
  36 + stroke: red;
  37 + }
  38 +
  39 + .ps-container > .ps-scrollbar-x-rail, .ps-container > .ps-scrollbar-y-rail{
  40 + opacity: 0.6 !important;
  41 + padding: 0 !important;
  42 + }
  43 +
  44 + .ct_destroy_sch_table_width th:nth-of-type(1),.ct_destroy_sch_table_width td:nth-of-type(1){
  45 + width: 9%;
  46 + }
  47 + .ct_destroy_sch_table_width th:nth-of-type(2),.ct_destroy_sch_table_width td:nth-of-type(2){
  48 + width: 9%;
  49 + }
  50 + .ct_destroy_sch_table_width th:nth-of-type(3),.ct_destroy_sch_table_width td:nth-of-type(3){
  51 + width: 9%;
  52 + }
  53 + .ct_destroy_sch_table_width th:nth-of-type(4),.ct_destroy_sch_table_width td:nth-of-type(4){
  54 + width: 9%;
  55 + }
  56 + .ct_destroy_sch_table_width th:nth-of-type(5),.ct_destroy_sch_table_width td:nth-of-type(5){
  57 + width: 9%;
  58 + }
  59 + .ct_destroy_sch_table_width th:nth-of-type(6),.ct_destroy_sch_table_width td:nth-of-type(6){
  60 + width: 9%;
  61 + }
  62 + .ct_destroy_sch_table_width th:nth-of-type(7),.ct_destroy_sch_table_width td:nth-of-type(7){
  63 + width: 8%;
  64 + }
  65 + .ct_destroy_sch_table_width th:nth-of-type(8),.ct_destroy_sch_table_width td:nth-of-type(8){
  66 + width: 8%;
  67 + }
  68 + .ct_destroy_sch_table_width th:nth-of-type(9),.ct_destroy_sch_table_width td:nth-of-type(9){
  69 + width: 8%;
  70 + }
  71 + .ct_destroy_sch_table_width th:nth-of-type(10),.ct_destroy_sch_table_width td:nth-of-type(10){
  72 + }
  73 +
  74 + .ct_search_form_wrap{
  75 + border-bottom: 1px solid #e5e5e5;
  76 + padding: 10px 0 25px 10px;
  77 + }
  78 + .ct_search_form_wrap .ct_field{
  79 + display: inline-block;
  80 + margin: 0 5px;
  81 + }
  82 +
  83 + .ct_search_form_wrap .ct_field label{
  84 + font-size: 14px;
  85 + }
  86 +
  87 + .ct_search_form_wrap .ct_field input{
  88 + width: 110px;
  89 + }
  90 +
  91 + .ct_search_form_wrap .ct_field select{
  92 + width: auto;
  93 + min-width: 100px;
  94 + }
  95 +
  96 + .ct_search_form_wrap .uk-button{
  97 + padding: 0 14px;
  98 + }
  99 +
  100 + .ct_search_form_wrap .uk-button i{
  101 + vertical-align: middle;
  102 + margin-top: -2px;
  103 + margin-right: 7px;
  104 + }
  105 +
  106 + .ct_table_wrap{
  107 + font-size: 14px;
  108 + height: calc(100% - 77px);
  109 + }
  110 +
  111 + .t_body_wrap{
  112 + height: calc(100% - 41px);
  113 + overflow: auto;
  114 + position: relative;
  115 + }
  116 +
  117 + .ct_field.ct_field_bottom{
  118 + vertical-align: bottom;
  119 + font-size: 12px;
  120 + margin-left: 0;
  121 + }
  122 + </style>
  123 +</head>
  124 +
  125 +<body>
  126 +<div class="loading">
  127 + <div uk-spinner></div>
  128 +</div>
  129 +<div class="ct_page" style="display: none;">
  130 + <h3 class="uk-heading-line uk-heading-bullet"><span>烂班明细统计</span></h3>
  131 + <div class="ct_cont" >
  132 + <div class="ct_search_form_wrap">
  133 + <form>
  134 + <div class="ct_field">
  135 + <label>公司:
  136 + <select class="uk-select" name="gsBm_eq">
  137 + </select>
  138 + </label>
  139 + </div>
  140 + <div class="ct_field">
  141 + <label>分公司:
  142 + <select class="uk-select" name="fgsBm_eq">
  143 + </select>
  144 + </label>
  145 + </div>
  146 + <div class="ct_field">
  147 + <label>线路:
  148 + <select class="uk-select" name="lineCode_eq">
  149 + </select>
  150 + </label>
  151 + </div>
  152 + <div class="ct_field">
  153 + <label>日期:
  154 + <input class="uk-input" name="rq" style="width: 220px;">
  155 + </label>
  156 + </div>
  157 + <div class="ct_field">
  158 + <button class="uk-button uk-button-primary search"><i uk-icon="icon: search"></i>搜索</button>
  159 + </div>
  160 + <div class="ct_field ct_field_bottom">
  161 + <button class="uk-button uk-button-text export_excel" style="padding: 0 5px;">导出数据</button>
  162 + </div>
  163 + <div class="ct_field ct_field_bottom">
  164 + <span uk-icon="icon: question" title="不统计进出场和子任务" uk-tooltip="pos: bottom"></span>
  165 + </div>
  166 + </form>
  167 + </div>
  168 + <div class="ct_table_wrap day">
  169 + <table class="uk-table uk-table-small ct_destroy_sch_table_width" style="margin-bottom: 0;">
  170 + <thead>
  171 + <tr>
  172 + <th>日期</th>
  173 + <th>线路</th>
  174 + <th>车号</th>
  175 + <th>司机</th>
  176 + <th>售票员</th>
  177 + <th>原因</th>
  178 + <th>班次</th>
  179 + <th>烂班公里</th>
  180 + <th>烂班时间</th>
  181 + <th>备注</th>
  182 + </tr>
  183 + </thead>
  184 + </table>
  185 + <div class="t_body_wrap">
  186 + <table class="uk-table uk-table-divider uk-table-hover uk-table-small ct_destroy_sch_table ct_destroy_sch_table_width">
  187 + <tbody>
  188 + </tbody>
  189 + </table>
  190 + </div>
  191 + </div>
  192 + </div>
  193 +</div>
  194 +
  195 +<script id="destroy_sch_list_temp" type="text/html">
  196 + {{each list as obj i}}
  197 + <tr>
  198 + <td>{{obj.rq}}</td>
  199 + <td>{{obj.lineName}}</td>
  200 + <td>{{obj.nbbm}}</td>
  201 + <td>{{obj.jGh}}</td>
  202 + <td>{{obj.sGh}}</td>
  203 + <td>{{obj.reason}}</td>
  204 + <td><a style="text-decoration: underline;">{{obj.size}}</a></td>
  205 + <td>{{obj.mileage}}</td>
  206 + <td>{{obj.timeStr}}</td>
  207 + <td>{{obj.remark}}</td>
  208 + </tr>
  209 + {{/each}}
  210 +</script>
  211 +
  212 +<script src="/metronic_v4.5.4/plugins/jquery.min.js"></script>
  213 +<script src="/assets/plugins/uk3.0/uikit.min.js"></script>
  214 +<script src="/assets/plugins/uk3.0/uikit-icons.min.js"></script>
  215 +<script src="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js" ></script>
  216 +<!-- EventProxy -->
  217 +<script src="/assets/js/eventproxy.js"></script>
  218 +<!-- art-template 模版引擎 -->
  219 +<script src="/assets/plugins/template.js"></script>
  220 +<script src="/real_control_v2/assets/plugins/moment/moment.min.js"></script>
  221 +<!-- jquery.serializejson JSON序列化插件 -->
  222 +<script src="/assets/plugins/jquery.serializejson.js" merge="plugins"></script>
  223 +<!-- flatpickr -->
  224 +<script src="/real_control_v2/assets/plugins/flatpickr/flatpickr.min.js" ></script>
  225 +<script src="/real_control_v2/assets/plugins/flatpickr/l10n/zh.js" ></script>
  226 +<script>
  227 +
  228 + var f = $('form', '');
  229 + //var page=0, pageSize=120;
  230 +
  231 + var ep = EventProxy.create('query_comps', 'query_lines', function () {
  232 + $('[name=gsBm_eq]', f).trigger('change');//公司change
  233 + query();
  234 +
  235 + $('.loading').remove();
  236 + $('.ct_page').show();
  237 + });
  238 +
  239 + //点击搜索
  240 + $('button.search', f).on('click', query);
  241 +
  242 + function query() {
  243 + $('button.search', f).attr('disabled', 'disabled');
  244 + var data = f.serializeJSON();
  245 + $('.ct_destroy_sch_table tbody').html('');
  246 + //开始结束时间
  247 + data.rq_ge = data.rq.substr(0, 10);
  248 + data.rq_le = data.rq.substr(13);
  249 + data.order='t';
  250 + delete data.rq;
  251 +
  252 + $.get('/summary/destroy_detail/all', data, function (rs) {
  253 + $('button.search', f).removeAttr('disabled');
  254 + if(!rs || rs.length==0)
  255 + return UIkit.notification('没有搜索到相关数据!!', 'danger');
  256 + $.each(rs, function () {
  257 + this.timeStr=moment(this.t).format('HH:mm')
  258 + });
  259 +
  260 + var htmlStr = template('destroy_sch_list_temp', {list: rs});
  261 + $('.ct_destroy_sch_table tbody').html(htmlStr);
  262 + $('.t_body_wrap').perfectScrollbar('update');
  263 + });
  264 + }
  265 +
  266 +
  267 + //日期选择框
  268 + var fs='YYYY-MM-DD'
  269 + , ets=moment().subtract(1, 'days').format(fs)
  270 + , sts=moment().subtract(3, 'days').format(fs);
  271 + flatpickr('.ct_search_form_wrap [name=rq]', {
  272 + mode: "range", dateFormat: "Y-m-d","locale": "zh", defaultDate: [sts, ets]
  273 + });
  274 + var comps;
  275 + //构建公司级联下拉框
  276 + $.get('/user/companyData', function (rs) {
  277 + comps = rs;
  278 + var opts = '';
  279 + for(var i=0,obj;obj=comps[i++];){
  280 + opts += '<option value="'+obj.companyCode+'">'+obj.companyName+'</option>';
  281 + }
  282 + $('[name=gsBm_eq]', f).html(opts);
  283 + ep.emit('query_comps');
  284 + });
  285 +
  286 + var lineMapps;
  287 + //加载线路信息
  288 + $.get('/line/all', {'destroy_eq': 0}, function (rs) {
  289 + rs.sort(function (a, b) {
  290 + return a.name.localeCompare(b.name);
  291 + });
  292 + lineMapps={};
  293 + var k;
  294 + $.each(rs, function () {
  295 + k = this.company+'_'+this.brancheCompany;
  296 + if(!lineMapps[k])
  297 + lineMapps[k]=[];
  298 + lineMapps[k].push(this);
  299 + });
  300 +
  301 + ep.emit('query_lines');
  302 + });
  303 +
  304 + $('[name=gsBm_eq]', f).on('change', function () {
  305 + var code = $(this).val(), subs=[];
  306 + $.each(comps, function () {
  307 + if(this.companyCode==code)
  308 + subs=this.children;
  309 + });
  310 +
  311 + var opts='';
  312 + $.each(subs, function () {
  313 + opts += '<option value="'+this.code+'">'+this.name+'</option>';
  314 + });
  315 + $('[name=fgsBm_eq]', f).html(opts).trigger('change');
  316 + });
  317 +
  318 + $('[name=fgsBm_eq]', f).on('change', function () {
  319 + var k = $('[name=gsBm_eq]', f).val() + '_' + $(this).val();
  320 + var array = lineMapps[k];
  321 + var opts = '<option value="">全部</option>';
  322 + if(array){
  323 + $.each(array, function () {
  324 + opts += '<option value="'+this.lineCode+'">'+this.name+'</option>';
  325 + });
  326 + }
  327 + $('[name=lineCode_eq]', f).html(opts);
  328 + });
  329 +
  330 + //
  331 + //滚动条
  332 + $('.t_body_wrap').perfectScrollbar({suppressScrollX: true});
  333 +
  334 + $(document).on('submit', 'form', function () {
  335 + return false;
  336 + });
  337 +
  338 + /**
  339 + * 导出
  340 + */
  341 + $('.export_excel').on('click', function () {
  342 + var data = f.serializeJSON();
  343 + data.rq_ge = data.rq.substr(0, 10);
  344 + data.rq_le = data.rq.substr(13);
  345 + data.order='t';
  346 + delete data.rq;
  347 +
  348 + window.open('/summary/destroy_detail/excel?' + $.param(data));
  349 + });
  350 +
  351 +</script>
  352 +</body>
  353 +</html>
0 354 \ No newline at end of file
... ...
src/main/resources/static/pages/summary/excel/快慢误点报表.xls
No preview for this file type
src/main/resources/static/pages/summary/excel/烂班明细情况.xls 0 → 100644
No preview for this file type
src/main/resources/static/pages/summary/fast_and_slow/data.html
... ... @@ -18,24 +18,30 @@
18 18 <div class="data_table_wrap head">
19 19 <table cellspacing="1" class="data_table">
20 20 <col />
21   - <col width="14%"/>
22   - <col width="4%"/>
23   - <col width="6%"/>
24   - <col width="6%"/>
25   - <col width="6%"/>
26 21 <col width="5%"/>
27 22 <col width="5%"/>
28 23 <col width="5%"/>
  24 + <col width="13%"/>
  25 + <col width="4%"/>
29 26 <col width="5%"/>
30   - <col width="6%"/>
31   - <col width="6%"/>
32   - <col width="6%"/>
33 27 <col width="5%"/>
34 28 <col width="5%"/>
  29 + <col width="4%"/>
  30 + <col width="4%"/>
  31 + <col width="4%"/>
  32 + <col width="4%"/>
35 33 <col width="5%"/>
36 34 <col width="5%"/>
  35 + <col width="5%"/>
  36 + <col width="4%"/>
  37 + <col width="4%"/>
  38 + <col width="4%"/>
  39 + <col width="4%"/>
37 40 <tr>
38 41 <td rowspan="3">序号</td>
  42 + <td rowspan="3">路牌</td>
  43 + <td rowspan="3">车辆</td>
  44 + <td rowspan="3">人员</td>
39 45 <td rowspan="3">发车站点</td>
40 46 <td rowspan="3">方向</td>
41 47 <td colspan="7">发车时间</td>
... ... @@ -70,25 +76,31 @@
70 76 <div class="data_table_wrap data" id="table_{{k}}">
71 77 <table cellspacing="1" class="data_table">
72 78 <col />
73   - <col width="14%"/>
74   - <col width="4%"/>
75   - <col width="6%"/>
76   - <col width="6%"/>
77   - <col width="6%"/>
78 79 <col width="5%"/>
79 80 <col width="5%"/>
80 81 <col width="5%"/>
  82 + <col width="13%"/>
  83 + <col width="4%"/>
81 84 <col width="5%"/>
82   - <col width="6%"/>
83   - <col width="6%"/>
84   - <col width="6%"/>
85 85 <col width="5%"/>
86 86 <col width="5%"/>
  87 + <col width="4%"/>
  88 + <col width="4%"/>
  89 + <col width="4%"/>
  90 + <col width="4%"/>
87 91 <col width="5%"/>
88 92 <col width="5%"/>
  93 + <col width="5%"/>
  94 + <col width="4%"/>
  95 + <col width="4%"/>
  96 + <col width="4%"/>
  97 + <col width="4%"/>
89 98 {{each listMap[k] as obj i}}
90 99 <tr>
91 100 <td>{{i+1}}</td>
  101 + <td>{{obj.lpName}}</td>
  102 + <td>{{obj.nbbm}}</td>
  103 + <td>{{obj.jsy}}</td>
92 104 <td>{{obj.stationName}}</td>
93 105 <td class="cell_dir_{{obj.upDown}}">{{obj.upDown==0?"上行":"下行"}}</td>
94 106 <td>{{obj.fcsj}}</td>
... ... @@ -108,21 +120,21 @@
108 120 </tr>
109 121 {{/each}}
110 122 <tr>
111   - <td rowspan="4">合计:</td>
112   - <td colspan="8" class="count_col">发车:上行(计划快误点:<a class="c_c_0">{{countMap[k][0]['fast'][0]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['fast'][0]}}</a> &nbsp;待发快误点:<a class="c_c_0">{{countMap[k][0]['fast'][1]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['fast'][1]}}</a>)</td>
113   - <td colspan="8" class="count_col">发车:下行(计划快误点:<a class="c_c_1">{{countMap[k][1]['fast'][0]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['fast'][0]}}</a> 待发快误点:<a class="c_c_1">{{countMap[k][1]['fast'][1]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['fast'][1]}}</a>)</td>
  123 + <td rowspan="4" colspan="2">合计:</td>
  124 + <td colspan="9" class="count_col">发车:上行(计划快误点:<a class="c_c_0">{{countMap[k][0]['fast'][0]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['fast'][0]}}</a> &nbsp;待发快误点:<a class="c_c_0">{{countMap[k][0]['fast'][1]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['fast'][1]}}</a>)</td>
  125 + <td colspan="9" class="count_col">发车:下行(计划快误点:<a class="c_c_1">{{countMap[k][1]['fast'][0]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['fast'][0]}}</a> 待发快误点:<a class="c_c_1">{{countMap[k][1]['fast'][1]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['fast'][1]}}</a>)</td>
114 126 </tr>
115 127 <tr>
116   - <td colspan="8" class="count_col">发车:上行(计划慢误点:<a class="c_c_0">{{countMap[k][0]['slow'][0]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['slow'][0]}}</a> &nbsp;待发慢误点:<a class="c_c_0">{{countMap[k][0]['slow'][1]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['slow'][1]}}</a>)</td>
117   - <td colspan="8" class="count_col">发车:下行(计划慢误点:<a class="c_c_1">{{countMap[k][1]['slow'][0]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['slow'][0]}}</a> &nbsp;待发慢误点:<a class="c_c_1">{{countMap[k][1]['slow'][1]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['slow'][1]}}</a>)</td>
  128 + <td colspan="9" class="count_col">发车:上行(计划慢误点:<a class="c_c_0">{{countMap[k][0]['slow'][0]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['slow'][0]}}</a> &nbsp;待发慢误点:<a class="c_c_0">{{countMap[k][0]['slow'][1]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['slow'][1]}}</a>)</td>
  129 + <td colspan="9" class="count_col">发车:下行(计划慢误点:<a class="c_c_1">{{countMap[k][1]['slow'][0]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['slow'][0]}}</a> &nbsp;待发慢误点:<a class="c_c_1">{{countMap[k][1]['slow'][1]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['slow'][1]}}</a>)</td>
118 130 </tr>
119 131 <tr>
120   - <td colspan="8" class="count_col">到达:上行(计划快误点:<a class="c_c_0">{{countMap[k][0]['fast'][2]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['fast'][2]}}</a> &nbsp;待发快误点:<a class="c_c_0">{{countMap[k][0]['fast'][3]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['fast'][3]}}</a>)</td>
121   - <td colspan="8" class="count_col">到达:下行(计划快误点:<a class="c_c_1">{{countMap[k][1]['fast'][2]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['fast'][2]}}</a> &nbsp;待发快误点:<a class="c_c_1">{{countMap[k][1]['fast'][3]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['fast'][3]}}</a>)</td>
  132 + <td colspan="9" class="count_col">到达:上行(计划快误点:<a class="c_c_0">{{countMap[k][0]['fast'][2]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['fast'][2]}}</a> &nbsp;待发快误点:<a class="c_c_0">{{countMap[k][0]['fast'][3]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['fast'][3]}}</a>)</td>
  133 + <td colspan="9" class="count_col">到达:下行(计划快误点:<a class="c_c_1">{{countMap[k][1]['fast'][2]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['fast'][2]}}</a> &nbsp;待发快误点:<a class="c_c_1">{{countMap[k][1]['fast'][3]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['fast'][3]}}</a>)</td>
122 134 </tr>
123 135 <tr>
124   - <td colspan="8" class="count_col">到达:上行(计划慢误点:<a class="c_c_0">{{countMap[k][0]['slow'][2]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['slow'][2]}}</a> &nbsp;待发慢误点:<a class="c_c_0">{{countMap[k][0]['slow'][3]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['slow'][3]}}</a>)</td>
125   - <td colspan="8" class="count_col">到达:下行(计划慢误点:<a class="c_c_1">{{countMap[k][1]['slow'][2]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['slow'][2]}}</a> &nbsp;待发慢误点:<a class="c_c_1">{{countMap[k][1]['slow'][3]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['slow'][3]}}</a>)</td>
  136 + <td colspan="9" class="count_col">到达:上行(计划慢误点:<a class="c_c_0">{{countMap[k][0]['slow'][2]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['slow'][2]}}</a> &nbsp;待发慢误点:<a class="c_c_0">{{countMap[k][0]['slow'][3]}}</a> &nbsp;累计时间:<a class="c_c_0">{{timeCountMap[k][0]['slow'][3]}}</a>)</td>
  137 + <td colspan="9" class="count_col">到达:下行(计划慢误点:<a class="c_c_1">{{countMap[k][1]['slow'][2]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['slow'][2]}}</a> &nbsp;待发慢误点:<a class="c_c_1">{{countMap[k][1]['slow'][3]}}</a> &nbsp;累计时间:<a class="c_c_1">{{timeCountMap[k][1]['slow'][3]}}</a>)</td>
126 138 </tr>
127 139 </table>
128 140 </div>
... ...
src/main/resources/static/pages/summary/fast_and_slow/main.html
... ... @@ -91,19 +91,20 @@
91 91 }
92 92  
93 93 .ct_rq_left{
94   - width: 200px;
  94 + width: 130px;
95 95 display: inline-block;
96 96 vertical-align: top;
97 97 height: calc(100% - 184px);
98 98 position: fixed;
99 99 left: 25px;
  100 + padding: 40px 15px;
100 101 }
101 102  
102 103 .ct_right_tables{
103   - width: calc(100% - 220px);
  104 + width: calc(100% - 160px);
104 105 display: inline-block;
105   - margin-left: 232px;
106   - padding: 25px;
  106 + margin-left: 152px;
  107 + padding: 25px 0;
107 108 margin-bottom: 18px;
108 109 }
109 110  
... ... @@ -117,7 +118,7 @@
117 118 width: 15px;
118 119 border-top: 1px solid #1e87f0;
119 120 z-index: 9;
120   - right: 60px;
  121 + right: 40px;
121 122 top: 15px;
122 123 }
123 124 .uk-nav-default>li.uk-active>a {
... ... @@ -126,7 +127,7 @@
126 127 }
127 128  
128 129 .data_table_wrap{
129   - min-width: 1170px;
  130 + min-width: 1070px;
130 131 }
131 132  
132 133 .ct_right_tables table{
... ... @@ -156,7 +157,7 @@
156 157  
157 158 .data_table_wrap.head{
158 159 position: fixed;
159   - width: calc(100% - 300px);
  160 + width: calc(100% - 190px);
160 161 top: 155px;
161 162 padding-top: 25px;
162 163 background: #fff;
... ... @@ -258,7 +259,7 @@
258 259 <button class="uk-button uk-button-text export_excel" style="padding: 0 5px;">导出数据</button>
259 260 </div>
260 261 <div class="ct_field ct_field_bottom">
261   - <span uk-icon="icon: question" title="快1慢3; 排除进出场班次<br>一次至多查询5天的数据,如需更大查询范围,请导出" uk-tooltip="pos: bottom"></span>
  262 + <span uk-icon="icon: question" title="快1慢3; 排除进出场和子任务班次<br>一次至多查询5天的数据,如需更大查询范围,请导出" uk-tooltip="pos: bottom"></span>
262 263 </div>
263 264 </form>
264 265 </div>
... ...
src/main/resources/static/pages/summary/work_hours/list.html
... ... @@ -262,8 +262,8 @@
262 262 }
263 263  
264 264 //日期选择器
265   - $('[name=rq_eq]', f).val('2017-10-23');
266   - flatpickr('.ct_search_form_wrap [name=rq_eq]', {"locale": "zh", maxDate: '2017-10-23', minDate: '2017-07-01'});
  265 + $('[name=rq_eq]', f).val(moment().subtract(2,'days').format('YYYY-MM-DD'));
  266 + flatpickr('.ct_search_form_wrap [name=rq_eq]', {"locale": "zh"});
267 267  
268 268 var comps;
269 269 //构建公司级联下拉框
... ...
src/main/resources/static/real_control_v2/css/home.css
... ... @@ -58,6 +58,7 @@
58 58 padding-left: 0;
59 59 overflow: hidden;
60 60 background: #fff;
  61 + height: 100%;
61 62 }
62 63  
63 64 .home-gps-table {
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/bc_type_major.html
... ... @@ -178,7 +178,8 @@
178 178 //将班次类型调整为放站
179 179 gb_common.$post('/realSchedule/changeBcType/' + sch.id, {
180 180 bcType: 'major',
181   - remarks: remarks
  181 + remarks: remarks,
  182 + majorStationName: $('[name=endStation]').find("option:selected").text()
182 183 }, function (rs) {
183 184 UIkit.modal(modal).hide();
184 185 gb_schedule_table.updateSchedule(rs.t);
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch/editor.html
... ... @@ -186,9 +186,9 @@
186 186 <a class="uk-button uk-button-success"><i class="uk-icon-pencil-square-o"></i> 添加子任务 <i class="uk-icon-caret-down"></i></a>
187 187 <div class="uk-dropdown" style="text-align: left;">
188 188 <ul class="uk-nav uk-nav-dropdown child_task_list">
189   - <li data-method="add_oil"><a>空驶进出场</a></li>
  189 + <!--<li data-method="add_oil"><a>空驶进出场</a></li>
190 190 <li data-method="in_park"><a>进场</a></li>
191   - <li data-method="out_park"><a>出场</a></li>
  191 + <li data-method="out_park"><a>出场</a></li>-->
192 192 <li data-method="other"><a>自定义</a></li>
193 193 </ul>
194 194 </div>
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch_maintain.html
... ... @@ -126,20 +126,6 @@
126 126 $.each(rs, function (i) {
127 127 tsStr += '<li ' + (i == 0 ? 'class="uk-active"' : '') + '><a>' + this + '</a></li>';
128 128 });
129   - //临时放开闵行39路的日期权限
130   - /*if(gb_data_basic.line_idx=='100001'){
131   - var st = moment('2017-08-29', 'YYYY-MM-DD');
132   - var et = moment().format('YYYY-MM-DD');
133   - tsStr = '';
134   - while(true){
135   - var rq = st.format('YYYY-MM-DD');
136   - tsStr += '<li ' + (rq == et ? 'class="uk-active"' : '') + '><a>' + rq + '</a></li>';
137   - st.add(1, 'days');
138   -
139   - if(rq == et)
140   - break;
141   - }
142   - }*/
143 129  
144 130 $('.h-s-time', modal).html(tsStr);
145 131  
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/line_config/line_config.html
... ... @@ -20,6 +20,7 @@
20 20 <div class="uk-accordion-content">
21 21 <ul class="uk-list uk-list-line" id="smooth_scroll_list">
22 22 <li><a data-href="#schedule_reload_time_panel" >班次更新时间</a></li>
  23 + <li><a data-href="#schedule_auto_exec_panel" >班次自动执行</a></li>
23 24 <li><a data-href="#out_time_type_panel" >出场时间类型</a></li>
24 25 <li><a data-href="#in_park_source_panel" >原线路回场</a></li>
25 26 <li><a data-href="#buffer_inOut_diff_panel">到站缓冲区设置</a></li>
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/line_config/line_config_entity.html
... ... @@ -28,6 +28,34 @@
28 28 <button class="uk-button uk-button-mini" disabled>加载历史GPS恢复到离站</button>
29 29 </div>
30 30 </div>
  31 +
  32 + <div id="schedule_auto_exec_panel">
  33 + <h2 class="btn_title_line">
  34 + <a class="uk-link-reset">班次自动执行</a>
  35 + </h2>
  36 + <div>
  37 + <div>
  38 + <label>
  39 + <input type="checkbox" id="enableAutoExec"> 启用自动班次执行
  40 + </label>
  41 + </div>
  42 + <ul class="uk-list">
  43 + <li>
  44 + <small style="color: red;font-size: 14px;">1、 你必须只应该对【无固定走向且无人监管的线路】启用此项。</small>
  45 + </li>
  46 + <li>
  47 + <small>2、启用该选项后,系统将不再依赖相关定位信号来执行班次。</small>
  48 + </li>
  49 + <li>
  50 + <small>3、系统将在合适的时候自动填入实发实达时间,以完善报表。</small>
  51 + </li>
  52 + <li>
  53 + <small>4、系统不会下发班次调度指令。</small>
  54 + </li>
  55 + </ul>
  56 + </div>
  57 + </div>
  58 +
31 59 <div id="out_time_type_panel">
32 60 <h2 class="btn_title_line">
33 61 <a class="uk-link-reset">出场时间类型</a>
... ... @@ -165,6 +193,7 @@
165 193 $('#clearRealScheduleBtn', wrap).on('click', clearRealSchedule);
166 194 //重新载入实际排班
167 195 $('#reLoadRealScheduleBtn', wrap).on('click', reLoadRealSchedule);
  196 + $('#enableAutoExec', wrap).on('click', autoExecFun);
168 197 });
169 198  
170 199 function changeTwinsParkAndStation() {
... ... @@ -256,6 +285,43 @@
256 285 $('select[name=twinsPark]', wrap).on('change', changeTwinsParkAndStation);
257 286 $('select[name=twinsStation]', wrap).on('change', changeTwinsParkAndStation);
258 287 }
  288 +
  289 + /**
  290 + * 自动执行
  291 + */
  292 + function autoExecFun(){
  293 + var that = this;
  294 + if(that.checked){
  295 + that.checked = false;
  296 + alt_confirm('<span style="color: red;font-size: 16px;">启用【' + conf.line.name + '】的自动执行功能?</span>', function () {
  297 + var data = {
  298 + lineCode: conf.line.lineCode,
  299 + autoExec: true
  300 + };
  301 + gb_common.$post('/lineConfig/setAutoExec', data, function (rs) {
  302 + notify_succ('启用成功!');
  303 + conf = rs.conf;
  304 +
  305 + that.checked = true;
  306 + });
  307 + }, '我确定要将【' + conf.line.name + '】设置为自动执行', true);
  308 + }
  309 + else{
  310 + that.checked = true;
  311 + alt_confirm('<span style="color: red;font-size: 16px;">禁用【' + conf.line.name + '】的自动执行功能?</span>', function () {
  312 + var data = {
  313 + lineCode: conf.line.lineCode,
  314 + autoExec: false
  315 + };
  316 + gb_common.$post('/lineConfig/setAutoExec', data, function (rs) {
  317 + notify_succ('禁用成功!');
  318 + conf = rs.conf;
  319 +
  320 + that.checked = false;
  321 + });
  322 + }, '我确定要禁用【' + conf.line.name + '】的自动执行', true);
  323 + }
  324 + }
259 325 })();
260 326 </script>
261 327 </div>
262 328 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/js/main.js
... ... @@ -168,8 +168,8 @@ var disabled_submit_btn = function (form) {
168 168 function showUpdateDescription() {
169 169 //更新说明
170 170 var updateDescription = {
171   - date: '2017-10-25',
172   - text: '<h5>1、修正了双击调整待发时,备注会被清空的bug。!</h5><h5>2、现在发车和到站信使可以撤销和编辑。</h5>'
  171 + date: '2017-11-01',
  172 + text: '<h5>1、修正了XP系统下主页滚动条的显示问题(Windows XP sp3 + chrome 49.0.2623.112)。</h5>'
173 173 };
174 174  
175 175 var storage = window.localStorage
... ...
src/main/resources/static/real_control_v2/js/north/toolbar.js
... ... @@ -149,8 +149,11 @@ var gb_northToolbar = (function () {
149 149 form_scheduleDaily: function () {
150 150 gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/scheduleDaily.html', '调度日报');
151 151 },
  152 + form_jobSummary: function () {
  153 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/jobSummary.html', '工作汇总');
  154 + },
152 155 form_waybillday: function () {
153   - gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/waybillday.html', '行车路单日报表');
  156 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/waybilldays/waybillday.html', '行车路单日报表');
154 157 },
155 158 form_inoutstation: function () {
156 159 gb_embed_form_hanlde.open_modal_form_fragment('/pages/report/inoutstation.html', '班次到离站');
... ... @@ -163,10 +166,10 @@ var gb_northToolbar = (function () {
163 166 },
164 167 form_workDaily: function () {
165 168 gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/workDaily.html', '营运服务日报表');
166   - },
167   - form_peopleCarPlan: function () {
168   - gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/peopleCarPlan.html', '计划车辆班次人员');
169   - },
  169 + }/*,
  170 + form_peopleCarPlan: function () {
  171 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/peopleCarPlan.html', '计划车辆班次人员');
  172 + }*/,
170 173 form_oilListMonth: function () {
171 174 gb_embed_form_hanlde.open_modal_form_fragment('/pages/report/oil/oilListMonth.html', '月存油报表');
172 175 },
... ...