Commit 9a65026db3eebdb0b9b14619deb3d2dbc2b528af

Authored by 徐烜
2 parents 03746117 c59bbc6d

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

src/main/java/com/bsth/controller/schedule/core/TTInfoDetailController.java
@@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.web.bind.annotation.PathVariable; 8 import org.springframework.web.bind.annotation.PathVariable;
9 import org.springframework.web.bind.annotation.RequestMapping; 9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.bind.annotation.RequestMethod; 10 import org.springframework.web.bind.annotation.RequestMethod;
  11 +import org.springframework.web.bind.annotation.RequestParam;
11 import org.springframework.web.bind.annotation.RestController; 12 import org.springframework.web.bind.annotation.RestController;
12 13
13 import java.util.HashMap; 14 import java.util.HashMap;
@@ -87,5 +88,16 @@ public class TTInfoDetailController extends BController<TTInfoDetail, Long> { @@ -87,5 +88,16 @@ public class TTInfoDetailController extends BController<TTInfoDetail, Long> {
87 } 88 }
88 return rtn; 89 return rtn;
89 } 90 }
90 - 91 +
  92 + /**
  93 + * 时刻表明细批量插入
  94 + *
  95 + * @param entities
  96 + *
  97 + * @return
  98 + */
  99 + @RequestMapping(value = "/skbDetailMxSave" ,method = RequestMethod.POST)
  100 + public Map<String, Object> skbDetailMxSave(@RequestParam Map<String, Object> entities){
  101 + return ttInfoDetailService.skbDetailMxSave(entities);
  102 + }
91 } 103 }
src/main/java/com/bsth/entity/SectionRoute.java
@@ -52,7 +52,7 @@ public class SectionRoute { @@ -52,7 +52,7 @@ public class SectionRoute {
52 // 是否撤销 52 // 是否撤销
53 private Integer destroy; 53 private Integer destroy;
54 54
55 - /** 是否有路段限速数据 <0:无;1:有>*/ 55 + /** 是否有路段限速数据 <0:未分段;1:分段>*/
56 private Integer isRoadeSpeed; 56 private Integer isRoadeSpeed;
57 57
58 // 描述 58 // 描述
src/main/java/com/bsth/repository/schedule/GuideboardInfoRepository.java
@@ -3,6 +3,7 @@ package com.bsth.repository.schedule; @@ -3,6 +3,7 @@ package com.bsth.repository.schedule;
3 import java.util.List; 3 import java.util.List;
4 import java.util.Map; 4 import java.util.Map;
5 5
  6 +import com.bsth.entity.Line;
6 import com.bsth.entity.schedule.EmployeeConfigInfo; 7 import com.bsth.entity.schedule.EmployeeConfigInfo;
7 import com.bsth.entity.schedule.GuideboardInfo; 8 import com.bsth.entity.schedule.GuideboardInfo;
8 import com.bsth.repository.BaseRepository; 9 import com.bsth.repository.BaseRepository;
@@ -37,4 +38,8 @@ public interface GuideboardInfoRepository extends BaseRepository&lt;GuideboardInfo, @@ -37,4 +38,8 @@ public interface GuideboardInfoRepository extends BaseRepository&lt;GuideboardInfo,
37 "where td.ttinfo.id=?1 " + 38 "where td.ttinfo.id=?1 " +
38 "group by td.ttinfo.id, td.lp.id, td.lp.lpName") 39 "group by td.ttinfo.id, td.lp.id, td.lp.lpName")
39 List<Map<String, Object>> findLpName(Long ttid); 40 List<Map<String, Object>> findLpName(Long ttid);
  41 +
  42 + @Query(value = "SELECT g FROM GuideboardInfo g where g.xl =?1 and g.lpName = ?2 and g.lpNo = ?3 and lpType =?4 and isCancel = 0")
  43 + List<GuideboardInfo> validateLp(Line xl,String lpName , int lpNo,String lpType);
  44 +
40 } 45 }
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
@@ -11,6 +11,8 @@ import com.bsth.repository.StationRouteRepository; @@ -11,6 +11,8 @@ import com.bsth.repository.StationRouteRepository;
11 import com.bsth.service.StationRouteService; 11 import com.bsth.service.StationRouteService;
12 import com.bsth.util.FTPClientUtils; 12 import com.bsth.util.FTPClientUtils;
13 import com.bsth.util.PackTarGZUtils; 13 import com.bsth.util.PackTarGZUtils;
  14 +import com.bsth.util.Geo.GeoUtils;
  15 +import com.bsth.util.Geo.Point;
14 import com.bsth.util.db.DBUtils_MS; 16 import com.bsth.util.db.DBUtils_MS;
15 import com.google.common.base.Splitter; 17 import com.google.common.base.Splitter;
16 import org.springframework.beans.factory.annotation.Autowired; 18 import org.springframework.beans.factory.annotation.Autowired;
@@ -556,9 +558,15 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -556,9 +558,15 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
556 558
557 clientUtils.deleteFtpFile(url, port, username, password, remotePath, textFileName); 559 clientUtils.deleteFtpFile(url, port, username, password, remotePath, textFileName);
558 560
559 - /** 行单文件内容 @param:<objects:站点路由;lineId:线路ID>*/  
560 - String textStr = newTextFileToFTP(objects,lineId); 561 + String textStr = "";
561 562
  563 + boolean tempTag = ishxType(objects);
  564 +
  565 + if(tempTag)
  566 + textStr = hxTextFileToFtp(objects,lineId);// 环线行单文件内容
  567 + else
  568 + textStr = newTextFileToFTP(objects,lineId);/** 双向行单文件内容 @param:<objects:站点路由;lineId:线路ID>*/
  569 +
562 /*textStr = line.getName() + "\t" + "2" + "\r" + textStr;*/ 570 /*textStr = line.getName() + "\t" + "2" + "\r" + textStr;*/
563 571
564 textStr = line.getName() + " " + "2" + "\r" + textStr; 572 textStr = line.getName() + " " + "2" + "\r" + textStr;
@@ -574,9 +582,6 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -574,9 +582,6 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
574 /** 获取txt文件 */ 582 /** 获取txt文件 */
575 File textFile = clientUtils.GetFtpFile(url, port, username, password, remotePath, textFileName); 583 File textFile = clientUtils.GetFtpFile(url, port, username, password, remotePath, textFileName);
576 584
577 - /*File[] sources = new File[] {textFile};*/  
578 - //File[] sources = new File[] {textFile};  
579 -  
580 File target = new File(odlGzFileName); 585 File target = new File(odlGzFileName);
581 586
582 // 将txt文件打包 587 // 将txt文件打包
@@ -603,6 +608,24 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -603,6 +608,24 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
603 } 608 }
604 return resultMap; 609 return resultMap;
605 } 610 }
  611 + public boolean ishxType(List<Object[]> listObj) {
  612 + boolean tag = true;
  613 + String pointBStr[] = null,pointEStr[] = null;
  614 + int numzd = 0;
  615 + for(int i =0;i<listObj.size();i++) {
  616 + if(listObj.get(i)[3].equals("B") && Integer.valueOf(listObj.get(i)[8].toString())==0)
  617 + pointBStr = listObj.get(i)[2].toString().split(" ");
  618 + else if(listObj.get(i)[3].equals("E") && Integer.valueOf(listObj.get(i)[8].toString())==0)
  619 + pointEStr = listObj.get(i)[2].toString().split(" ");
  620 + if(Integer.valueOf(listObj.get(i)[8].toString())==1)
  621 + numzd++;
  622 + }
  623 + Point p1 = new Point(Double.valueOf(pointBStr[0]),Double.valueOf(pointBStr[1]));
  624 + Point p2 = new Point(Double.valueOf(pointEStr[0]),Double.valueOf(pointEStr[1]));
  625 + if(GeoUtils.getDistance(p1, p2)>100 && numzd>2)
  626 + tag = false;
  627 + return tag;
  628 + }
606 629
607 /** 630 /**
608 * @Description : TODO(形成行单文件内容) 631 * @Description : TODO(形成行单文件内容)
@@ -717,31 +740,79 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -717,31 +740,79 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
717 } 740 }
718 741
719 } 742 }
720 -  
721 - /*  
722 - String bdJWPointStr = objects.get(i)[2].toString();  
723 -  
724 - String bdJWPointA[] = bdJWPointStr.split(" ");  
725 -  
726 - Map<String, Object> pointsM = new HashMap<String,Object>();  
727 -  
728 - pointsM.put("lng", bdJWPointA[0]);  
729 -  
730 - pointsM.put("lat", bdJWPointA[1]);  
731 -  
732 - System.out.println(objects.get(i)[7].toString());  
733 -  
734 - sleepStr = sleepStr + GetFormPointOnPolylineSeleepLimit(pointsM,sobje);*/  
735 } 743 }
736 744
737 stationRStr = stationRStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr; 745 stationRStr = stationRStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr;
738 -  
739 } 746 }
740 747
741 } 748 }
742 -  
743 return stationRStr; 749 return stationRStr;
744 - 750 + }
  751 +
  752 + public String hxTextFileToFtp(List<Object[]> objects,Integer lineId) {
  753 + String restStr = "";
  754 + // windows下的文本文件换行符
  755 + //String enterStr = "\r\n";
  756 + // linux/unix下的文本文件换行符
  757 + String enterStr = "\r";
  758 + int xh = 1 ;
  759 + for(int x =0;x<2;x++) {
  760 + for(int i = 0; i<objects.size();i++) {
  761 + if(Integer.valueOf(objects.get(i)[8].toString())==0) {
  762 + // 经度
  763 + String lng = objects.get(i)[0].equals("") ? "" : objects.get(i)[0].toString();
  764 + // 纬度
  765 + String lat = objects.get(i)[1].equals("") ? "" : objects.get(i)[1].toString();
  766 + lat = "\t" + lat;
  767 + // 站点类型
  768 + String stationMakeStr = objects.get(i)[3].equals("") ? "" : objects.get(i)[3].toString();
  769 + String stationMake = "";
  770 + if(stationMakeStr.equals("E")) {
  771 + stationMake = "\t2";
  772 + }else {
  773 + stationMake ="\t1";
  774 + }
  775 + // 站点序号
  776 + // String stationNo = objects.get(i)[4].equals("") ? "" : objects.get(i)[4].toString();
  777 + String stationNo = "\t" + xh;
  778 + // 站点编码
  779 + String stationCode = objects.get(i)[5].equals("") ? "" : objects.get(i)[5].toString();
  780 + stationCode = "\t" +stationCode;
  781 + double dis = objects.get(i)[6]==null ? 0.0 : Double.parseDouble(objects.get(i)[6].toString())*1000;
  782 + String tempDistc = String.valueOf((int) dis);
  783 + // 站点距离
  784 + String staitondistance = "\t" + tempDistc;
  785 + // 站点名称
  786 + String stationName = objects.get(i)[7].equals("") ? "" : objects.get(i)[7].toString();
  787 + stationName = "\t" +stationName;
  788 + // 限速
  789 + String sleepStr = "";
  790 + // 方向
  791 + int directions = objects.get(i)[8]==null ? null : Integer.valueOf(objects.get(i)[8].toString());
  792 + /** 获取路段路由信息 @pararm:<lineId:线路ID;directions:方向> */
  793 + List<Object[]> sobje = routeRepository.sectionRouteVector(lineId,directions);
  794 + if(sobje.size()==1) {
  795 + double dsleepStr = sobje.get(0)[2] == null ? 60d : Double.valueOf(sobje.get(0)[2].toString());
  796 + sleepStr = "\t" + new DecimalFormat("0").format(dsleepStr);
  797 + }else if(sobje.size()>1){
  798 + /** 这里暂时只根据站点名称去匹配所在路段的限速值 ,如果路段名称"至"之前的地名与站点名称等同,就认为站点在路段上。 */
  799 + for(int j =0;j<sobje.size();j++) {
  800 + String sectionName = sobje.get(j)[3].toString();
  801 + String sectionNameA[] = sectionName.split("至");
  802 + if(stationName.equals(sectionNameA[0])){
  803 + /*sleepStr = sobje.get(j)[2].toString();*/
  804 + double dsleepStrt = sobje.get(0)[2] == null ? 60d : Double.valueOf(sobje.get(j)[2].toString());
  805 + sleepStr = "\t" + new DecimalFormat("0").format(dsleepStrt);
  806 + }
  807 + }
  808 + }
  809 + xh++;
  810 + restStr = restStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr;
  811 + }
  812 + }
  813 + }
  814 + System.out.println(restStr);
  815 + return restStr;
745 } 816 }
746 817
747 public String GetFormPointOnPolylineSeleepLimit(Map<String, Object> p,List<Object[]> listObjArra) { 818 public String GetFormPointOnPolylineSeleepLimit(Map<String, Object> p,List<Object[]> listObjArra) {
src/main/java/com/bsth/service/schedule/TTInfoDetailService.java
@@ -6,6 +6,7 @@ import org.apache.commons.lang3.StringUtils; @@ -6,6 +6,7 @@ import org.apache.commons.lang3.StringUtils;
6 6
7 import java.util.ArrayList; 7 import java.util.ArrayList;
8 import java.util.List; 8 import java.util.List;
  9 +import java.util.Map;
9 10
10 /** 11 /**
11 * Created by xu on 16/7/2. 12 * Created by xu on 16/7/2.
@@ -200,5 +201,5 @@ public interface TTInfoDetailService extends BService&lt;TTInfoDetail, Long&gt; { @@ -200,5 +201,5 @@ public interface TTInfoDetailService extends BService&lt;TTInfoDetail, Long&gt; {
200 // TODO:这个方法可以用通用方法解决,以后改 201 // TODO:这个方法可以用通用方法解决,以后改
201 List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId); 202 List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId);
202 203
203 - 204 + Map<String, Object> skbDetailMxSave(Map<String, Object> map);
204 } 205 }
src/main/java/com/bsth/service/schedule/impl/TTInfoDetailServiceImpl.java
1 package com.bsth.service.schedule.impl; 1 package com.bsth.service.schedule.impl;
2 2
  3 +import com.alibaba.fastjson.JSONArray;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.bsth.common.ResponseCode;
3 import com.bsth.entity.CarPark; 6 import com.bsth.entity.CarPark;
  7 +import com.bsth.entity.Line;
4 import com.bsth.entity.LineInformation; 8 import com.bsth.entity.LineInformation;
5 import com.bsth.entity.StationRoute; 9 import com.bsth.entity.StationRoute;
6 import com.bsth.entity.schedule.GuideboardInfo; 10 import com.bsth.entity.schedule.GuideboardInfo;
7 import com.bsth.entity.schedule.TTInfoDetail; 11 import com.bsth.entity.schedule.TTInfoDetail;
  12 +import com.bsth.repository.CarParkRepository;
  13 +import com.bsth.repository.LineRepository;
  14 +import com.bsth.repository.StationRepository;
  15 +import com.bsth.repository.schedule.GuideboardInfoRepository;
8 import com.bsth.repository.schedule.TTInfoDetailRepository; 16 import com.bsth.repository.schedule.TTInfoDetailRepository;
  17 +import com.bsth.repository.schedule.TTInfoRepository;
9 import com.bsth.service.CarParkService; 18 import com.bsth.service.CarParkService;
10 import com.bsth.service.LineInformationService; 19 import com.bsth.service.LineInformationService;
11 import com.bsth.service.StationRouteService; 20 import com.bsth.service.StationRouteService;
@@ -58,7 +67,16 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -58,7 +67,16 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
58 private TTInfoDetailRepository ttInfoDetailRepository; 67 private TTInfoDetailRepository ttInfoDetailRepository;
59 @Autowired 68 @Autowired
60 private DataToolsProperties dataToolsProperties; 69 private DataToolsProperties dataToolsProperties;
61 - 70 + @Autowired
  71 + private LineRepository lineRepository;
  72 + @Autowired
  73 + private TTInfoRepository infoRepository;
  74 + @Autowired
  75 + private StationRepository staRepository;
  76 + @Autowired
  77 + private CarParkRepository carParkRepository;
  78 + @Autowired
  79 + private GuideboardInfoRepository guideboardInfoRepository;
62 @Autowired 80 @Autowired
63 @Qualifier(value = "dataToolsServiceImpl") 81 @Qualifier(value = "dataToolsServiceImpl")
64 private DataToolsService dataToolsService; 82 private DataToolsService dataToolsService;
@@ -512,5 +530,84 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -512,5 +530,84 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
512 public List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId) { 530 public List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId) {
513 return ttInfoDetailRepository.findBcdetails(xlId, ttinfoId, lpId); 531 return ttInfoDetailRepository.findBcdetails(xlId, ttinfoId, lpId);
514 } 532 }
515 - 533 +
  534 + @Override
  535 + public Map<String, Object> skbDetailMxSave(Map<String, Object> map) {
  536 + Map<String, Object> rs_m = new HashMap<String,Object>();
  537 + try {
  538 + String d = map.get("d") == null ? null : map.get("d").toString();
  539 + if(d!=null)
  540 + ttInfoDetailRepository.save(jsonArrayToListEntity(d));
  541 + } catch (Exception e) {
  542 + e.printStackTrace();
  543 + rs_m.put("status", ResponseCode.ERROR);
  544 + }
  545 + rs_m.put("status", ResponseCode.SUCCESS);
  546 + return rs_m;
  547 + }
  548 +
  549 + public List<TTInfoDetail> jsonArrayToListEntity(String jsonStr) throws Exception {
  550 + List<TTInfoDetail> listTd = new ArrayList<TTInfoDetail>();
  551 + JSONArray jsonArray = JSONArray.parseArray(jsonStr);
  552 + for(int i =0; i<jsonArray.size();i++) {
  553 + JSONObject jsonObj = jsonArray.getJSONObject(i);
  554 + if(jsonObj.getString("bcType").equals("bd") || jsonObj.getString("bcType").equals("lc") || jsonObj.getString("bcType").equals("cf"))
  555 + continue;
  556 + listTd.add(objToEntity(jsonObj));
  557 + }
  558 + return listTd;
  559 + }
  560 +
  561 + public TTInfoDetail objToEntity(JSONObject obj) throws Exception {
  562 + TTInfoDetail td = new TTInfoDetail();
  563 + Line xl = lineRepository.findOne(Integer.parseInt(obj.getString("xl")));
  564 + td.setXl(xl);
  565 + td.setTtinfo(obj.getString("ttinfo") == null ? null : infoRepository.findOne(Long.parseLong(obj.getString("ttinfo"))));
  566 + td.setLp(getLp(xl,obj.getString("lp"),Integer.parseInt(obj.getString("lp")),obj.getString("lpType")));
  567 + td.setFcno(Integer.parseInt(obj.getString("fcno")));
  568 + td.setXlDir(dirToCod(obj.get("xlDir").toString()));
  569 + td.setQdz( obj.getString("qdz") ==null? null : staRepository.findOne(Integer.parseInt(obj.getString("qdz"))));
  570 + td.setZdz(obj.getString("zdz") ==null ? null :staRepository.findOne(Integer.parseInt(obj.getString("zdz"))));
  571 + td.setTcc(carParkRepository.findOne(Integer.parseInt(obj.getString("tcc"))));
  572 + td.setFcsj(obj.getString("fcsj"));
  573 + td.setBcs(Integer.parseInt(obj.getString("bcs")));
  574 + td.setJhlc(Double.parseDouble(obj.getString("jhlc")));
  575 + td.setBcsj(Integer.parseInt(obj.getString("bcsj")));
  576 + td.setBcType(obj.getString("bcType"));
  577 + td.setIsFB(false);
  578 + td.setIsSwitchXl(false);
  579 + td.setSwitchXl(null);
  580 + td.setSwitchXlDesc(null);
  581 + td.setRemark(null);
  582 + td.setCreateBy(null);
  583 + td.setUpdateBy(null);
  584 + return td;
  585 + }
  586 +
  587 + public GuideboardInfo getLp(Line xl,String name, int code, String lpType) throws Exception {
  588 + GuideboardInfo entity = new GuideboardInfo();
  589 + List<GuideboardInfo> lgi = guideboardInfoRepository.validateLp(xl, name, code,lpType);
  590 + if(lgi.size()>0) {
  591 + entity = lgi.get(0);
  592 + }else{
  593 + entity.setXl(xl);
  594 + entity.setLpNo(code);
  595 + entity.setLpName(name);
  596 + entity.setLpType(lpType);
  597 + entity.setIsCancel(false);
  598 + entity.setCreateBy(null);
  599 + entity.setUpdateBy(null);
  600 + guideboardInfoRepository.save(entity);
  601 + }
  602 + return entity;
  603 + }
  604 +
  605 + public String dirToCod(String str) throws Exception {
  606 + String c = "";
  607 + if(str.equals("relationshipGraph-up"))
  608 + c = "0";
  609 + else if(str.equals("relationshipGraph-down"))
  610 + c = "1";
  611 + return c;
  612 + }
516 } 613 }
src/main/java/com/bsth/util/Geo/SHCJ2BDJW.java
@@ -27,9 +27,11 @@ public class SHCJ2BDJW { @@ -27,9 +27,11 @@ public class SHCJ2BDJW {
27 27
28 /*String sqlSelect = "SELECT b.SHAPESTRING as SHAPE , b.id as ID FROM jjwgps_t_gjldb b where SHAPESTRING is not null order by b.ldbh asc ";*/ 28 /*String sqlSelect = "SELECT b.SHAPESTRING as SHAPE , b.id as ID FROM jjwgps_t_gjldb b where SHAPESTRING is not null order by b.ldbh asc ";*/
29 /*String sqlSelect = "select s.id,s.descriptions from bsth_c_station s order by s.id asc ";*/ 29 /*String sqlSelect = "select s.id,s.descriptions from bsth_c_station s order by s.id asc ";*/
30 - String sqlSelect = "SELECT s.id,s.descriptions FROM bsth_c_section s order by s.id asc "; 30 + String sqlSelect = "select s.id,s.x,s.y from bsth_c_station s where id >=26882 order by s.id asc";
  31 + /*String sqlSelect = "SELECT s.id,s.descriptions FROM bsth_c_section s order by s.id asc ";*/
31 32
32 - String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ST_GeomFromText(?) , bsection_vector=ST_GeomFromText(?) , gsection_vector=ST_GeomFromText(?) where id = ?"; 33 + /*String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ST_GeomFromText(?) , bsection_vector=ST_GeomFromText(?) , gsection_vector=ST_GeomFromText(?) where id = ?";*/
  34 + String sqlUpdate = "UPDATE bsth_c_station SET b_jwpoints= ? , g_lonx=? , g_laty=? where id = ?";
33 35
34 List<Map<String, Object>> list = new ArrayList<>(); 36 List<Map<String, Object>> list = new ArrayList<>();
35 37
@@ -44,8 +46,9 @@ public class SHCJ2BDJW { @@ -44,8 +46,9 @@ public class SHCJ2BDJW {
44 46
45 Map<String, Object> map = new HashMap<String, Object>(); 47 Map<String, Object> map = new HashMap<String, Object>();
46 48
47 - map.put("descriptions", rs.getString("descriptions"));  
48 - 49 + /*map.put("descriptions", rs.getString("descriptions"));*/
  50 + map.put("x", rs.getString("x"));
  51 + map.put("y", rs.getString("y"));
49 map.put("id", rs.getInt("id")); 52 map.put("id", rs.getInt("id"));
50 53
51 list.add(map); 54 list.add(map);
@@ -55,10 +58,21 @@ public class SHCJ2BDJW { @@ -55,10 +58,21 @@ public class SHCJ2BDJW {
55 58
56 Map<String, Object> temp = list.get(i); 59 Map<String, Object> temp = list.get(i);
57 // POINT (8229.30921617 -933.16425265) 60 // POINT (8229.30921617 -933.16425265)
58 - String lineString = temp.get("descriptions").toString();  
59 - int id = Integer.parseInt(temp.get("id").toString()); 61 + //String lineString = temp.get("descriptions").toString();
  62 +
  63 + Double lng = Double.parseDouble(temp.get("x").toString());
  64 + Double lat = Double.parseDouble(temp.get("y").toString());
  65 + Map map_2 = JWDUtil.ConvertSHToJW(lng,lat);
60 66
61 - String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(", "); 67 + String b_jwpoints = "";
  68 + Float g_lonx=0.0f,g_laty=0.0f;
  69 + int id = Integer.parseInt(temp.get("id").toString());
  70 + g_lonx = Float.parseFloat(map_2.get("x").toString());
  71 + g_laty = Float.parseFloat(map_2.get("y").toString());
  72 + Location location = TransGPS.LocationMake(Float.parseFloat(map_2.get("x").toString()), Float.parseFloat(map_2.get("y").toString()));
  73 + location = TransGPS.bd_encrypt(TransGPS.transformFromWGSToGCJ(location));
  74 + b_jwpoints = (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624);
  75 + //String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(", ");
62 /*String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(" "); 76 /*String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(" ");
63 String b_jwpoints = ""; 77 String b_jwpoints = "";
64 Float g_lonx=0.0f,g_laty=0.0f,x=0.0f,y=0.0f;*/ 78 Float g_lonx=0.0f,g_laty=0.0f,x=0.0f,y=0.0f;*/
@@ -76,7 +90,7 @@ public class SHCJ2BDJW { @@ -76,7 +90,7 @@ public class SHCJ2BDJW {
76 b_jwpoints = (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624);*/ 90 b_jwpoints = (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624);*/
77 //b_jwpoints = (location.getLng()) + " " + (location.getLat()); 91 //b_jwpoints = (location.getLng()) + " " + (location.getLat());
78 92
79 - String csection_vector="",bsection_vector="",gsection_vector=""; 93 + /* String csection_vector="",bsection_vector="",gsection_vector="";
80 94
81 for(int k =0;k<arrayP.length;k++) { 95 for(int k =0;k<arrayP.length;k++) {
82 96
@@ -103,20 +117,20 @@ public class SHCJ2BDJW { @@ -103,20 +117,20 @@ public class SHCJ2BDJW {
103 } 117 }
104 118
105 119
106 - } 120 + }*/
107 121
108 ps = null; 122 ps = null;
109 - bsection_vector = "LINESTRING(" + bsection_vector +")";  
110 - csection_vector = "LINESTRING(" + csection_vector +")";  
111 - gsection_vector = "LINESTRING(" + gsection_vector +")"; 123 + //bsection_vector = "LINESTRING(" + bsection_vector +")";
  124 + //csection_vector = "LINESTRING(" + csection_vector +")";
  125 + //gsection_vector = "LINESTRING(" + gsection_vector +")";
112 126
113 ps = conn.prepareStatement(sqlUpdate); 127 ps = conn.prepareStatement(sqlUpdate);
114 128
115 // String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ? , bsection_vector=? , gsection_vector=? where id = ?"; 129 // String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ? , bsection_vector=? , gsection_vector=? where id = ?";
116 - ps.setString(1, csection_vector);  
117 - ps.setString(2, bsection_vector);  
118 - ps.setString(3, gsection_vector);  
119 - ps.setInt(4, id); 130 + //ps.setString(1, csection_vector);
  131 + //ps.setString(2, bsection_vector);
  132 + //ps.setString(3, gsection_vector);
  133 + //ps.setInt(4, id);
120 134
121 //int stauts = ps.executeUpdate(); 135 //int stauts = ps.executeUpdate();
122 // String sqlUpdate = "UPDATE bsth_c_station SET b_jwpoints = ?1 , g_lonx=?2 , g_laty=?3 , x = ?4 , y = ?5 where id = ?6"; 136 // String sqlUpdate = "UPDATE bsth_c_station SET b_jwpoints = ?1 , g_lonx=?2 , g_laty=?3 , x = ?4 , y = ?5 where id = ?6";
@@ -126,6 +140,11 @@ public class SHCJ2BDJW { @@ -126,6 +140,11 @@ public class SHCJ2BDJW {
126 ps.setFloat(4, x); 140 ps.setFloat(4, x);
127 ps.setFloat(5, y); 141 ps.setFloat(5, y);
128 ps.setFloat(6, id);*/ 142 ps.setFloat(6, id);*/
  143 +
  144 + ps.setString(1, b_jwpoints);
  145 + ps.setFloat(2, g_lonx);
  146 + ps.setFloat(3, g_laty);
  147 + ps.setFloat(4, id);
129 int stauts = ps.executeUpdate(); 148 int stauts = ps.executeUpdate();
130 System.out.println(stauts); 149 System.out.println(stauts);
131 } 150 }
src/main/resources/static/pages/base/station/edit_select.html
@@ -177,7 +177,7 @@ $(&#39;#editPositions_select_mobal&#39;).on(&#39;editSelectMobal_show&#39;, function(e, map,drm, @@ -177,7 +177,7 @@ $(&#39;#editPositions_select_mobal&#39;).on(&#39;editSelectMobal_show&#39;, function(e, map,drm,
177 map.clearMarkAndOverlays(); 177 map.clearMarkAndOverlays();
178 178
179 // 打开绘制工具 179 // 打开绘制工具
180 - PositionsDrawingManagerObj.openDrawingManager(); 180 + drm.openDrawingManager();
181 181
182 // 根据站点位置在地图定位 182 // 根据站点位置在地图定位
183 map.localtionPoint(editStationName); 183 map.localtionPoint(editStationName);
src/main/resources/static/pages/control/lineallot/allot.html
@@ -337,8 +337,8 @@ @@ -337,8 +337,8 @@
337 //alert('进入线调'); 337 //alert('进入线调');
338 layer.closeAll(); 338 layer.closeAll();
339 //loadPage('/pages/control/line/index.html'); 339 //loadPage('/pages/control/line/index.html');
340 - //window.location.href = "/real_control/v2";  
341 - window.open("/real_control/v2"); 340 + window.location.href = "/real_control/v2";
  341 + //window.open("/real_control/v2");
342 }); 342 });
343 }); 343 });
344 344
src/main/resources/static/real_control_v2/css/electron.css
1 -/** 在electron 环境下特定的css样式 */  
2 -  
3 -.north{  
4 - height: 160px !important;  
5 -}  
6 -  
7 -.north-toolbar{  
8 - width: 582px !important;  
9 -}  
10 -  
11 -.north>div.uk-grid.uk-grid-match{  
12 - margin-top: 35px;  
13 -}  
14 -  
15 -  
16 -.main-container {  
17 - height: calc(100% - 160px) !important;  
18 -}  
19 -  
20 -.uk-navbar-content .icon-item{  
21 - display: inline-block;  
22 - margin: 6px 3px 7px 0;  
23 - font-size: 16px;  
24 - vertical-align: middle;  
25 - padding: 5px;  
26 - cursor: pointer;  
27 -}  
28 -  
29 -.uk-navbar-content .icon-item:hover{  
30 - box-shadow: 0 4px 7px 0 rgba(0, 0, 0, 0.2), 0 3px 2px 0 rgba(0, 0, 0, 0.19);  
31 -}  
32 - 1 +/** 在electron 环境下特定的css样式 */
  2 +
  3 +.north{
  4 + height: 160px !important;
  5 +}
  6 +
  7 +.north-toolbar{
  8 + width: 662px !important;
  9 +}
  10 +
  11 +.north>div.uk-grid.uk-grid-match{
  12 + margin-top: 35px;
  13 +}
  14 +
  15 +
  16 +.main-container {
  17 + height: calc(100% - 160px) !important;
  18 +}
  19 +
  20 +.uk-navbar-content .icon-item{
  21 + display: inline-block;
  22 + margin: 6px 3px 7px 0;
  23 + font-size: 16px;
  24 + vertical-align: middle;
  25 + padding: 5px;
  26 + cursor: pointer;
  27 +}
  28 +
  29 +.uk-navbar-content .icon-item:hover{
  30 + box-shadow: 0 4px 7px 0 rgba(0, 0, 0, 0.2), 0 3px 2px 0 rgba(0, 0, 0, 0.19);
  31 +}
33 \ No newline at end of file 32 \ No newline at end of file
src/main/resources/static/real_control_v2/css/line_schedule.css
@@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
13 13
14 .line_schedule div.uk-width-1-6, .line_schedule div.uk-width-1-2 { 14 .line_schedule div.uk-width-1-6, .line_schedule div.uk-width-1-2 {
15 padding: 0 2px 2px 2px; 15 padding: 0 2px 2px 2px;
  16 + height: 100%;
16 } 17 }
17 18
18 .line_schedule .footer-chart { 19 .line_schedule .footer-chart {
src/main/resources/static/real_control_v2/css/north.css
@@ -5,8 +5,8 @@ @@ -5,8 +5,8 @@
5 } 5 }
6 6
7 .north.main { 7 .north.main {
8 - /*background: linear-gradient(to right, #082F4A, #125688, #0a3f64);*/  
9 - background-image: url('/assets/img/title-bg.jpg'); 8 + background: linear-gradient(to right, #082F4A, #125688, #0a3f64);
  9 + /*background-image: url('/assets/img/title-bg.jpg');*/
10 } 10 }
11 11
12 .north.monitor { 12 .north.monitor {
src/main/resources/static/real_control_v2/electron/lineSelect.html
1 -<!DOCTYPE html>  
2 -<html lang="zh">  
3 -<head>  
4 - <meta name="renderer" content="webkit"/>  
5 - <meta charset="utf-8"/>  
6 - <title>选择线路</title>  
7 - <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/css/uikit.gradient.min.css"/>  
8 - <link rel="stylesheet"  
9 - href="/real_control_v2/assets/plugins/uikit-2.27.1/components/form-advanced.gradient.min.css"/>  
10 -  
11 - <link rel="stylesheet"  
12 - href="/real_control_v2/assets/plugins/uikit-2.27.1/components/sortable.gradient.min.css"/>  
13 -  
14 - <style type="text/css">  
15 -  
16 - ::-webkit-scrollbar {  
17 - width: 16px;  
18 - height: 16px;  
19 - }  
20 -  
21 - ::-webkit-scrollbar-track, ::-webkit-scrollbar-thumb {  
22 - border-radius: 999px;  
23 - border: 5px solid transparent;  
24 - }  
25 -  
26 - ::-webkit-scrollbar-track {  
27 - box-shadow: 1px 1px 5px rgba(0, 0, 0, .2) inset;  
28 - }  
29 -  
30 - ::-webkit-scrollbar-thumb {  
31 - min-height: 20px;  
32 - background-clip: content-box;  
33 - box-shadow: 0 0 0 5px rgba(0, 0, 0, .2) inset;  
34 - }  
35 -  
36 - ::-webkit-scrollbar-corner {  
37 - background: transparent;  
38 - }  
39 -  
40 - input[type="checkbox"] {  
41 - vertical-align: bottom;  
42 - }  
43 -  
44 - .line-btn-list {  
45 - padding: 0 15px 15px 15px;  
46 - height: 180px;  
47 - overflow: auto;  
48 - }  
49 -  
50 - .line-btn-list-selected {  
51 - padding: 0 15px 15px 15px;  
52 - height: 35px;  
53 - overflow: auto;  
54 - }  
55 -  
56 - .line-btn-list span.line-item {  
57 - border: 1px solid #e0dfdf;  
58 - padding: 4px 9px;  
59 - margin: 5px;  
60 - -webkit-user-select: none;  
61 - user-select: none;  
62 - display: inline-block;  
63 - cursor: default;  
64 - transition: all .1s;  
65 - }  
66 -  
67 - .line-btn-list span.line-item.active {  
68 - background: #5E96D2;  
69 - border: 1px solid #5E96D2;  
70 - box-shadow: 0px 3px 4px 0 rgba(111, 172, 237, 0.3), 0px 3px 5px 0 rgba(111, 172, 237, 0.3);  
71 - color: #ffffff;  
72 - }  
73 -  
74 - input.i-cbox[type=checkbox] {  
75 - vertical-align: middle;  
76 - margin-top: -3px;  
77 - }  
78 -  
79 - .line-btn-list span.line-item.active input.i-cbox[type=checkbox] {  
80 - border: 0;  
81 - }  
82 -  
83 - .line-btn-list span.line-item.active input.i-cbox[type=checkbox]:checked:before {  
84 - color: #86f78b;  
85 - }  
86 -  
87 - .uk-panel-title {  
88 - text-indent: 15px;  
89 - }  
90 -  
91 - .line-btn-list-selected span.line-item {  
92 - padding: 4px 9px;  
93 - margin: 2px;  
94 - color: #fff;  
95 - background: #5e96d2;  
96 - box-shadow: 0px 3px 4px 0 rgba(111, 172, 237, 0.3), 0px 3px 5px 0 rgba(111, 172, 237, 0.3);  
97 - user-select: none;  
98 - display: inline-block;  
99 - cursor: move;  
100 - border-radius: 5px;  
101 - }  
102 -  
103 - #lineSearchInput {  
104 - width: 300px;  
105 - box-shadow: 0px 3px 4px 0 rgba(217, 226, 235, 0.3), 0px 3px 5px 0 rgba(200, 217, 236, 0.3);  
106 - height: 35px;  
107 - }  
108 -  
109 - #submitBtn{  
110 - border-radius: 0;  
111 - border-color: #00aff2;  
112 - transition: all .3s;  
113 - }  
114 -  
115 - #submitBtn:disabled{  
116 - border-color: #ebe9e9;  
117 - }  
118 - </style>  
119 -</head>  
120 -  
121 -<body>  
122 -<div class="wrapper ng-scope">  
123 - <div class="dialog dialog-shadow">  
124 - <form class="uk-form" style="width: 100%;">  
125 - <div class="uk-grid">  
126 -  
127 - <div class="uk-width-medium-1-1">  
128 - <div class="uk-panel uk-panel-divider">  
129 - <div class="uk-form-row">  
130 - <div class="uk-form-icon" style="margin: 15px;">  
131 - <i class="uk-icon-search"></i>  
132 - <input type="text" placeholder="搜索线路..." id="lineSearchInput">  
133 - </div>  
134 - </div>  
135 - <h3 class="uk-panel-title">待选择的线路</h3>  
136 - <div class="line-btn-list">  
137 - </div>  
138 - </div>  
139 - <div class="uk-panel uk-panel-divider">  
140 - <h3 class="uk-panel-title">已选择的线路</h3>  
141 - <div class="line-btn-list-selected uk-sortable" data-uk-sortable data-uk-observe>  
142 - </div>  
143 - <button disabled class="uk-button uk-button-primary uk-button-large uk-width-1-1" type="button" id="submitBtn">确定  
144 - </button>  
145 - </div>  
146 - </div>  
147 -  
148 - </div>  
149 - </form>  
150 -  
151 - </div>  
152 -</div>  
153 -  
154 -<script>  
155 - delete window.exports;  
156 - delete window.module;  
157 -</script>  
158 -<!-- jQuery -->  
159 -<script src="/metronic_v4.5.4/plugins/jquery.min.js"></script>  
160 -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/uikit.min.js"></script>  
161 -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/sortable.min.js"></script>  
162 -<script src="/assets/plugins/pinyin.js"></script>  
163 -<script src="/real_control_v2/js/common.js"></script>  
164 -  
165 -<!-- EventProxy -->  
166 -<script src="/assets/js/eventproxy.js"></script>  
167 -<script>  
168 - if (typeof(process) == 'undefined' || !process) {  
169 - alert('不支持当前环境!!');  
170 - }  
171 -  
172 - const ipcMain = require('electron').ipcRenderer  
173 -  
174 - !function () {  
175 - var all = {};  
176 - //线路编码映射  
177 - var lineIdMap = {};  
178 - var storage = window.localStorage;  
179 -  
180 - var auth;  
181 - gb_common.$get('/line/all', {destroy_eq: 0}, function (list) {  
182 -  
183 - //用户分配的线路  
184 - $.get('/realControAuthority/findByCurrentUser', function (t) {  
185 - auth = t;  
186 - var newArray = [], authArray = t.lineCodeStr.split(',');  
187 -  
188 - $.each(list, function () {  
189 - if (this.lineCode && authArray.indexOf(this.lineCode) != -1) {  
190 - newArray.push(this);  
191 - }  
192 - });  
193 -  
194 - var htmlStr = '';  
195 - $.each(newArray, function () {  
196 - htmlStr += '<span class="line-item" data-name="' + this.name + '" data-code="' + this.lineCode + '">' +  
197 - ' <input class="i-cbox" type="checkbox"> ' + this.name +  
198 - '</span>';  
199 -  
200 - //拼音首字母  
201 - this.camelChars = pinyin.getCamelChars(this.name);  
202 - //全拼  
203 - this.fullChars = pinyin.getFullChars(this.name).toUpperCase();  
204 -  
205 - lineIdMap[this.lineCode] = this;  
206 - });  
207 - all = list;  
208 -  
209 - $('.line-btn-list').html(htmlStr);  
210 -  
211 - $('.line-btn-list .line-item').on('click', function () {  
212 - var box = $(this).find('input[type=checkbox]')[0];  
213 - if ($(this).hasClass('active')) {  
214 - $(this).removeClass('active');  
215 - box.checked = false;  
216 -  
217 - removeSelected(this);  
218 - }  
219 - else {  
220 - $(this).addClass('active');  
221 - box.checked = true;  
222 -  
223 - addSelected(this);  
224 - }  
225 - });  
226 - });  
227 - });  
228 -  
229 -  
230 - $('#lineSearchInput').on('input', function () {  
231 - var t = $(this).val().toUpperCase();  
232 - if (!t) {  
233 - $('.line-btn-list .line-item').show();  
234 - return;  
235 - }  
236 -  
237 - var rs = [];  
238 - $.each(all, function () {  
239 - if (this.camelChars.indexOf(t) != -1  
240 - || this.fullChars.indexOf(t) != -1  
241 - || this.name.indexOf(t) != -1) {  
242 - rs.push(this.lineCode);  
243 - }  
244 - });  
245 -  
246 - $('.line-btn-list .line-item').hide().each(function () {  
247 - var code = $(this).data('code') + '';  
248 - if (rs.indexOf(code) != -1)  
249 - $(this).show();  
250 - });  
251 - });  
252 -  
253 - function addSelected(that) {  
254 - $('.line-btn-list-selected').append('<span class="line-item" data-code="' + $(that).data('code') + '">' + $(that).data('name') + '</span>');  
255 -  
256 - $('#submitBtn').removeAttr('disabled');  
257 - }  
258 -  
259 - function removeSelected(that) {  
260 - var code = $(that).data('code');  
261 - $('.line-btn-list-selected .line-item[data-code='+code+']').remove();  
262 -  
263 - if($('.line-btn-list-selected .line-item').length == 0){  
264 - $('#submitBtn').attr('disabled', 'disabled');  
265 - }  
266 - }  
267 -  
268 - function error(rs) {  
269 - return rs.status == 'ERROR' || rs.status == 500;  
270 - }  
271 -  
272 - /**  
273 - * 确定  
274 - */  
275 - $('#submitBtn').on('click', function () {  
276 - var ep = EventProxy.create('car2DeviceId', 'routes', 'checkLineConfig', function () {  
277 - ipcMain.send('webPageGotoControl');  
278 - });  
279 -  
280 - var lsData = [], codeStr='', code;  
281 - $('.line-btn-list-selected .line-item').each(function () {  
282 - code = $(this).data('code');  
283 - lsData.push(lineIdMap[code]);  
284 - codeStr += (code + ',');  
285 - });  
286 - //将选择的线路信息写入localstorage  
287 - storage.setItem('lineControlItems', JSON.stringify(lsData));  
288 -  
289 - //缓存车辆自编号和设备号对照  
290 - $.get('/gps/Car2DeviceId', function (rs) {  
291 - storage.setItem('car2DeviceId', JSON.stringify(rs));  
292 - ep.emitLater('car2DeviceId');  
293 - });  
294 -  
295 - //监控模式还是主调模式  
296 - storage.setItem('operationMode', auth.pattern);  
297 -  
298 - //缓存线路路由  
299 - codeStr = codeStr.substr(0, codeStr.length - 1);  
300 - $.get('/realMap/multiRouteByLine', {codeStr: codeStr}, function (rs) {  
301 - for(var key in rs){  
302 - storage.setItem(key, JSON.stringify(rs[key]));  
303 - }  
304 - ep.emitLater('routes');  
305 - });  
306 -  
307 - //检查线路配置信息  
308 - $.ajax({  
309 - url: '/lineConfig/check',  
310 - traditional: true,  
311 - data: {codeArray: codeStr.split(',')},  
312 - method: 'POST',  
313 - success: function (rs) {  
314 - if (rs.status == 0){  
315 - ep.emitLater('checkLineConfig');  
316 - }  
317 - else if (rs.status == 1){  
318 - initLineConfig(rs.not, function () {  
319 - ep.emitLater('checkLineConfig');  
320 - });  
321 - }  
322 - }  
323 - });  
324 - });  
325 -  
326 -  
327 - function initLineConfig(arr, cb) {  
328 - var i = 0;  
329 - (function () {  
330 - if (i >= arr.length) {  
331 - cb && cb();  
332 - return;  
333 - }  
334 - var f = arguments.callee  
335 - , lineCode = arr[i];  
336 -  
337 - $.post('/lineConfig/init/' + lineCode, function (rs) {  
338 - if (rs == 1) {  
339 - i++;  
340 - f();  
341 - }  
342 - });  
343 - })();  
344 - }  
345 - }();  
346 -</script>  
347 -</body> 1 +<!DOCTYPE html>
  2 +<html lang="zh">
  3 +<head>
  4 + <meta name="renderer" content="webkit"/>
  5 + <meta charset="utf-8"/>
  6 + <title>选择线路</title>
  7 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/css/uikit.gradient.min.css"/>
  8 + <link rel="stylesheet"
  9 + href="/real_control_v2/assets/plugins/uikit-2.27.1/components/form-advanced.gradient.min.css"/>
  10 +
  11 + <link rel="stylesheet"
  12 + href="/real_control_v2/assets/plugins/uikit-2.27.1/components/sortable.gradient.min.css"/>
  13 +
  14 + <style type="text/css">
  15 + html, body {
  16 + background: transparent;
  17 + }
  18 +
  19 + body {
  20 + overflow: hidden;
  21 + padding: 3px;
  22 + }
  23 +
  24 + .wrapper.ng-scope {
  25 + box-shadow: 1px 0px 20px 0 rgba(18, 86, 136, 0.41), 1px 3px 20px 0 rgba(18, 86, 136, 0.45);
  26 + background-position: -15px -18px;
  27 + border: 1px solid #125688;
  28 + border-radius: 5px 5px 0 0;
  29 + background: #fff;
  30 + }
  31 +
  32 + ::-webkit-scrollbar {
  33 + width: 16px;
  34 + height: 16px;
  35 + }
  36 +
  37 + ::-webkit-scrollbar-track, ::-webkit-scrollbar-thumb {
  38 + border-radius: 999px;
  39 + border: 5px solid transparent;
  40 + }
  41 +
  42 + ::-webkit-scrollbar-track {
  43 + box-shadow: 1px 1px 5px rgba(0, 0, 0, .2) inset;
  44 + }
  45 +
  46 + ::-webkit-scrollbar-thumb {
  47 + min-height: 20px;
  48 + background-clip: content-box;
  49 + box-shadow: 0 0 0 5px rgba(0, 0, 0, .2) inset;
  50 + }
  51 +
  52 + ::-webkit-scrollbar-corner {
  53 + background: transparent;
  54 + }
  55 +
  56 + input[type="checkbox"] {
  57 + vertical-align: bottom;
  58 + }
  59 +
  60 + .line-btn-list {
  61 + padding: 0 15px 15px 15px;
  62 + height: 180px;
  63 + overflow: auto;
  64 + }
  65 +
  66 + .line-btn-list-selected {
  67 + padding: 0 15px 15px 15px;
  68 + height: 35px;
  69 + overflow: auto;
  70 + }
  71 +
  72 + .line-btn-list span.line-item {
  73 + border: 1px solid #e0dfdf;
  74 + padding: 4px 9px;
  75 + margin: 5px;
  76 + -webkit-user-select: none;
  77 + user-select: none;
  78 + display: inline-block;
  79 + cursor: default;
  80 + transition: all .1s;
  81 + }
  82 +
  83 + .line-btn-list span.line-item.active {
  84 + background: #5E96D2;
  85 + border: 1px solid #5E96D2;
  86 + box-shadow: 0px 3px 4px 0 rgba(111, 172, 237, 0.3), 0px 3px 5px 0 rgba(111, 172, 237, 0.3);
  87 + color: #ffffff;
  88 + }
  89 +
  90 + input.i-cbox[type=checkbox] {
  91 + vertical-align: middle;
  92 + margin-top: -3px;
  93 + }
  94 +
  95 + .line-btn-list span.line-item.active input.i-cbox[type=checkbox] {
  96 + border: 0;
  97 + }
  98 +
  99 + .line-btn-list span.line-item.active input.i-cbox[type=checkbox]:checked:before {
  100 + color: #86f78b;
  101 + }
  102 +
  103 + .uk-panel-title {
  104 + text-indent: 15px;
  105 + }
  106 +
  107 + .line-btn-list-selected span.line-item {
  108 + padding: 4px 9px;
  109 + margin: 2px;
  110 + color: #fff;
  111 + background: #5e96d2;
  112 + box-shadow: 0px 3px 4px 0 rgba(111, 172, 237, 0.3), 0px 3px 5px 0 rgba(111, 172, 237, 0.3);
  113 + user-select: none;
  114 + display: inline-block;
  115 + cursor: move;
  116 + border-radius: 5px;
  117 + }
  118 +
  119 + #lineSearchInput {
  120 + width: 300px;
  121 + box-shadow: 0px 3px 4px 0 rgba(217, 226, 235, 0.3), 0px 3px 5px 0 rgba(200, 217, 236, 0.3);
  122 + height: 35px;
  123 + }
  124 +
  125 + #submitBtn {
  126 + border-radius: 0;
  127 + border-color: #00aff2;
  128 + transition: all .3s;
  129 + }
  130 +
  131 + #submitBtn:disabled {
  132 + border-color: #ebe9e9;
  133 + }
  134 +
  135 + .top-tools {
  136 + height: 55px;
  137 + position: relative;
  138 + background-image: linear-gradient(to bottom, #125688, #14517b);
  139 + }
  140 +
  141 + .icon-span {
  142 + padding: 6px 13px 10px 13px;
  143 + cursor: default;
  144 + -webkit-app-region: no-drag;
  145 + }
  146 +
  147 + .icon-span:hover {
  148 + background: rgba(255, 255, 255, 0.29);
  149 + border-radius: 3px;
  150 + }
  151 +
  152 + .icon-span.close-icon:hover {
  153 + background: rgb(255, 118, 118);
  154 + }
  155 +
  156 + div.title {
  157 + font-size: 18px;
  158 + color: #e1e0e0;
  159 + text-indent: 15px;
  160 + padding-top: 15px;
  161 + }
  162 + </style>
  163 +</head>
  164 +
  165 +<body>
  166 +<div class="wrapper ng-scope">
  167 + <div class="top-tools" style="-webkit-app-region: drag">
  168 + <div class="title">
  169 + 选择线路
  170 + </div>
  171 + <div style="position: absolute;right: 5px;top: 10px;">
  172 + <span class="icon-span" id="mnavbarIconBtnMIN">
  173 + <img src="/real_control_v2/electron/imgs/minus.png">
  174 + </span>
  175 + <span class="icon-span close-icon" id="mnavbarIconBtnCLOSE">
  176 + <img src="/real_control_v2/electron/imgs/remove.png">
  177 + </span>
  178 + </div>
  179 + </div>
  180 + <div class="dialog dialog-shadow">
  181 + <form class="uk-form" style="width: 100%;">
  182 + <div class="uk-grid">
  183 +
  184 + <div class="uk-width-medium-1-1">
  185 + <div class="uk-panel uk-panel-divider">
  186 + <div class="uk-form-row">
  187 + <div class="uk-form-icon" style="margin: 15px;">
  188 + <i class="uk-icon-search"></i>
  189 + <input type="text" placeholder="搜索线路..." id="lineSearchInput">
  190 + </div>
  191 + </div>
  192 + <h3 class="uk-panel-title">待选择的线路</h3>
  193 + <div class="line-btn-list">
  194 + </div>
  195 + </div>
  196 + <div class="uk-panel uk-panel-divider">
  197 + <h3 class="uk-panel-title">已选择的线路</h3>
  198 + <div class="line-btn-list-selected uk-sortable" data-uk-sortable data-uk-observe>
  199 + </div>
  200 + <button disabled class="uk-button uk-button-primary uk-button-large uk-width-1-1" type="button"
  201 + id="submitBtn">确定
  202 + </button>
  203 + </div>
  204 + </div>
  205 +
  206 + </div>
  207 + </form>
  208 +
  209 + </div>
  210 +</div>
  211 +
  212 +<script>
  213 + delete window.exports;
  214 + delete window.module;
  215 +</script>
  216 +<!-- jQuery -->
  217 +<script src="/metronic_v4.5.4/plugins/jquery.min.js"></script>
  218 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/uikit.min.js"></script>
  219 +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/sortable.min.js"></script>
  220 +<script src="/assets/plugins/pinyin.js"></script>
  221 +<script src="/real_control_v2/js/common.js"></script>
  222 +
  223 +<!-- EventProxy -->
  224 +<script src="/assets/js/eventproxy.js"></script>
  225 +<script>
  226 + if (typeof(process) == 'undefined' || !process) {
  227 + alert('不支持当前环境!!');
  228 + }
  229 +
  230 + const ipcMain = require('electron').ipcRenderer
  231 +
  232 + !function () {
  233 + var all = {};
  234 + //线路编码映射
  235 + var lineIdMap = {};
  236 + var storage = window.localStorage;
  237 +
  238 + var auth;
  239 + gb_common.$get('/line/all', {destroy_eq: 0}, function (list) {
  240 +
  241 + //用户分配的线路
  242 + $.get('/realControAuthority/findByCurrentUser', function (t) {
  243 + auth = t;
  244 + var newArray = [], authArray = t.lineCodeStr.split(',');
  245 +
  246 + $.each(list, function () {
  247 + if (this.lineCode && authArray.indexOf(this.lineCode) != -1) {
  248 + newArray.push(this);
  249 + }
  250 + });
  251 +
  252 + var htmlStr = '';
  253 + $.each(newArray, function () {
  254 + htmlStr += '<span class="line-item" data-name="' + this.name + '" data-code="' + this.lineCode + '">' +
  255 + ' <input class="i-cbox" type="checkbox"> ' + this.name +
  256 + '</span>';
  257 +
  258 + //拼音首字母
  259 + this.camelChars = pinyin.getCamelChars(this.name);
  260 + //全拼
  261 + this.fullChars = pinyin.getFullChars(this.name).toUpperCase();
  262 +
  263 + lineIdMap[this.lineCode] = this;
  264 + });
  265 + all = list;
  266 +
  267 + $('.line-btn-list').html(htmlStr);
  268 +
  269 + $('.line-btn-list .line-item').on('click', function () {
  270 + var box = $(this).find('input[type=checkbox]')[0];
  271 + if ($(this).hasClass('active')) {
  272 + $(this).removeClass('active');
  273 + box.checked = false;
  274 +
  275 + removeSelected(this);
  276 + }
  277 + else {
  278 + $(this).addClass('active');
  279 + box.checked = true;
  280 +
  281 + addSelected(this);
  282 + }
  283 + });
  284 + });
  285 + });
  286 +
  287 +
  288 + $('#lineSearchInput').on('input', function () {
  289 + var t = $(this).val().toUpperCase();
  290 + if (!t) {
  291 + $('.line-btn-list .line-item').show();
  292 + return;
  293 + }
  294 +
  295 + var rs = [];
  296 + $.each(all, function () {
  297 + try {
  298 + if (this.camelChars.indexOf(t) != -1
  299 + || this.fullChars.indexOf(t) != -1
  300 + || this.name.indexOf(t) != -1) {
  301 + rs.push(this.lineCode);
  302 + }
  303 + } catch (e) {
  304 + }
  305 + });
  306 +
  307 + $('.line-btn-list .line-item').hide().each(function () {
  308 + var code = $(this).data('code') + '';
  309 + if (rs.indexOf(code) != -1)
  310 + $(this).show();
  311 + });
  312 + });
  313 +
  314 + function addSelected(that) {
  315 + $('.line-btn-list-selected').append('<span class="line-item" data-code="' + $(that).data('code') + '">' + $(that).data('name') + '</span>');
  316 +
  317 + $('#submitBtn').removeAttr('disabled');
  318 + }
  319 +
  320 + function removeSelected(that) {
  321 + var code = $(that).data('code');
  322 + $('.line-btn-list-selected .line-item[data-code=' + code + ']').remove();
  323 +
  324 + if ($('.line-btn-list-selected .line-item').length == 0) {
  325 + $('#submitBtn').attr('disabled', 'disabled');
  326 + }
  327 + }
  328 +
  329 + function error(rs) {
  330 + return rs.status == 'ERROR' || rs.status == 500;
  331 + }
  332 +
  333 + /**
  334 + * 确定
  335 + */
  336 + $('#submitBtn').on('click', function () {
  337 + var ep = EventProxy.create('car2DeviceId', 'routes', 'checkLineConfig', function () {
  338 + ipcMain.send('webPageGotoControl');
  339 + });
  340 +
  341 + var lsData = [], codeStr = '', code;
  342 + $('.line-btn-list-selected .line-item').each(function () {
  343 + code = $(this).data('code');
  344 + lsData.push(lineIdMap[code]);
  345 + codeStr += (code + ',');
  346 + });
  347 + //将选择的线路信息写入localstorage
  348 + storage.setItem('lineControlItems', JSON.stringify(lsData));
  349 +
  350 + //缓存车辆自编号和设备号对照
  351 + $.get('/gps/Car2DeviceId', function (rs) {
  352 + storage.setItem('car2DeviceId', JSON.stringify(rs));
  353 + ep.emitLater('car2DeviceId');
  354 + });
  355 +
  356 + //监控模式还是主调模式
  357 + storage.setItem('operationMode', auth.pattern);
  358 +
  359 + //缓存线路路由
  360 + codeStr = codeStr.substr(0, codeStr.length - 1);
  361 + $.get('/realMap/multiRouteByLine', {codeStr: codeStr}, function (rs) {
  362 + for (var key in rs) {
  363 + storage.setItem(key, JSON.stringify(rs[key]));
  364 + }
  365 + ep.emitLater('routes');
  366 + });
  367 +
  368 + //检查线路配置信息
  369 + $.ajax({
  370 + url: '/lineConfig/check',
  371 + traditional: true,
  372 + data: {codeArray: codeStr.split(',')},
  373 + method: 'POST',
  374 + success: function (rs) {
  375 + if (rs.status == 0) {
  376 + ep.emitLater('checkLineConfig');
  377 + }
  378 + else if (rs.status == 1) {
  379 + initLineConfig(rs.not, function () {
  380 + ep.emitLater('checkLineConfig');
  381 + });
  382 + }
  383 + }
  384 + });
  385 + });
  386 +
  387 +
  388 + function initLineConfig(arr, cb) {
  389 + var i = 0;
  390 + (function () {
  391 + if (i >= arr.length) {
  392 + cb && cb();
  393 + return;
  394 + }
  395 + var f = arguments.callee
  396 + , lineCode = arr[i];
  397 +
  398 + $.post('/lineConfig/init/' + lineCode, function (rs) {
  399 + if (rs == 1) {
  400 + i++;
  401 + f();
  402 + }
  403 + });
  404 + })();
  405 + }
  406 + }();
  407 +</script>
  408 +</body>
348 </html> 409 </html>
349 \ No newline at end of file 410 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/north/toolbar.html
@@ -120,11 +120,11 @@ @@ -120,11 +120,11 @@
120 </li> 120 </li>
121 {{/each}} 121 {{/each}}
122 </ul> 122 </ul>
123 - <div class="uk-navbar-content uk-navbar-flip uk-hidden-small"> 123 + <div class="uk-navbar-content uk-navbar-flip uk-hidden-small" style="padding-left: 0;">
124 <div class="icon-item" id="mnavbarIconBtnMIN" data-uk-tooltip="{pos:'bottom'}" title="最小化"> 124 <div class="icon-item" id="mnavbarIconBtnMIN" data-uk-tooltip="{pos:'bottom'}" title="最小化">
125 <img src="/real_control_v2/assets/imgs/icon/minus.png"> 125 <img src="/real_control_v2/assets/imgs/icon/minus.png">
126 </div> 126 </div>
127 - &nbsp;&nbsp; 127 + &nbsp;
128 <div class="icon-item" id="mnavbarIconBtnCLOSE" data-uk-tooltip="{pos:'bottom'}" title="退出系统"> 128 <div class="icon-item" id="mnavbarIconBtnCLOSE" data-uk-tooltip="{pos:'bottom'}" title="退出系统">
129 <img src="/real_control_v2/assets/imgs/icon/remove.png"> 129 <img src="/real_control_v2/assets/imgs/icon/remove.png">
130 </div> 130 </div>
src/main/resources/static/real_control_v2/js/data/data_basic.js
@@ -164,7 +164,7 @@ var gb_data_basic = (function () { @@ -164,7 +164,7 @@ var gb_data_basic = (function () {
164 //是否是环线 164 //是否是环线
165 isLoopLine: function (lineCode) { 165 isLoopLine: function (lineCode) {
166 var data = gb_common.groupBy(stationRoutes[lineCode], 'directions'); 166 var data = gb_common.groupBy(stationRoutes[lineCode], 'directions');
167 - //如果上行起终点距离50米内 并且下行只有2个站点 167 + //下行只有2个站点
168 var len = data[0].length; 168 var len = data[0].length;
169 if (len > 0 && data[1].length == 2) { 169 if (len > 0 && data[1].length == 2) {
170 var first = data[0][0], 170 var first = data[0][0],
@@ -176,7 +176,8 @@ var gb_data_basic = (function () { @@ -176,7 +176,8 @@ var gb_data_basic = (function () {
176 var fPoint = {latitude: first.station.gLaty, longitude: first.station.gLonx} 176 var fPoint = {latitude: first.station.gLaty, longitude: first.station.gLonx}
177 , ePoint = {latitude: end.station.gLaty, longitude: end.station.gLonx}; 177 , ePoint = {latitude: end.station.gLaty, longitude: end.station.gLonx};
178 178
179 - if (geolib.getDistance(fPoint, ePoint) < 40) { 179 + //并且上行起终点距离200米内
  180 + if (geolib.getDistance(fPoint, ePoint) < 200) {
180 return true; 181 return true;
181 } 182 }
182 } 183 }
src/main/resources/static/real_control_v2/js/data/json/north_toolbar.json
@@ -65,7 +65,7 @@ @@ -65,7 +65,7 @@
65 ] 65 ]
66 }, 66 },
67 { 67 {
68 - "id": 1, 68 + "id": 2,
69 "text": "报表管理", 69 "text": "报表管理",
70 "clazz": "dropdown-column-2-lg", 70 "clazz": "dropdown-column-2-lg",
71 "columns": true, 71 "columns": true,
@@ -78,79 +78,79 @@ @@ -78,79 +78,79 @@
78 "header": 1 78 "header": 1
79 }, 79 },
80 { 80 {
81 - "id": 4.5, 81 + "id": 2.2,
82 "text": "月存油报表", 82 "text": "月存油报表",
83 "event": "form_oilListMonth", 83 "event": "form_oilListMonth",
84 "icon": "uk-icon-table" 84 "icon": "uk-icon-table"
85 }, 85 },
86 { 86 {
87 - "id": 4.6, 87 + "id": 2.3,
88 "text": "时刻表分析", 88 "text": "时刻表分析",
89 "event": "form_scheduleAnaly", 89 "event": "form_scheduleAnaly",
90 "icon": "uk-icon-table" 90 "icon": "uk-icon-table"
91 }, 91 },
92 { 92 {
93 - "id": 4.7, 93 + "id": 2.4,
94 "text": "调度消息分析", 94 "text": "调度消息分析",
95 "event": "form_message", 95 "event": "form_message",
96 "icon": "uk-icon-table" 96 "icon": "uk-icon-table"
97 }, 97 },
98 { 98 {
99 - "id": 4.8, 99 + "id": 2.5,
100 "text": "指令状态分析", 100 "text": "指令状态分析",
101 "event": "form_commandState", 101 "event": "form_commandState",
102 "icon": "uk-icon-table" 102 "icon": "uk-icon-table"
103 }, 103 },
104 { 104 {
105 - "id": 4.9, 105 + "id": 2.6,
106 "text": "线路首末班查询", 106 "text": "线路首末班查询",
107 "event": "form_firstAndLastBus", 107 "event": "form_firstAndLastBus",
108 "icon": "uk-icon-table" 108 "icon": "uk-icon-table"
109 }, 109 },
110 { 110 {
111 - "id": 5.0, 111 + "id": 2.7,
112 "text": "路单数据", 112 "text": "路单数据",
113 "event": "form_singledata", 113 "event": "form_singledata",
114 "icon": "uk-icon-table" 114 "icon": "uk-icon-table"
115 }, 115 },
116 { 116 {
117 - "id": 5.1, 117 + "id": 2.8,
118 "text": "车辆加注", 118 "text": "车辆加注",
119 "event": "form_vehicleloading", 119 "event": "form_vehicleloading",
120 "icon": "uk-icon-table" 120 "icon": "uk-icon-table"
121 }, 121 },
122 { 122 {
123 - "id": 5.2, 123 + "id": 2.9,
124 "text": "运营服务阶段报表", 124 "text": "运营服务阶段报表",
125 "event": "form_operationservice", 125 "event": "form_operationservice",
126 "icon": "uk-icon-table" 126 "icon": "uk-icon-table"
127 }, 127 },
128 { 128 {
129 - "id": 5.3, 129 + "id": 3.0,
130 "text": "线路客流量报表", 130 "text": "线路客流量报表",
131 "event": "form_linepassengerflow", 131 "event": "form_linepassengerflow",
132 "icon": "uk-icon-table" 132 "icon": "uk-icon-table"
133 }, 133 },
134 { 134 {
135 - "id": 5.4, 135 + "id": 3.1,
136 "text": "换人换车情况统计表", 136 "text": "换人换车情况统计表",
137 "event": "form_changetochange", 137 "event": "form_changetochange",
138 "icon": "uk-icon-table" 138 "icon": "uk-icon-table"
139 }, 139 },
140 { 140 {
141 - "id": 5.5, 141 + "id": 3.2,
142 "text": "营运线路出车率统计表", 142 "text": "营运线路出车率统计表",
143 "event": "form_turnoutrate", 143 "event": "form_turnoutrate",
144 "icon": "uk-icon-table" 144 "icon": "uk-icon-table"
145 }, 145 },
146 { 146 {
147 - "id": 5.6, 147 + "id": 3.3,
148 "text": "班次执行率统计表", 148 "text": "班次执行率统计表",
149 "event": "form_executionrate", 149 "event": "form_executionrate",
150 "icon": "uk-icon-table" 150 "icon": "uk-icon-table"
151 }, 151 },
152 { 152 {
153 - "id": 5.6, 153 + "id": 3.4,
154 "text": "营运线路名称统计表", 154 "text": "营运线路名称统计表",
155 "event": "form_allline", 155 "event": "form_allline",
156 "icon": "uk-icon-table" 156 "icon": "uk-icon-table"
@@ -158,84 +158,84 @@ @@ -158,84 +158,84 @@
158 ], 158 ],
159 [ 159 [
160 { 160 {
161 - "id": 3.1, 161 + "id": 4.1,
162 "text": "报表管理", 162 "text": "报表管理",
163 "header": 1 163 "header": 1
164 }, 164 },
165 { 165 {
166 - "id": 3.2, 166 + "id": 4.2,
167 "text": "行车路单", 167 "text": "行车路单",
168 "event": "form_waybill", 168 "event": "form_waybill",
169 "icon": "uk-icon-table" 169 "icon": "uk-icon-table"
170 }, 170 },
171 { 171 {
172 - "id": 3.3, 172 + "id": 4.3,
173 "text": "调度历史消息", 173 "text": "调度历史消息",
174 "event": "form_history_message", 174 "event": "form_history_message",
175 "icon": "uk-icon-table" 175 "icon": "uk-icon-table"
176 }, 176 },
177 { 177 {
178 - "id": 3.4, 178 + "id": 4.4,
179 "text": "驾驶员请求台账", 179 "text": "驾驶员请求台账",
180 "event": "form_account", 180 "event": "form_account",
181 "icon": "uk-icon-table" 181 "icon": "uk-icon-table"
182 }, 182 },
183 { 183 {
184 - "id": 3.5, 184 + "id": 4.5,
185 "text": "班次日报表", 185 "text": "班次日报表",
186 "event": "form_daily", 186 "event": "form_daily",
187 "icon": "uk-icon-table" 187 "icon": "uk-icon-table"
188 }, 188 },
189 { 189 {
190 - "id": 3.6, 190 + "id": 4.6,
191 "text": "修正报表", 191 "text": "修正报表",
192 "event": "form_correctForm", 192 "event": "form_correctForm",
193 "icon": "uk-icon-table" 193 "icon": "uk-icon-table"
194 }, 194 },
195 { 195 {
196 - "id": 3.7, 196 + "id": 4.7,
197 "text": "统计日报", 197 "text": "统计日报",
198 "event": "form_statisticsDaily", 198 "event": "form_statisticsDaily",
199 "icon": "uk-icon-table" 199 "icon": "uk-icon-table"
200 }, 200 },
201 { 201 {
202 - "id": 3.8, 202 + "id": 4.8,
203 "text": "调度日报", 203 "text": "调度日报",
204 "event": "form_scheduleDaily", 204 "event": "form_scheduleDaily",
205 "icon": "uk-icon-table" 205 "icon": "uk-icon-table"
206 }, 206 },
207 { 207 {
208 - "id": 3.9, 208 + "id": 4.9,
209 "text": "行车路单日报表", 209 "text": "行车路单日报表",
210 "event": "form_waybillday", 210 "event": "form_waybillday",
211 "icon": "uk-icon-table" 211 "icon": "uk-icon-table"
212 }, 212 },
213 { 213 {
214 - "id": 4.0, 214 + "id": 5.0,
215 "text": "班次到离站", 215 "text": "班次到离站",
216 "event": "form_inoutstation", 216 "event": "form_inoutstation",
217 "icon": "uk-icon-table" 217 "icon": "uk-icon-table"
218 }, 218 },
219 { 219 {
220 - "id": 4.1, 220 + "id": 5.1,
221 "text": "班次车辆人员日报表", 221 "text": "班次车辆人员日报表",
222 "event": "form_shifday", 222 "event": "form_shifday",
223 "icon": "uk-icon-table" 223 "icon": "uk-icon-table"
224 }, 224 },
225 { 225 {
226 - "id": 4.2, 226 + "id": 5.2,
227 "text": "班次车辆人员月报表", 227 "text": "班次车辆人员月报表",
228 "event": "form_shiftuehiclemanth", 228 "event": "form_shiftuehiclemanth",
229 "icon": "uk-icon-table" 229 "icon": "uk-icon-table"
230 }, 230 },
231 { 231 {
232 - "id": 4.3, 232 + "id": 5.3,
233 "text": "营运服务日报表", 233 "text": "营运服务日报表",
234 "event": "form_workDaily", 234 "event": "form_workDaily",
235 "icon": "uk-icon-table" 235 "icon": "uk-icon-table"
236 }, 236 },
237 { 237 {
238 - "id": 4.4, 238 + "id": 5.4,
239 "text": "计划车辆班次人员", 239 "text": "计划车辆班次人员",
240 "event": "form_peopleCarPlan", 240 "event": "form_peopleCarPlan",
241 "icon": "uk-icon-table" 241 "icon": "uk-icon-table"
@@ -244,47 +244,47 @@ @@ -244,47 +244,47 @@
244 ] 244 ]
245 }, 245 },
246 { 246 {
247 - "id": 2, 247 + "id": 3,
248 "text": "车载设备", 248 "text": "车载设备",
249 "children": [ 249 "children": [
250 { 250 {
251 - "id": 2.1, 251 + "id": 3.1,
252 "text": "设备管理", 252 "text": "设备管理",
253 "event": "all_devices" 253 "event": "all_devices"
254 }, 254 },
255 { 255 {
256 - "id": 2.3, 256 + "id": 3.2,
257 "text": "指令下发记录", 257 "text": "指令下发记录",
258 "event": "directive_history" 258 "event": "directive_history"
259 }, 259 },
260 { 260 {
261 - "id": 2.2, 261 + "id": 3.3,
262 "text": "设备上报记录", 262 "text": "设备上报记录",
263 "event": "device_report" 263 "event": "device_report"
264 }, 264 },
265 { 265 {
266 - "id": 2.3, 266 + "id": 3.4,
267 "text": "轨迹回放", 267 "text": "轨迹回放",
268 "event": "gps_play_back" 268 "event": "gps_play_back"
269 } 269 }
270 ] 270 ]
271 }, 271 },
272 { 272 {
273 - "id": 3, 273 + "id": 4,
274 "text": "系统设置", 274 "text": "系统设置",
275 "children": [ 275 "children": [
276 { 276 {
277 - "id": 3.1, 277 + "id": 4.1,
278 "text": "线路配置", 278 "text": "线路配置",
279 "event": "line_config" 279 "event": "line_config"
280 }, 280 },
281 { 281 {
282 - "id": 3.2, 282 + "id": 4.2,
283 "text": "TTS", 283 "text": "TTS",
284 "event": "tts_config" 284 "event": "tts_config"
285 }, 285 },
286 { 286 {
287 - "id": 3.3, 287 + "id": 4.3,
288 "text": "信号标记", 288 "text": "信号标记",
289 "event": "signal_state" 289 "event": "signal_state"
290 } 290 }
src/main/resources/static/real_control_v2/js/forms/form_embed.js
1 -/**  
2 - * 嵌入表单片段 处理模块  
3 - *  
4 - */  
5 -  
6 -var gb_embed_form_hanlde = (function () {  
7 -  
8 -  
9 - var temps;  
10 - $.get('/real_control_v2/js/forms/temps.html', function (dom) {  
11 - temps = gb_common.compileTempByDom(dom, {escape: false});  
12 - });  
13 -  
14 - //setTimeout(loadPlugins, 5000);  
15 -  
16 - return {  
17 - temps: function () {  
18 - return temps;  
19 - }  
20 - }  
21 -})();  
22 -  
23 -/**  
24 - * 打开表单片段  
25 - * @param pageUrl  
26 - */  
27 -var open_modal_form_fragment = function (pageUrl, title) {  
28 - //将片段路径写入 localStorage  
29 - window.localStorage.setItem('real_control_form_embed_pageUrl', pageUrl);  
30 - //包裹页面  
31 - var wrapUrl = '/real_control_v2/js/forms/wrap.html?origin=real_control_iframe';  
32 - //modal ID  
33 - var id = '#formFragmentModal';  
34 -  
35 - var htmlStr = gb_embed_form_hanlde.temps()['forms-embed-modal-temp']({pageUrl: wrapUrl, title: title});  
36 - $(document.body).append(htmlStr);  
37 - UIkit.modal(id, {bgclose: false}).show();  
38 -};  
39 -  
40 -  
41 -/*function setIframeHeight(iframe) {  
42 - setTimeout(function () {  
43 - if (iframe) {  
44 - var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;  
45 - if (iframeWin.document.body) {  
46 - iframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;  
47 - }  
48 - }  
49 - }, 800);  
50 -};*/ 1 +/**
  2 + * 嵌入表单片段 处理模块
  3 + *
  4 + */
  5 +
  6 +var gb_embed_form_hanlde = (function () {
  7 +
  8 +
  9 + var temps;
  10 + $.get('/real_control_v2/js/forms/temps.html', function (dom) {
  11 + temps = gb_common.compileTempByDom(dom, {escape: false});
  12 + });
  13 +
  14 + /**
  15 + * 打开表单片段
  16 + * @param pageUrl
  17 + */
  18 + var open_modal_form_fragment = function (pageUrl, title) {
  19 + //modal ID
  20 + var id = '#formFragmentModal';
  21 +
  22 + if($(id+'.uk-modal').length > 0){
  23 + $(id).remove();
  24 + }
  25 +
  26 + //将片段路径写入 localStorage
  27 + window.localStorage.setItem('real_control_form_embed_pageUrl', pageUrl);
  28 + //包裹页面
  29 + var wrapUrl = '/real_control_v2/js/forms/wrap.html?origin=real_control_iframe';
  30 + var htmlStr = gb_embed_form_hanlde.temps()['forms-embed-modal-temp']({pageUrl: wrapUrl, title: title});
  31 + $(document.body).append(htmlStr);
  32 + UIkit.modal(id, {bgclose: false}).show();
  33 + };
  34 +
  35 + return {
  36 + temps: function () {
  37 + return temps;
  38 + },
  39 + open_modal_form_fragment: open_modal_form_fragment
  40 + }
  41 +})();
51 \ No newline at end of file 42 \ No newline at end of file
src/main/resources/static/real_control_v2/js/north/toolbar.js
@@ -100,82 +100,82 @@ var gb_northToolbar = (function () { @@ -100,82 +100,82 @@ var gb_northToolbar = (function () {
100 open_modal('/real_control_v2/fragments/north/nav/cache_data/list.html', {}, modal_opts); 100 open_modal('/real_control_v2/fragments/north/nav/cache_data/list.html', {}, modal_opts);
101 }, 101 },
102 form_waybill: function () { 102 form_waybill: function () {
103 - open_modal_form_fragment('/pages/forms/statement/waybill.html', '行车路单'); 103 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/waybill.html', '行车路单');
104 }, 104 },
105 form_history_message: function () { 105 form_history_message: function () {
106 - open_modal_form_fragment('/pages/forms/statement/historyMessage.html', '调度历史消息'); 106 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/historyMessage.html', '调度历史消息');
107 }, 107 },
108 form_account: function () { 108 form_account: function () {
109 - open_modal_form_fragment('/pages/forms/statement/account.html', '驾驶员请求台账'); 109 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/account.html', '驾驶员请求台账');
110 }, 110 },
111 form_daily: function () { 111 form_daily: function () {
112 - open_modal_form_fragment('/pages/forms/statement/daily.html', '班次日报表'); 112 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/daily.html', '班次日报表');
113 }, 113 },
114 form_correctForm: function () { 114 form_correctForm: function () {
115 - open_modal_form_fragment('/pages/forms/statement/correctForm.html', '修正报表'); 115 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/correctForm.html', '修正报表');
116 }, 116 },
117 form_statisticsDaily: function () { 117 form_statisticsDaily: function () {
118 - open_modal_form_fragment('/pages/forms/statement/statisticsDaily.html', '统计日报'); 118 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/statisticsDaily.html', '统计日报');
119 }, 119 },
120 form_scheduleDaily: function () { 120 form_scheduleDaily: function () {
121 - open_modal_form_fragment('/pages/forms/statement/scheduleDaily.html', '调度日报'); 121 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/scheduleDaily.html', '调度日报');
122 }, 122 },
123 form_waybillday: function () { 123 form_waybillday: function () {
124 - open_modal_form_fragment('/pages/forms/statement/waybillday.html', '行车路单日报表'); 124 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/waybillday.html', '行车路单日报表');
125 }, 125 },
126 form_inoutstation: function () { 126 form_inoutstation: function () {
127 - open_modal_form_fragment('/pages/report/inoutstation.html', '班次到离站'); 127 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/report/inoutstation.html', '班次到离站');
128 }, 128 },
129 form_shifday: function () { 129 form_shifday: function () {
130 - open_modal_form_fragment('/pages/mforms/shifdays/shifday.html', '班次车辆人员日报表'); 130 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/shifdays/shifday.html', '班次车辆人员日报表');
131 }, 131 },
132 form_shiftuehiclemanth: function () { 132 form_shiftuehiclemanth: function () {
133 - open_modal_form_fragment('/pages/mforms/shiftuehiclemanths/shiftuehiclemanth.html', '班次车辆人员月报表'); 133 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/shiftuehiclemanths/shiftuehiclemanth.html', '班次车辆人员月报表');
134 }, 134 },
135 form_workDaily: function () { 135 form_workDaily: function () {
136 - open_modal_form_fragment('/pages/forms/statement/workDaily.html', '营运服务日报表'); 136 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/workDaily.html', '营运服务日报表');
137 }, 137 },
138 form_peopleCarPlan: function () { 138 form_peopleCarPlan: function () {
139 - open_modal_form_fragment('/pages/forms/statement/peopleCarPlan.html', '计划车辆班次人员'); 139 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/peopleCarPlan.html', '计划车辆班次人员');
140 }, 140 },
141 form_oilListMonth: function () { 141 form_oilListMonth: function () {
142 - open_modal_form_fragment('/pages/report/oil/oilListMonth.html', '月存油报表'); 142 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/report/oil/oilListMonth.html', '月存油报表');
143 }, 143 },
144 form_scheduleAnaly: function () { 144 form_scheduleAnaly: function () {
145 - open_modal_form_fragment('/pages/forms/statement/scheduleAnaly.html', '时刻表分析'); 145 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/scheduleAnaly.html', '时刻表分析');
146 }, 146 },
147 form_message: function () { 147 form_message: function () {
148 - open_modal_form_fragment('/pages/report/message/message.html', '调度消息分析'); 148 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/report/message/message.html', '调度消息分析');
149 }, 149 },
150 form_commandState: function () { 150 form_commandState: function () {
151 - open_modal_form_fragment('/pages/forms/statement/commandState.html', '指令状态分析'); 151 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/commandState.html', '指令状态分析');
152 }, 152 },
153 form_firstAndLastBus: function () { 153 form_firstAndLastBus: function () {
154 - open_modal_form_fragment('/pages/forms/statement/firstAndLastBus.html', '线路首末班查询'); 154 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/statement/firstAndLastBus.html', '线路首末班查询');
155 }, 155 },
156 form_singledata: function () { 156 form_singledata: function () {
157 - open_modal_form_fragment('/pages/mforms/singledatas/singledata.html', '路单数据'); 157 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/singledatas/singledata.html', '路单数据');
158 }, 158 },
159 form_vehicleloading: function () { 159 form_vehicleloading: function () {
160 - open_modal_form_fragment('/pages/mforms/vehicleloadings/vehicleloading.html', '车辆加注'); 160 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/vehicleloadings/vehicleloading.html', '车辆加注');
161 }, 161 },
162 form_operationservice: function () { 162 form_operationservice: function () {
163 - open_modal_form_fragment('/pages/mforms/operationservices/operationservice.html', '运营服务阶段报表'); 163 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/operationservices/operationservice.html', '运营服务阶段报表');
164 }, 164 },
165 form_linepassengerflow: function () { 165 form_linepassengerflow: function () {
166 - open_modal_form_fragment('/pages/mforms/linepassengerflows/linepassengerflow.html', '线路客流量报表'); 166 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/linepassengerflows/linepassengerflow.html', '线路客流量报表');
167 }, 167 },
168 form_changetochange: function () { 168 form_changetochange: function () {
169 - open_modal_form_fragment('/pages/mforms/changetochanges/changetochange.html', '换人换车情况统计表'); 169 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/changetochanges/changetochange.html', '换人换车情况统计表');
170 }, 170 },
171 form_turnoutrate: function () { 171 form_turnoutrate: function () {
172 - open_modal_form_fragment('/pages/mforms/changetochanges/turnoutrate.html', '营运线路出车率统计表'); 172 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/changetochanges/turnoutrate.html', '营运线路出车率统计表');
173 }, 173 },
174 form_executionrate: function () { 174 form_executionrate: function () {
175 - open_modal_form_fragment('/pages/mforms/executionrates/executionrate.html', '班次执行率统计表'); 175 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/executionrates/executionrate.html', '班次执行率统计表');
176 }, 176 },
177 form_allline: function () { 177 form_allline: function () {
178 - open_modal_form_fragment('/pages/mforms/alllines/allline.html', '营运线路名称统计表'); 178 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/mforms/alllines/allline.html', '营运线路名称统计表');
179 } 179 }
180 }; 180 };
181 181