Commit 92391cdecb0091e49f3be2533832195f94ccb15a

Authored by 徐烜
2 parents 7413d94f 9b4ac9aa

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

Showing 26 changed files with 355 additions and 168 deletions
src/main/java/com/bsth/common/Constants.java
@@ -29,7 +29,7 @@ public class Constants { @@ -29,7 +29,7 @@ public class Constants {
29 //public static final String XD_TEMPS = "/pages/control/line/temps/**"; 29 //public static final String XD_TEMPS = "/pages/control/line/temps/**";
30 30
31 //车载网关上行接口 31 //车载网关上行接口
32 - public static final String UPSTREAM_URL = "/control/upstream/"; 32 + public static final String UPSTREAM_URL = "/control/upstream";
33 33
34 public static final String SESSION_USERNAME = "sessionUserName"; 34 public static final String SESSION_USERNAME = "sessionUserName";
35 public static final String COMPANY_AUTHORITYS = "cmyAuths"; 35 public static final String COMPANY_AUTHORITYS = "cmyAuths";
src/main/java/com/bsth/data/gpsdata/arrival/GeoCacheData.java
@@ -242,7 +242,11 @@ public class GeoCacheData { @@ -242,7 +242,11 @@ public class GeoCacheData {
242 List<Map<String, Object>> speedMap = jdbcTemplate.queryForList(sql); 242 List<Map<String, Object>> speedMap = jdbcTemplate.queryForList(sql);
243 Map<String, Double> speedTempMap = new HashMap<>(); 243 Map<String, Double> speedTempMap = new HashMap<>();
244 for (Map<String, Object> tMap : speedMap) { 244 for (Map<String, Object> tMap : speedMap) {
245 - speedTempMap.put(tMap.get("LINE_CODE").toString(), Double.parseDouble(tMap.get("SPEEDING").toString())); 245 + try {
  246 + speedTempMap.put(tMap.get("LINE_CODE").toString(), Double.parseDouble(tMap.get("SPEEDING").toString()));
  247 + } catch (NumberFormatException e) {
  248 + logger.error("speeding is null...");
  249 + }
246 } 250 }
247 speedLimitMap = speedTempMap; 251 speedLimitMap = speedTempMap;
248 } 252 }
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
@@ -135,7 +135,7 @@ public class InOutStationSignalHandle extends SignalHandle{ @@ -135,7 +135,7 @@ public class InOutStationSignalHandle extends SignalHandle{
135 } 135 }
136 else if(sch.getBcType().equals("out")){ 136 else if(sch.getBcType().equals("out")){
137 ScheduleRealInfo next = dayOfSchedule.nextSame(sch); 137 ScheduleRealInfo next = dayOfSchedule.nextSame(sch);
138 - if(prev.getStopNo().equals(next.getQdzCode())){ 138 + if(next != null && prev.getStopNo().equals(next.getQdzCode())){
139 //发下一个班次 139 //发下一个班次
140 dayOfSchedule.addExecPlan(next); 140 dayOfSchedule.addExecPlan(next);
141 outStation(gps, prev); 141 outStation(gps, prev);
src/main/java/com/bsth/entity/oil/Ylxxb.java
@@ -35,11 +35,11 @@ public class Ylxxb { @@ -35,11 +35,11 @@ public class Ylxxb {
35 private Date xgrq; 35 private Date xgrq;
36 private String xgr; 36 private String xgr;
37 private String fromgsdm; 37 private String fromgsdm;
38 - private int nylx; 38 + private Integer nylx;
39 @Transient 39 @Transient
40 private String ldgh; 40 private String ldgh;
41 //0为接口数据,1为手工输入 41 //0为接口数据,1为手工输入
42 - private int jylx=0; 42 + private Integer jylx=0;
43 @Transient 43 @Transient
44 private String gsname; 44 private String gsname;
45 @Transient 45 @Transient
src/main/java/com/bsth/repository/oil/YlxxbRepository.java
@@ -27,4 +27,12 @@ public interface YlxxbRepository extends BaseRepository&lt;Ylxxb, Integer&gt;{ @@ -27,4 +27,12 @@ public interface YlxxbRepository extends BaseRepository&lt;Ylxxb, Integer&gt;{
27 @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nbbm =?2 and jylx=1",nativeQuery=true) 27 @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nbbm =?2 and jylx=1",nativeQuery=true)
28 List<Ylxxb> obtainYlxx2(String rq,String nbbm); 28 List<Ylxxb> obtainYlxx2(String rq,String nbbm);
29 29
  30 + @Transactional
  31 + @Modifying
  32 + @Query(value="select * from bsth_c_ylxxb s where s.nbbm = ?1 and "
  33 + + "to_days(s.yyrq) = to_days(?2)",nativeQuery=true)
  34 + List<Ylxxb> queryListYlxxb(String clZbh,String date);
  35 +
  36 +
  37 +
30 } 38 }
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
@@ -39,12 +39,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -39,12 +39,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
39 + " s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 group by clZbh,jGh,jName") 39 + " s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 group by clZbh,jGh,jName")
40 List<Map<String, Object>> dailyInfo(String line,String date); 40 List<Map<String, Object>> dailyInfo(String line,String date);
41 41
42 - @Query(value="select t.car_code,d.sender,d.txt_content,d.timestamp,0 as xlbm from ("  
43 - + " select equipment_code,car_code from bsth_c_cars where id in(" 42 + @Query(value="select t.inside_code,d.sender,d.txt_content,d.timestamp,0 as xlbm from ("
  43 + + " select equipment_code,inside_code from bsth_c_cars where id in("
44 + " select cl from bsth_c_s_ccinfo where xl in ( " 44 + " select cl from bsth_c_s_ccinfo where xl in ( "
45 + " select id from bsth_c_line where line_code=?1 ))) t" 45 + " select id from bsth_c_line where line_code=?1 ))) t"
46 + " left join bsth_v_directive_60 d on t.equipment_code=d.device_id " 46 + " left join bsth_v_directive_60 d on t.equipment_code=d.device_id "
47 - + " where d.timestamp >=?2 and d.timestamp <=?3 and t.car_code like %?4% ",nativeQuery=true) 47 + + " where d.timestamp >=?2 and d.timestamp <=?3 and t.inside_code like %?4% ",nativeQuery=true)
48 List<Object[]> historyMessage(String line,long d,long t,String code); 48 List<Object[]> historyMessage(String line,long d,long t,String code);
49 49
50 @Query(value="SELECT r.xl_name,r.lp_name,r.cl_zbh,count(*) as cs " 50 @Query(value="SELECT r.xl_name,r.lp_name,r.cl_zbh,count(*) as cs "
@@ -74,7 +74,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -74,7 +74,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
74 @Query(value="select count(jName) from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and sflj != 0") 74 @Query(value="select count(jName) from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and sflj != 0")
75 int findLjbc(String jName,String clZbh,String lpName); 75 int findLjbc(String jName,String clZbh,String lpName);
76 76
77 - @Query(value="SELECT c.company,r.request_code,FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d %T'),c.inside_code FROM bsth_v_report_80 r LEFT JOIN bsth_c_cars c ON c.equipment_code = r.device_id where FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d') = ?2 and r.line_id = ?1 and c.inside_code = ?3",nativeQuery=true) 77 + @Query(value="SELECT c.company,r.request_code,FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d %T'),c.inside_code FROM bsth_v_report_80 r LEFT JOIN bsth_c_cars c ON c.equipment_code = r.device_id where FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d') = ?2 and r.line_id = ?1 and c.inside_code like %?3%",nativeQuery=true)
78 List<Object[]> account(String line,String date,String code); 78 List<Object[]> account(String line,String date,String code);
79 79
80 @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and s.scheduleDate >= str_to_date(?2,'%Y-%m-%d') " 80 @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and s.scheduleDate >= str_to_date(?2,'%Y-%m-%d') "
src/main/java/com/bsth/security/filter/LoginInterceptor.java
@@ -8,10 +8,7 @@ import com.bsth.util.RequestUtils; @@ -8,10 +8,7 @@ import com.bsth.util.RequestUtils;
8 import org.springframework.security.core.Authentication; 8 import org.springframework.security.core.Authentication;
9 import org.springframework.security.core.context.SecurityContextHolder; 9 import org.springframework.security.core.context.SecurityContextHolder;
10 10
11 -import javax.servlet.FilterChain;  
12 -import javax.servlet.ServletException;  
13 -import javax.servlet.ServletRequest;  
14 -import javax.servlet.ServletResponse; 11 +import javax.servlet.*;
15 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletRequest;
16 import javax.servlet.http.HttpServletResponse; 13 import javax.servlet.http.HttpServletResponse;
17 import java.io.IOException; 14 import java.io.IOException;
@@ -26,7 +23,7 @@ import java.util.Map; @@ -26,7 +23,7 @@ import java.util.Map;
26 * @date 2016年3月24日 上午11:49:20 23 * @date 2016年3月24日 上午11:49:20
27 * 24 *
28 */ 25 */
29 -public class LoginInterceptor extends BaseFilter{ 26 +public class LoginInterceptor extends BaseFilter {
30 27
31 @Override 28 @Override
32 public void destroy() { 29 public void destroy() {
@@ -34,16 +31,19 @@ public class LoginInterceptor extends BaseFilter{ @@ -34,16 +31,19 @@ public class LoginInterceptor extends BaseFilter{
34 } 31 }
35 32
36 @Override 33 @Override
37 - public void doFilter(ServletRequest arg0, ServletResponse arg1,  
38 - FilterChain arg2) throws IOException, ServletException {  
39 - 34 + public void init(FilterConfig filterConfig) throws ServletException {
  35 +
  36 + }
  37 +
  38 + @Override
  39 + public void doFilter(HttpServletRequest request,
  40 + HttpServletResponse response, FilterChain chain)
  41 + throws IOException, ServletException {
40 Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); 42 Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
41 - 43 +
42 if(null == authentication){ 44 if(null == authentication){
43 //没有登录 45 //没有登录
44 - HttpServletRequest request = (HttpServletRequest)arg0;  
45 - HttpServletResponse response = ((HttpServletResponse)arg1);  
46 - 46 +
47 if(RequestUtils.isAjaxRequest(request)){ 47 if(RequestUtils.isAjaxRequest(request)){
48 Map<String, Object> map = new HashMap<>(); 48 Map<String, Object> map = new HashMap<>();
49 map.put("status", 49 map.put("status",
@@ -52,10 +52,11 @@ public class LoginInterceptor extends BaseFilter{ @@ -52,10 +52,11 @@ public class LoginInterceptor extends BaseFilter{
52 } 52 }
53 else 53 else
54 response.sendRedirect(Constants.LOGIN_PAGE); 54 response.sendRedirect(Constants.LOGIN_PAGE);
55 - 55 +
56 return; 56 return;
57 } 57 }
58 -  
59 - arg2.doFilter(arg0, arg1); 58 +
  59 + chain.doFilter(request, response);
60 } 60 }
  61 +
61 } 62 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -15,6 +15,7 @@ import com.bsth.data.schedule.ScheduleComparator; @@ -15,6 +15,7 @@ import com.bsth.data.schedule.ScheduleComparator;
15 import com.bsth.entity.Cars; 15 import com.bsth.entity.Cars;
16 import com.bsth.entity.Line; 16 import com.bsth.entity.Line;
17 import com.bsth.entity.Personnel; 17 import com.bsth.entity.Personnel;
  18 +import com.bsth.entity.oil.Ylxxb;
18 import com.bsth.entity.realcontrol.ChildTaskPlan; 19 import com.bsth.entity.realcontrol.ChildTaskPlan;
19 import com.bsth.entity.realcontrol.LineConfig; 20 import com.bsth.entity.realcontrol.LineConfig;
20 import com.bsth.entity.realcontrol.ScheduleRealInfo; 21 import com.bsth.entity.realcontrol.ScheduleRealInfo;
@@ -25,6 +26,7 @@ import com.bsth.entity.schedule.GuideboardInfo; @@ -25,6 +26,7 @@ import com.bsth.entity.schedule.GuideboardInfo;
25 import com.bsth.entity.sys.DutyEmployee; 26 import com.bsth.entity.sys.DutyEmployee;
26 import com.bsth.entity.sys.SysUser; 27 import com.bsth.entity.sys.SysUser;
27 import com.bsth.repository.LineRepository; 28 import com.bsth.repository.LineRepository;
  29 +import com.bsth.repository.oil.YlxxbRepository;
28 import com.bsth.repository.realcontrol.ChildTaskPlanRepository; 30 import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
29 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 31 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
30 import com.bsth.repository.realcontrol.SvgAttributeRepository; 32 import com.bsth.repository.realcontrol.SvgAttributeRepository;
@@ -99,6 +101,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -99,6 +101,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
99 101
100 @Autowired 102 @Autowired
101 DutyEmployeeService dutyEmployeeService; 103 DutyEmployeeService dutyEmployeeService;
  104 +
  105 + @Autowired
  106 + YlxxbRepository ylxxbRepository;
102 107
103 Logger logger = LoggerFactory.getLogger(this.getClass()); 108 Logger logger = LoggerFactory.getLogger(this.getClass());
104 109
@@ -502,6 +507,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -502,6 +507,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
502 507
503 map = new HashMap<String, Object>(); 508 map = new HashMap<String, Object>();
504 try { 509 try {
  510 + scheduleRealInfo.setjName(scheduleRealInfo.getjGh()+scheduleRealInfo.getjName());
  511 + scheduleRealInfo.setsName(scheduleRealInfo.getsGh()+scheduleRealInfo.getsName());
505 map = rru.getMapValue(scheduleRealInfo); 512 map = rru.getMapValue(scheduleRealInfo);
506 String zdsj = scheduleRealInfo.getZdsj(); 513 String zdsj = scheduleRealInfo.getZdsj();
507 String zdsjActual = scheduleRealInfo.getZdsjActual(); 514 String zdsjActual = scheduleRealInfo.getZdsjActual();
@@ -2433,6 +2440,25 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2433,6 +2440,25 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2433 try { 2440 try {
2434 scheduleRealInfo.setBcs(xyz); 2441 scheduleRealInfo.setBcs(xyz);
2435 xyz++; 2442 xyz++;
  2443 + Set<ChildTaskPlan> cs = scheduleRealInfo.getcTasks();
  2444 + Double sjlc=0.0;
  2445 + if(!cs.isEmpty()){
  2446 + Iterator<ChildTaskPlan> it = cs.iterator();
  2447 + while(it.hasNext()){
  2448 + ChildTaskPlan c = it.next();
  2449 + if(!c.isDestroy()){
  2450 + sjlc += c.getMileage()==null?0:c.getMileage();
  2451 + }
  2452 +
  2453 + }
  2454 + }else{
  2455 + if(scheduleRealInfo.getStatus() != -1){
  2456 + sjlc =scheduleRealInfo.getJhlc();
  2457 + }
  2458 + }
  2459 + scheduleRealInfo.setjName(scheduleRealInfo.getjGh()+scheduleRealInfo.getjName());
  2460 + scheduleRealInfo.setsName(scheduleRealInfo.getsGh()+scheduleRealInfo.getsName());
  2461 + scheduleRealInfo.setSjlc(format.format(sjlc));
2436 map = rru.getMapValue(scheduleRealInfo); 2462 map = rru.getMapValue(scheduleRealInfo);
2437 String zdsj = scheduleRealInfo.getZdsj(); 2463 String zdsj = scheduleRealInfo.getZdsj();
2438 String zdsjActual = scheduleRealInfo.getZdsjActual(); 2464 String zdsjActual = scheduleRealInfo.getZdsjActual();
@@ -2457,8 +2483,17 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2457,8 +2483,17 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2457 } 2483 }
2458 } 2484 }
2459 2485
  2486 +
  2487 + List<Ylxxb> listYlxxb=ylxxbRepository.queryListYlxxb( clZbh, date);
  2488 + Double jzl=0.0;
  2489 + for(int t=0;t<listYlxxb.size();t++){
  2490 + Ylxxb y=listYlxxb.get(t);
  2491 + jzl += y.getJzl();
  2492 + }
  2493 +
2460 //计算里程和班次数,并放入Map里 2494 //计算里程和班次数,并放入Map里
2461 map = new HashMap<String, Object>(); 2495 map = new HashMap<String, Object>();
  2496 + map.put("jzl", jzl);
2462 map.put("jhlc", format.format(jhlc+jcclc)); 2497 map.put("jhlc", format.format(jhlc+jcclc));
2463 map.put("yygljh", format.format(jhlc)); 2498 map.put("yygljh", format.format(jhlc));
2464 map.put("ssgl", format.format(remMileage)); 2499 map.put("ssgl", format.format(remMileage));
@@ -2632,7 +2667,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2632,7 +2667,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2632 while(it.hasNext()){ 2667 while(it.hasNext()){
2633 ChildTaskPlan c = it.next(); 2668 ChildTaskPlan c = it.next();
2634 if(c.getRemarks()!=null && c.getRemarks().length()>0){ 2669 if(c.getRemarks()!=null && c.getRemarks().length()>0){
2635 - remarks += c.getRemarks(); 2670 + if(remarks.indexOf(c.getRemarks())==-1){
  2671 + remarks += c.getRemarks();
  2672 + }
2636 } 2673 }
2637 2674
2638 if(!c.isDestroy()){ 2675 if(!c.isDestroy()){
@@ -2664,7 +2701,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2664,7 +2701,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2664 String xlbm=s.getXlBm(); 2701 String xlbm=s.getXlBm();
2665 String fcrq=s.getScheduleDateStr(); 2702 String fcrq=s.getScheduleDateStr();
2666 2703
2667 - 2704 + List<Ylxxb> listYlxxb=ylxxbRepository.queryListYlxxb( s.getClZbh(), fcrq);
  2705 + Double jzl=0.0;
  2706 + for(int t=0;t<listYlxxb.size();t++){
  2707 + Ylxxb y=listYlxxb.get(t);
  2708 + jzl += y.getJzl();
  2709 + }
  2710 + map.put("jzl", jzl);
2668 map.put("xlName", s.getXlName()); 2711 map.put("xlName", s.getXlName());
2669 map.put("clZbh", s.getClZbh()); 2712 map.put("clZbh", s.getClZbh());
2670 map.put("fcsjActual", s.getFcsjActual()); 2713 map.put("fcsjActual", s.getFcsjActual());
src/main/resources/ms-jdbc.properties
@@ -4,6 +4,6 @@ @@ -4,6 +4,6 @@
4 #ms.mysql.password= 123456 4 #ms.mysql.password= 123456
5 5
6 ms.mysql.driver= com.mysql.jdbc.Driver 6 ms.mysql.driver= com.mysql.jdbc.Driver
7 -ms.mysql.url= jdbc:mysql://192.168.168.117:3306/ms?useUnicode=true&characterEncoding=utf-8 7 +ms.mysql.url= jdbc:mysql://192.168.168.171:3306/ms?useUnicode=true&characterEncoding=utf-8
8 ms.mysql.username= root 8 ms.mysql.username= root
9 -ms.mysql.password= root  
10 \ No newline at end of file 9 \ No newline at end of file
  10 +ms.mysql.password= root2jsp
11 \ No newline at end of file 11 \ No newline at end of file
src/main/resources/static/pages/forms/mould/waybill_qingpu.xls
No preview for this file type
src/main/resources/static/pages/forms/statement/scheduleDaily.html
@@ -158,31 +158,31 @@ @@ -158,31 +158,31 @@
158 <td colspan="40">&nbsp;</td> 158 <td colspan="40">&nbsp;</td>
159 </tr> --> 159 </tr> -->
160 <tr> 160 <tr>
161 - <td colspan="2">班序</td> 161 + <td colspan="2">路牌</td>
162 <td colspan="2">车号</td> 162 <td colspan="2">车号</td>
163 <td>司早</td> 163 <td>司早</td>
164 <td>售早</td> 164 <td>售早</td>
165 <td>司晚</td> 165 <td>司晚</td>
166 <td>售晚</td> 166 <td>售晚</td>
167 - <td colspan="2">班序</td> 167 + <td colspan="2">路牌</td>
168 <td colspan="2">车号</td> 168 <td colspan="2">车号</td>
169 <td>司早</td> 169 <td>司早</td>
170 <td>售早</td> 170 <td>售早</td>
171 <td>司晚</td> 171 <td>司晚</td>
172 <td>售晚</td> 172 <td>售晚</td>
173 - <td colspan="2">班序</td> 173 + <td colspan="2">路牌</td>
174 <td colspan="2">车号</td> 174 <td colspan="2">车号</td>
175 <td>司早</td> 175 <td>司早</td>
176 <td>售早</td> 176 <td>售早</td>
177 <td>司晚</td> 177 <td>司晚</td>
178 <td>售晚</td> 178 <td>售晚</td>
179 - <td colspan="2">班序</td> 179 + <td colspan="2">路牌</td>
180 <td colspan="2">车号</td> 180 <td colspan="2">车号</td>
181 <td>司早</td> 181 <td>司早</td>
182 <td>售早</td> 182 <td>售早</td>
183 <td>司晚</td> 183 <td>司晚</td>
184 <td>售晚</td> 184 <td>售晚</td>
185 - <td colspan="2">班序</td> 185 + <td colspan="2">路牌</td>
186 <td colspan="2">车号</td> 186 <td colspan="2">车号</td>
187 <td>司早</td> 187 <td>司早</td>
188 <td>售早</td> 188 <td>售早</td>
src/main/resources/static/pages/forms/statement/waybill.html
@@ -307,8 +307,8 @@ @@ -307,8 +307,8 @@
307 {{each list as obj i}} 307 {{each list as obj i}}
308 <tr> 308 <tr>
309 <td>{{i+1}}</td> 309 <td>{{i+1}}</td>
310 - <td>{{obj.jName}}</td>  
311 - <td>{{obj.sName}}</td> 310 + <td>{{obj.jGh}}{{obj.jName}}</td>
  311 + <td>{{obj.sGh}}{{obj.sName}}</td>
312 <td>&nbsp;</td> 312 <td>&nbsp;</td>
313 <td>{{obj.qdzName}}</td> 313 <td>{{obj.qdzName}}</td>
314 <td>{{obj.zdzName}}</td> 314 <td>{{obj.zdzName}}</td>
src/main/resources/static/pages/forms/statement/waybillQp.html
@@ -252,7 +252,7 @@ @@ -252,7 +252,7 @@
252 </tr> 252 </tr>
253 <tr> 253 <tr>
254 <td colspan="2">出场存油 &nbsp;升</td> 254 <td colspan="2">出场存油 &nbsp;升</td>
255 - <td colspan="3">加注油量 &nbsp;升</td> 255 + <td colspan="3">加注油量 {{map.jzl}}升</td>
256 <td colspan="2">进场存油 &nbsp;升</td> 256 <td colspan="2">进场存油 &nbsp;升</td>
257 <td colspan="4">加注机油 &nbsp;升</td> 257 <td colspan="4">加注机油 &nbsp;升</td>
258 <td colspan="5">本日耗油 &nbsp;升</td> 258 <td colspan="5">本日耗油 &nbsp;升</td>
@@ -298,8 +298,8 @@ @@ -298,8 +298,8 @@
298 <tr> 298 <tr>
299 <td>{{i+1}}</td> 299 <td>{{i+1}}</td>
300 <td>{{obj.lpName}}</td> 300 <td>{{obj.lpName}}</td>
301 - <td>{{obj.jName}}</td>  
302 - <td>{{obj.sName}}</td> 301 + <td>{{obj.jGh}}{{obj.jName}}</td>
  302 + <td>{{obj.sGh}}{{obj.sName}}</td>
303 <td>&nbsp;</td> 303 <td>&nbsp;</td>
304 <td>{{obj.qdzName}}</td> 304 <td>{{obj.qdzName}}</td>
305 <td>{{obj.zdzName}}</td> 305 <td>{{obj.zdzName}}</td>
@@ -350,8 +350,8 @@ @@ -350,8 +350,8 @@
350 <td>{{map.ljgl}}</td> 350 <td>{{map.ljgl}}</td>
351 <td colspan="2">损失班次</td> 351 <td colspan="2">损失班次</td>
352 <td colspan="1">{{map.ssbc}}</td> 352 <td colspan="1">{{map.ssbc}}</td>
353 - <td colspan="3">运送公里</td>  
354 - <td colspan="2">{{map.ysgl}}</td> 353 + <td colspan="3"></td>
  354 + <td colspan="2"></td>
355 </tr> 355 </tr>
356 <tr> 356 <tr>
357 357
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lj_zrw.html
@@ -396,7 +396,7 @@ @@ -396,7 +396,7 @@
396 name: '出场' 396 name: '出场'
397 }, 397 },
398 'add_sub_task_range_turn': { 398 'add_sub_task_range_turn': {
399 - name: '区间头' 399 + name: '区间头'
400 }, 400 },
401 'add_sub_task_other': { 401 'add_sub_task_other': {
402 name: '自定义' 402 name: '自定义'
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/add_sub_task_range_turn.html
@@ -2,14 +2,14 @@ @@ -2,14 +2,14 @@
2 <div class="uk-modal-dialog" style="width: 1200px;"> 2 <div class="uk-modal-dialog" style="width: 1200px;">
3 <a href="" class="uk-modal-close uk-close"></a> 3 <a href="" class="uk-modal-close uk-close"></a>
4 <div class="uk-modal-header"> 4 <div class="uk-modal-header">
5 - <h2>区间头子任务</h2></div> 5 + <h2>区间头子任务</h2></div>
6 6
7 <div style="width: 100%;padding-left: 1%;"> 7 <div style="width: 100%;padding-left: 1%;">
8 <form class="uk-form uk-form-horizontal"> 8 <form class="uk-form uk-form-horizontal">
9 <div class="uk-grid"> 9 <div class="uk-grid">
10 <div class="uk-width-1-4"> 10 <div class="uk-width-1-4">
11 <div class="uk-form-row" style="margin-top: 20px;"> 11 <div class="uk-form-row" style="margin-top: 20px;">
12 - <label class="uk-form-label">头站点</label> 12 + <label class="uk-form-label">头站点</label>
13 <div class="uk-form-controls"> 13 <div class="uk-form-controls">
14 <select id="turnStationSelect"> 14 <select id="turnStationSelect">
15 <option value="">请选择...</option> 15 <option value="">请选择...</option>
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
19 </div> 19 </div>
20 <div class="uk-width-1-4"> 20 <div class="uk-width-1-4">
21 <div class="uk-form-row" style="margin-top: 20px;"> 21 <div class="uk-form-row" style="margin-top: 20px;">
22 - <label class="uk-form-label">头原因</label> 22 + <label class="uk-form-label">头原因</label>
23 <div class="uk-form-controls"> 23 <div class="uk-form-controls">
24 <select id="turnReason" style="width: calc(100% - 9px);"> 24 <select id="turnReason" style="width: calc(100% - 9px);">
25 <option value="">请选择...</option> 25 <option value="">请选择...</option>
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
29 </div> 29 </div>
30 <div class="uk-width-2-4" style="padding-left: 28px;"> 30 <div class="uk-width-2-4" style="padding-left: 28px;">
31 <h6 style="color: #a7a5a5;margin-top: 35px;"><i class="uk-icon-question-circle"> </i> 31 <h6 style="color: #a7a5a5;margin-top: 35px;"><i class="uk-icon-question-circle"> </i>
32 - 如果“头站点”在另一个走向不存在,你需要手动选择第二个营运起点</h6> 32 + 如果“头站点”在另一个走向不存在,你需要手动选择第二个营运起点</h6>
33 </div> 33 </div>
34 </div> 34 </div>
35 </form> 35 </form>
@@ -343,7 +343,7 @@ @@ -343,7 +343,7 @@
343 /** 343 /**
344 * 为班次添加备注 344 * 为班次添加备注
345 */ 345 */
346 - var remarks = '掉头' + $('[name=endDate]', csf).val() + ' 因 ' + $('#turnReason', modal).val() + '在' + $('[name=endStation] option:selected', csf).text() + '掉头'; 346 + var remarks = '调头' + $('[name=endDate]', csf).val() + ' 因 ' + $('#turnReason', modal).val() + '在' + $('[name=endStation] option:selected', csf).text() + '调头';
347 gb_schedule_table.addRemarks([sch, nextSch], remarks); 347 gb_schedule_table.addRemarks([sch, nextSch], remarks);
348 UIkit.modal(modal).hide(); 348 UIkit.modal(modal).hide();
349 $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch}); 349 $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch});
@@ -368,7 +368,7 @@ @@ -368,7 +368,7 @@
368 //submit 368 //submit
369 $('#submitChildTaskBtn', modal).on('click', function () { 369 $('#submitChildTaskBtn', modal).on('click', function () {
370 if ($('#turnReason', modal).val() == '') { 370 if ($('#turnReason', modal).val() == '') {
371 - return notify_err('你必须选择头原因!'); 371 + return notify_err('你必须选择头原因!');
372 } 372 }
373 373
374 $(this).addClass('disabled').attr('disabled', 'disabled'); 374 $(this).addClass('disabled').attr('disabled', 'disabled');
@@ -377,7 +377,7 @@ @@ -377,7 +377,7 @@
377 fs.formValidation('validate'); 377 fs.formValidation('validate');
378 }); 378 });
379 379
380 - //头站切换 380 + //头站切换
381 $('#turnStationSelect', modal).on('change', function () { 381 $('#turnStationSelect', modal).on('change', function () {
382 turnStation = $(this).val(); 382 turnStation = $(this).val();
383 turnStationName = $('option:selected', this).text(); 383 turnStationName = $('option:selected', this).text();
src/main/resources/static/real_control_v2/js/home/line_panel.js
@@ -122,7 +122,7 @@ var gb_home_line_panel = (function() { @@ -122,7 +122,7 @@ var gb_home_line_panel = (function() {
122 122
123 var $t = function(e) { 123 var $t = function(e) {
124 return $(e).text(); 124 return $(e).text();
125 - } 125 + };
126 126
127 function groupByLineAndUpDown(list) { 127 function groupByLineAndUpDown(list) {
128 var rs = {}, 128 var rs = {},
src/main/resources/static/real_control_v2/js/main.js
@@ -45,8 +45,10 @@ var gb_main_ep = new EventProxy(), @@ -45,8 +45,10 @@ var gb_main_ep = new EventProxy(),
45 //初始化gps异常判定 45 //初始化gps异常判定
46 gb_gps_abnormal.initData(); 46 gb_gps_abnormal.initData();
47 47
48 - //嵌入地图页面  
49 - $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html'); 48 + setTimeout(function () {
  49 + //嵌入地图页面
  50 + $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html');
  51 + }, 1000);
50 //弹出更新说明 52 //弹出更新说明
51 //showUpdateDescription(); 53 //showUpdateDescription();
52 }); 54 });
src/main/resources/static/real_control_v2/js/signal_state/signal_state.js
@@ -10,7 +10,7 @@ var gb_signal_state = (function () { @@ -10,7 +10,7 @@ var gb_signal_state = (function () {
10 }); 10 });
11 11
12 var signal_state_data = {}; 12 var signal_state_data = {};
13 - var enable = true; 13 + var enable = false;//true;
14 //读取本地状态 14 //读取本地状态
15 var locStatus = storage.getItem("signal_state_enable"); 15 var locStatus = storage.getItem("signal_state_enable");
16 if (locStatus && locStatus=='0') 16 if (locStatus && locStatus=='0')
src/main/resources/static/real_control_v2/mapmonitor/css/real.css
@@ -28,10 +28,10 @@ input[type=checkbox].disabled{ @@ -28,10 +28,10 @@ input[type=checkbox].disabled{
28 overflow: hidden; 28 overflow: hidden;
29 left: auto; 29 left: auto;
30 top: 3px; 30 top: 3px;
31 - box-shadow: none;  
32 - border-radius: 5px 0 0 5px; 31 + border-radius: 9px 0 0 9px;
33 border: 1px solid #dedede; 32 border: 1px solid #dedede;
34 border-right: none; 33 border-right: none;
  34 + box-shadow: none;
35 } 35 }
36 36
37 .map-system-msg.flex-left a:before{ 37 .map-system-msg.flex-left a:before{
@@ -119,14 +119,16 @@ input[type=checkbox].disabled{ @@ -119,14 +119,16 @@ input[type=checkbox].disabled{
119 .real_right_gps_panel>form{ 119 .real_right_gps_panel>form{
120 text-align: center; 120 text-align: center;
121 margin-top: 20px; 121 margin-top: 20px;
  122 + position: relative;
122 } 123 }
123 124
124 -.real_right_gps_panel>form>div.uk-form-icon{  
125 - width: 88%; 125 +.real_right_gps_panel>form div.uk-form-icon{
  126 + width: 100%;
126 } 127 }
127 128
128 -.real_right_gps_panel>form>div.uk-form-icon input{  
129 - width: 100%; 129 +.real_right_gps_panel>form div.uk-form-icon input{
  130 + width: calc(100% - 30px);
  131 + font-size: 12px;
130 } 132 }
131 133
132 .real_right_gps_panel>form>div.uk-form-icon input::-webkit-input-placeholder{ 134 .real_right_gps_panel>form>div.uk-form-icon input::-webkit-input-placeholder{
@@ -134,22 +136,12 @@ input[type=checkbox].disabled{ @@ -134,22 +136,12 @@ input[type=checkbox].disabled{
134 } 136 }
135 137
136 .real_right_gps_panel .gps_tree_list{ 138 .real_right_gps_panel .gps_tree_list{
137 - height: calc(100% - 80px); 139 + height: calc(100% - 70px);
138 overflow: auto; 140 overflow: auto;
139 - padding: 20px 0 0 32px; 141 + padding: 15px 0 0 32px;
140 } 142 }
141 143
142 -/*.real_bottom_panel{  
143 - width: 100%;  
144 - background: red;  
145 - height: 100px;  
146 - position: fixed !important;  
147 - top: auto !important;  
148 - bottom: 0 !important;  
149 - left: 0;  
150 - right: 0;  
151 -}  
152 -*/ 144 +
153 .real_bottom_panel #handle{ 145 .real_bottom_panel #handle{
154 width: 100%; 146 width: 100%;
155 height: 4px; 147 height: 4px;
@@ -562,13 +554,47 @@ input[type=checkbox].disabled{ @@ -562,13 +554,47 @@ input[type=checkbox].disabled{
562 margin-left: -5px; 554 margin-left: -5px;
563 } 555 }
564 556
565 -/*  
566 -.pb_log_item>div{  
567 - display: inline-block;  
568 -}*/ 557 +.gps_tree_abnormal{
  558 + font-size: 11px;
  559 + padding: 0 1px 0 2px;
  560 + border-radius: 3px;
  561 + margin-left: 2px;
  562 +}
569 563
570 -/*  
571 -.pb_tools_icon i:hover{  
572 - color: #787676;  
573 - box-shadow: 1px 0px 5px 0 rgba(0,0,0,0.16), -1px 0px 10px 0 rgba(0,0,0,0.12);  
574 -}*/ 564 +.gps_tree_abnormal.overspeed{
  565 + background: #ff3232;
  566 + color: white;
  567 +}
  568 +
  569 +.gps_tree_abnormal.outBounds{
  570 + background: #ffff00;
  571 + color: #787777;
  572 +}
  573 +
  574 +.gps_tree_abnormal.overspeed:hover{
  575 + background: #e37878;
  576 + color: white;
  577 +}
  578 +
  579 +.gps_tree_abnormal.outBounds:hover{
  580 + background:#fdfd00;
  581 + color: #595959;
  582 +}
  583 +
  584 +.real_right_gps_panel .ral-gps-autocom .uk-dropdown{
  585 + margin-left: 15px;
  586 + width: 240px;
  587 + text-align: left;
  588 +}
  589 +
  590 +.uk-autocomplete-results.ral-gps-autocom-results{
  591 +
  592 +}
  593 +
  594 +.uk-autocomplete-results.ral-gps-autocom-results .desc{
  595 + color: #8e8e8e;
  596 +}
  597 +
  598 +.uk-nav-autocomplete>li.uk-active>a .desc{
  599 + color: #fff;
  600 +}
575 \ No newline at end of file 601 \ No newline at end of file
src/main/resources/static/real_control_v2/mapmonitor/js/config.js
@@ -142,7 +142,7 @@ var gb_map_config = (function () { @@ -142,7 +142,7 @@ var gb_map_config = (function () {
142 //标识角度 142 //标识角度
143 function carIcon_angle(val) { 143 function carIcon_angle(val) {
144 defaultConfig.carIcon.angle=this.checked; 144 defaultConfig.carIcon.angle=this.checked;
145 - gb_map_overlay_mge.reDraw(); 145 + gb_map_overlay_mge.reDrawGps();
146 } 146 }
147 147
148 function recursion_get_attr(data, attr) { 148 function recursion_get_attr(data, attr) {
src/main/resources/static/real_control_v2/mapmonitor/js/gps_tree.js
@@ -7,7 +7,9 @@ var gb_map_gps_tree = (function () { @@ -7,7 +7,9 @@ var gb_map_gps_tree = (function () {
7 var jstreeChanged = function (e, node, event) { 7 var jstreeChanged = function (e, node, event) {
8 gb_map_overlay_mge.refresh(); 8 gb_map_overlay_mge.refresh();
9 }; 9 };
10 - 10 +
  11 + var readyStatus;
  12 +
11 var init = function (cb) { 13 var init = function (cb) {
12 var allGps = gb_data_gps.allGps; 14 var allGps = gb_data_gps.allGps;
13 _devices = gb_common.get_keys(allGps); 15 _devices = gb_common.get_keys(allGps);
@@ -16,7 +18,7 @@ var gb_map_gps_tree = (function () { @@ -16,7 +18,7 @@ var gb_map_gps_tree = (function () {
16 treeObj = $('.real_right_gps_panel .gps_tree_list') 18 treeObj = $('.real_right_gps_panel .gps_tree_list')
17 //节点初始化完成 19 //节点初始化完成
18 .on('ready.jstree', function () { 20 .on('ready.jstree', function () {
19 - treeObj.jstree(true).open_all(); 21 + //treeObj.jstree(true).open_all();
20 //删掉tree node a标签的 href值(避免鼠标悬停浏览器出现状态条) 22 //删掉tree node a标签的 href值(避免鼠标悬停浏览器出现状态条)
21 $('.gps_tree_list .jstree-container-ul a.jstree-anchor').removeAttr('href'); 23 $('.gps_tree_list .jstree-container-ul a.jstree-anchor').removeAttr('href');
22 }) 24 })
@@ -24,6 +26,7 @@ var gb_map_gps_tree = (function () { @@ -24,6 +26,7 @@ var gb_map_gps_tree = (function () {
24 .on('state_ready.jstree', function () { 26 .on('state_ready.jstree', function () {
25 //绑定checkbox状态切换事件 27 //绑定checkbox状态切换事件
26 treeObj.on('check_node.jstree uncheck_node.jstree', jstreeChanged); 28 treeObj.on('check_node.jstree uncheck_node.jstree', jstreeChanged);
  29 + readyStatus = true;
27 cb && cb(); 30 cb && cb();
28 }) 31 })
29 .on('activate_node.jstree', function (e, n) { 32 .on('activate_node.jstree', function (e, n) {
@@ -43,28 +46,12 @@ var gb_map_gps_tree = (function () { @@ -43,28 +46,12 @@ var gb_map_gps_tree = (function () {
43 'keep_selected_style': false, 46 'keep_selected_style': false,
44 'whole_node': false, 47 'whole_node': false,
45 'tie_selection': false 48 'tie_selection': false
46 - }/*,  
47 - 'contextmenu': {  
48 - 'items': {  
49 - '轨迹回放': {  
50 - 'label': '轨迹回放',  
51 - 'action': function (data) {  
52 - console.log('action', data);  
53 - }  
54 - },  
55 - '发送指令': {  
56 - 'label': '发送指令',  
57 - 'action': function (data) {  
58 - console.log('action', data);  
59 - }  
60 - }  
61 - }  
62 - }*/, 49 + },
63 //local storage里的key 50 //local storage里的key
64 'state': { 51 'state': {
65 'key': 'jstree_map_devices' 52 'key': 'jstree_map_devices'
66 }, 53 },
67 - 'plugins': ['checkbox'/*, 'contextmenu'*/, 'state'] 54 + 'plugins': ['checkbox', 'state']
68 }); 55 });
69 }; 56 };
70 57
@@ -106,7 +93,7 @@ var gb_map_gps_tree = (function () { @@ -106,7 +93,7 @@ var gb_map_gps_tree = (function () {
106 }); 93 });
107 } 94 }
108 })(); 95 })();
109 - } 96 + };
110 97
111 //创建线路和上下行节点 98 //创建线路和上下行节点
112 var create_route_node = function (lineCode, cb) { 99 var create_route_node = function (lineCode, cb) {
@@ -133,7 +120,7 @@ var gb_map_gps_tree = (function () { @@ -133,7 +120,7 @@ var gb_map_gps_tree = (function () {
133 } 120 }
134 }] 121 }]
135 }, 'last', cb); 122 }, 'last', cb);
136 - } 123 + };
137 124
138 var appendDeviceNode = function (routeNode, gps, cb) { 125 var appendDeviceNode = function (routeNode, gps, cb) {
139 if (!routeNode) { 126 if (!routeNode) {
@@ -150,16 +137,124 @@ var gb_map_gps_tree = (function () { @@ -150,16 +137,124 @@ var gb_map_gps_tree = (function () {
150 'data': {lineId: gps.lineId, upDown: gps.upDown}, 137 'data': {lineId: gps.lineId, upDown: gps.upDown},
151 'icon': 'uk-icon-bus' 138 'icon': 'uk-icon-bus'
152 }, 'last', cb); 139 }, 'last', cb);
153 - } 140 + };
  141 +
  142 + /**
  143 + * 上下行改变
  144 + * @param changeArray
  145 + */
  146 + var changeUpDown = function (changeArray) {
  147 + console.log('changeUpDown', changeArray);
  148 + };
  149 +
  150 + /**
  151 + * 更新节点
  152 + */
  153 + var abnormalsMapp = {
  154 + 'outBounds': '越界',
  155 + 'overspeed': '超速'
  156 + };
  157 + var update_node = function (ups) {
  158 + var tree = treeObj.jstree(true)
  159 + ,node,suffix;
  160 + $.each(ups, function () {
  161 + node = tree.get_node('map_tree_device_' + this.nbbm);
  162 + suffix=abnormalsMapp[this['abnormalStatus']];
  163 + suffix = suffix?'<a class="gps_tree_abnormal '+this['abnormalStatus']+'">'+suffix+'</a>':'';
  164 + tree.set_text(node, this.nbbm + suffix);
  165 + });
  166 + };
  167 +
  168 +
  169 + /**
  170 + * 搜索
  171 + */
  172 + var autocom = '.real_right_gps_panel .ral-gps-autocom'
  173 + ,_input = $('input', autocom);
  174 +
  175 + var autocomplete_source = function(release) {
  176 + var rs = [],
  177 + v = _input.val().toUpperCase(), count=0;
  178 +
  179 + $.each(gb_common.get_vals(gb_data_gps.allGps), function () {
  180 + if(this.nbbm.indexOf(v) != -1){
  181 + rs.push({
  182 + value: this.nbbm,
  183 + lineName: '青浦1路',
  184 + stationName: this.stationName?this.stationName:'',
  185 + dateStr: this.dateStr
  186 + });
  187 + count++;
  188 + }
  189 + if(count > 11)
  190 + return false;
  191 + });
  192 + release && release(rs);
  193 + };
  194 +
  195 + var selectitem = function (event, data, acobject) {
  196 + //var deviceId = gb_data_basic.nbbm2deviceMap()[data.value];
  197 + //gb_map_imap.call('drawRealGpsMarker', {gpsList: [gb_data_gps.findOne(deviceId)]});
  198 + //地图定位
  199 + //gb_map_overlay_mge._focus(gb_data_basic.nbbm2deviceMap()[data.value]);
  200 +
  201 + var tree = treeObj.jstree(true)
  202 + var deviceId = gb_data_basic.nbbm2deviceMap()[data.value]
  203 + ,gps = gb_data_gps.findOne(deviceId);
  204 +
  205 + //展开线路节点
  206 + tree.open_node(tree.get_node('map_tree_line_' + gps.lineId), function () {
  207 + //展开走向节点
  208 + tree.open_node(tree.get_node('map_tree_route_' + gps.lineId + '_' + gps.upDown), function () {
  209 + //选中车辆
  210 + var id = 'map_tree_device_' + data.value;
  211 + var node = tree.get_node(id);
  212 + tree.check_node(node);
  213 +
  214 + var $e = $('#'+id);
  215 + treeObj.animate({
  216 + scrollTop: $e.offset().top - treeObj.offset().top + treeObj.scrollTop()
  217 + }, 500);
  218 + //地图定位
  219 + gb_map_overlay_mge._focus(gb_data_basic.nbbm2deviceMap()[data.value]);
  220 + }, false);
  221 + });
  222 + };
  223 + var result_template = '<script type="text/autocomplete">' +
  224 + ' <ul class="uk-nav uk-nav-autocomplete uk-autocomplete-results ral-gps-autocom-results">' +
  225 + ' {{~items}}' +
  226 + ' <li data-value="{{ $item.value }}">' +
  227 + ' <a>' +
  228 + ' {{ $item.value }} <small class="desc"> {{ $item.stationName }}</small>' +
  229 + ' <div class="desc"><span>{{$item.dateStr}}</span></div>' +
  230 + ' </a>' +
  231 + ' </li>' +
  232 + ' {{/items}}' +
  233 + ' </ul>' +
  234 + '</script>';
  235 +
  236 + $(autocom).append(result_template);
  237 + UIkit.autocomplete(autocom, {
  238 + minLength: 1,
  239 + delay: 10,
  240 + source: autocomplete_source
  241 + }).on('selectitem.uk.autocomplete', selectitem);
  242 +
  243 +
154 244
155 return { 245 return {
156 init: init, 246 init: init,
  247 + readyStatus: function () {
  248 + return readyStatus;
  249 + },
157 getChecked: function () { 250 getChecked: function () {
158 return treeObj.jstree(true).get_checked(true); 251 return treeObj.jstree(true).get_checked(true);
159 }, 252 },
160 all_devices: function () { 253 all_devices: function () {
161 return _devices; 254 return _devices;
162 }, 255 },
163 - create_node: create_node 256 + create_node: create_node,
  257 + changeUpDown: changeUpDown,
  258 + update_node: update_node
164 }; 259 };
165 })(); 260 })();
166 \ No newline at end of file 261 \ No newline at end of file
src/main/resources/static/real_control_v2/mapmonitor/js/map/iMap.js
@@ -92,7 +92,7 @@ var gb_map_imap = (function () { @@ -92,7 +92,7 @@ var gb_map_imap = (function () {
92 92
93 var canvas = $('<canvas></canvas>')[0]; 93 var canvas = $('<canvas></canvas>')[0];
94 canvas.width = w; 94 canvas.width = w;
95 - canvas.height = 75; 95 + canvas.height = 64;
96 var ctx = canvas.getContext('2d'); 96 var ctx = canvas.getContext('2d');
97 97
98 var colours = color(gps); 98 var colours = color(gps);
@@ -101,13 +101,13 @@ var gb_map_imap = (function () { @@ -101,13 +101,13 @@ var gb_map_imap = (function () {
101 //ctx.shadowBlur = 1; // 模糊尺寸 101 //ctx.shadowBlur = 1; // 模糊尺寸
102 //ctx.shadowColor = colours.shadow; // 颜色 102 //ctx.shadowColor = colours.shadow; // 颜色
103 103
104 - ctx.roundRect(0, 0, w, 24, 5).stroke(); 104 + ctx.roundRect(0, 0, w, 19, 4).stroke();
105 ctx.fillStyle = colours.bgColor; 105 ctx.fillStyle = colours.bgColor;
106 ctx.fill(); 106 ctx.fill();
107 //文字 107 //文字
108 ctx.font = "14px arial"; 108 ctx.font = "14px arial";
109 ctx.fillStyle = "#fff"; 109 ctx.fillStyle = "#fff";
110 - ctx.fillText(gps.nbbm, 2, 17); 110 + ctx.fillText(gps.nbbm, 2, 14);
111 111
112 //角度图标 112 //角度图标
113 var img = new Image(); 113 var img = new Image();
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/baidu.js
@@ -179,6 +179,12 @@ var gb_map_baidu = (function(){ @@ -179,6 +179,12 @@ var gb_map_baidu = (function(){
179 carparks = {}; 179 carparks = {};
180 map.clearOverlays(); 180 map.clearOverlays();
181 }, 181 },
  182 + clearAllGps: function () {
  183 + $.each(gb_common.get_vals(realMarkers), function () {
  184 + map.removeOverlay(this);
  185 + });
  186 + realMarkers = {};
  187 + },
182 showGpsMarker:function (opt) { 188 showGpsMarker:function (opt) {
183 var chs = opt.chs; 189 var chs = opt.chs;
184 for(var device in realMarkers){ 190 for(var device in realMarkers){
@@ -203,6 +209,8 @@ var gb_map_baidu = (function(){ @@ -203,6 +209,8 @@ var gb_map_baidu = (function(){
203 var deviceId = opts.deviceId 209 var deviceId = opts.deviceId
204 ,m = realMarkers[deviceId]; 210 ,m = realMarkers[deviceId];
205 if(m){ 211 if(m){
  212 + if(!m.isVisible())
  213 + m.show();
206 map.panTo(m.point, {noAnimation: true}); 214 map.panTo(m.point, {noAnimation: true});
207 //setTop(m); 215 //setTop(m);
208 } 216 }
@@ -336,9 +344,9 @@ var gb_map_baidu = (function(){ @@ -336,9 +344,9 @@ var gb_map_baidu = (function(){
336 344
337 //如果需要标识角度 345 //如果需要标识角度
338 if(config.carIcon.angle) 346 if(config.carIcon.angle)
339 - marker.setIcon(new BMap.Icon(gb_map_imap.createCarIconRotation(gpsData, w), new BMap.Size(w,75))); 347 + marker.setIcon(new BMap.Icon(gb_map_imap.createCarIconRotation(gpsData, w), new BMap.Size(w,70)));
340 else 348 else
341 - marker.setIcon(new BMap.Icon(gb_map_imap.createCarIcon(gpsData, w), new BMap.Size(w,25))); 349 + marker.setIcon(new BMap.Icon(gb_map_imap.createCarIcon(gpsData, w), new BMap.Size(w,20)));
342 } 350 }
343 351
344 function createStationMark(statio) { 352 function createStationMark(statio) {
@@ -348,7 +356,7 @@ var gb_map_baidu = (function(){ @@ -348,7 +356,7 @@ var gb_map_baidu = (function(){
348 //根据站点名称 计算marker 宽度 356 //根据站点名称 计算marker 宽度
349 var w = statio.stationName.length * 12 + 4 357 var w = statio.stationName.length * 12 + 4
350 ,iw=w-2; 358 ,iw=w-2;
351 - var icon = new BMap.Icon(gb_map_imap.createStationIcon(statio, w), new BMap.Size(iw,20), {anchor: new BMap.Size(iw/2,20)}) 359 + var icon = new BMap.Icon(gb_map_imap.createStationIcon(statio, w), new BMap.Size(iw,24), {anchor: new BMap.Size(iw/2,24)})
352 marker.setIcon(icon); 360 marker.setIcon(icon);
353 361
354 //信息窗口 362 //信息窗口
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/gaode.js
@@ -63,6 +63,10 @@ var gb_map_gaode = (function() { @@ -63,6 +63,10 @@ var gb_map_gaode = (function() {
63 carparks={}; 63 carparks={};
64 map.clearMap(); 64 map.clearMap();
65 }, 65 },
  66 + clearAllGps: function () {
  67 + map.remove(gb_common.get_vals(realMarkers));
  68 + realMarkers = {};
  69 + },
66 drawLine: function(opt){ 70 drawLine: function(opt){
67 if(polylines[opt.id]) 71 if(polylines[opt.id])
68 return; 72 return;
@@ -331,17 +335,17 @@ var gb_map_gaode = (function() { @@ -331,17 +335,17 @@ var gb_map_gaode = (function() {
331 //如果需要标识角度 335 //如果需要标识角度
332 if(config.carIcon.angle) { 336 if(config.carIcon.angle) {
333 marker.setIcon(new AMap.Icon({ 337 marker.setIcon(new AMap.Icon({
334 - size: new AMap.Size(w, 75), //图标大小 338 + size: new AMap.Size(w, 70), //图标大小
335 image: gb_map_imap.createCarIconRotation(gps, w) 339 image: gb_map_imap.createCarIconRotation(gps, w)
336 })); 340 }));
337 marker.setOffset(new AMap.Pixel(-(w / 2), -35)); 341 marker.setOffset(new AMap.Pixel(-(w / 2), -35));
338 } 342 }
339 else{ 343 else{
340 marker.setIcon(new AMap.Icon({ 344 marker.setIcon(new AMap.Icon({
341 - size: new AMap.Size(w, 25), //图标大小 345 + size: new AMap.Size(w, 20), //图标大小
342 image: gb_map_imap.createCarIcon(gps, w) 346 image: gb_map_imap.createCarIcon(gps, w)
343 })); 347 }));
344 - marker.setOffset(new AMap.Pixel(-(w / 2), -12.5)); 348 + marker.setOffset(new AMap.Pixel(-(w / 2), -10.5));
345 } 349 }
346 } 350 }
347 351
@@ -354,10 +358,10 @@ var gb_map_gaode = (function() { @@ -354,10 +358,10 @@ var gb_map_gaode = (function() {
354 map: map, 358 map: map,
355 position: [statio.gcj_lon, statio.gcj_lat], 359 position: [statio.gcj_lon, statio.gcj_lat],
356 icon: new AMap.Icon({ 360 icon: new AMap.Icon({
357 - size: new AMap.Size(w, 20), //图标大小 361 + size: new AMap.Size(w, 24), //图标大小
358 image: gb_map_imap.createStationIcon(statio, w) 362 image: gb_map_imap.createStationIcon(statio, w)
359 }), 363 }),
360 - offset: new AMap.Pixel(-(w/2), -20) 364 + offset: new AMap.Pixel(-(w/2), -24)
361 }); 365 });
362 366
363 //信息窗口 367 //信息窗口
src/main/resources/static/real_control_v2/mapmonitor/js/map_overlay_manager.js
@@ -11,25 +11,22 @@ var gb_map_overlay_mge = (function () { @@ -11,25 +11,22 @@ var gb_map_overlay_mge = (function () {
11 //如果地图正在重绘,暂时不刷新GPS 11 //如果地图正在重绘,暂时不刷新GPS
12 if(reDrawing) 12 if(reDrawing)
13 return; 13 return;
14 - var all = addArr.concat(upArr).concat(upDownChange);  
15 - gpsRefreshAll(all); 14 + //var all = addArr.concat(upArr).concat(upDownChange);
  15 + gpsRefreshAll(addArr, upArr, upDownChange);
16 16
17 }; 17 };
18 18
19 - var gpsRefreshAll = function (allList) {  
20 - //是否需要添加樹節點  
21 - var newTreeNodes=[], currArray=gb_map_gps_tree.all_devices();  
22 - $.each(allList, function () {  
23 - if(currArray.indexOf(this.deviceId) == -1)  
24 - newTreeNodes.push(this);  
25 - });  
26 -  
27 - gb_map_imap.call('drawRealGpsMarker', {gpsList: allList});  
28 -  
29 - //有新设备上线  
30 - if(newTreeNodes.length > 0){  
31 - gb_map_gps_tree.create_node(newTreeNodes, showOverlayByChecks); 19 + var gpsRefreshAll = function (addArr, upArr, upDownChange) {
  20 + //更新设备树菜单
  21 + if(gb_map_gps_tree.readyStatus()){
  22 + gb_map_gps_tree.create_node(addArr);
  23 + gb_map_gps_tree.update_node(upArr);
  24 + gb_map_gps_tree.changeUpDown(upDownChange);
32 } 25 }
  26 +
  27 + //更新地图
  28 + var all = addArr.concat(upArr).concat(upDownChange);
  29 + gb_map_imap.call('drawRealGpsMarker', {gpsList: all});
33 }; 30 };
34 31
35 var deviceFilter = function (node) { 32 var deviceFilter = function (node) {
@@ -83,15 +80,26 @@ var gb_map_overlay_mge = (function () { @@ -83,15 +80,26 @@ var gb_map_overlay_mge = (function () {
83 gb_map_imap.call('clearAll'); 80 gb_map_imap.call('clearAll');
84 81
85 drawAllSection(); 82 drawAllSection();
86 - //初始绘制  
87 - gpsRefreshAll(gb_common.get_vals(gb_data_gps.allGps)); 83 + //重绘GPS
  84 + gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)});
88 85
89 showOverlayByChecks(); 86 showOverlayByChecks();
90 //显示路段 87 //显示路段
91 showSection(getCheckedDevice()); 88 showSection(getCheckedDevice());
92 89
93 reDrawing = false; 90 reDrawing = false;
94 - } 91 + };
  92 +
  93 + //重绘GPS
  94 + var reDrawGps = function () {
  95 + reDrawing = true;
  96 + gb_map_imap.call('clearAllGps');
  97 + //重绘GPS
  98 + gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)});
  99 +
  100 + showOverlayByChecks();
  101 + reDrawing = false;
  102 + };
95 103
96 var init = function () { 104 var init = function () {
97 reDraw(); 105 reDraw();
@@ -102,7 +110,7 @@ var gb_map_overlay_mge = (function () { @@ -102,7 +110,7 @@ var gb_map_overlay_mge = (function () {
102 centerToRational(); 110 centerToRational();
103 }; 111 };
104 112
105 - 113 +
106 var showOverlayByChecks = function () { 114 var showOverlayByChecks = function () {
107 var chs = getCheckedDevice(),chsMap={}; 115 var chs = getCheckedDevice(),chsMap={};
108 $.each(chs, function () { 116 $.each(chs, function () {
@@ -115,7 +123,7 @@ var gb_map_overlay_mge = (function () { @@ -115,7 +123,7 @@ var gb_map_overlay_mge = (function () {
115 showSection(chs); 123 showSection(chs);
116 124
117 }; 125 };
118 - 126 +
119 var _focus = function (deviceId) { 127 var _focus = function (deviceId) {
120 gb_map_imap.call('goToMarker', {deviceId: deviceId}); 128 gb_map_imap.call('goToMarker', {deviceId: deviceId});
121 //打开信息窗口 129 //打开信息窗口
@@ -125,14 +133,14 @@ var gb_map_overlay_mge = (function () { @@ -125,14 +133,14 @@ var gb_map_overlay_mge = (function () {
125 //站点获得焦点 133 //站点获得焦点
126 var _focus_station = function (station) { 134 var _focus_station = function (station) {
127 gb_map_imap.call('goToStation', station.stationCode); 135 gb_map_imap.call('goToStation', station.stationCode);
128 - } 136 + };
129 137
130 //停车场获得焦点 138 //停车场获得焦点
131 var _focus_carpark = function (carpark) { 139 var _focus_carpark = function (carpark) {
132 //console.log('_focus_carpark', carpark); 140 //console.log('_focus_carpark', carpark);
133 gb_map_imap.call('goToCarpark', carpark.parkCode); 141 gb_map_imap.call('goToCarpark', carpark.parkCode);
134 - }  
135 - 142 + };
  143 +
136 function getCheckedDevice() { 144 function getCheckedDevice() {
137 return gb_map_gps_tree.getChecked().filter(deviceFilter); 145 return gb_map_gps_tree.getChecked().filter(deviceFilter);
138 } 146 }
@@ -144,7 +152,7 @@ var gb_map_overlay_mge = (function () { @@ -144,7 +152,7 @@ var gb_map_overlay_mge = (function () {
144 gb_map_imap.call('drawStationMarker', {list: list}); 152 gb_map_imap.call('drawStationMarker', {list: list});
145 //绘制电子围栏 153 //绘制电子围栏
146 drawElectronicFence(list); 154 drawElectronicFence(list);
147 - } 155 + };
148 156
149 //绘制电子围栏 157 //绘制电子围栏
150 var drawElectronicFence = function (list) { 158 var drawElectronicFence = function (list) {
@@ -162,13 +170,13 @@ var gb_map_overlay_mge = (function () { @@ -162,13 +170,13 @@ var gb_map_overlay_mge = (function () {
162 fun=this.shapesType=='r'?drawCircle:drawPolygon; 170 fun=this.shapesType=='r'?drawCircle:drawPolygon;
163 fun(this); 171 fun(this);
164 }); 172 });
165 - } 173 + };
166 174
167 //绘制停车场 175 //绘制停车场
168 var drawCarpark = function () { 176 var drawCarpark = function () {
169 var list = gb_map_spatial_data.gteCheckedCarpark(); 177 var list = gb_map_spatial_data.gteCheckedCarpark();
170 gb_map_imap.call('drawCarpark', {list: list}); 178 gb_map_imap.call('drawCarpark', {list: list});
171 - } 179 + };
172 180
173 var drawCircle=function (data) { 181 var drawCircle=function (data) {
174 var config = gb_map_config.getConfig().section.color; 182 var config = gb_map_config.getConfig().section.color;
@@ -185,7 +193,7 @@ var gb_map_overlay_mge = (function () { @@ -185,7 +193,7 @@ var gb_map_overlay_mge = (function () {
185 }; 193 };
186 194
187 gb_map_imap.call('drawCircle', opt); 195 gb_map_imap.call('drawCircle', opt);
188 - } 196 + };
189 197
190 var drawPolygon=function (data) { 198 var drawPolygon=function (data) {
191 var config = gb_map_config.getConfig().section.color; 199 var config = gb_map_config.getConfig().section.color;
@@ -199,7 +207,7 @@ var gb_map_overlay_mge = (function () { @@ -199,7 +207,7 @@ var gb_map_overlay_mge = (function () {
199 }; 207 };
200 208
201 gb_map_imap.call('drawPolygon', opt); 209 gb_map_imap.call('drawPolygon', opt);
202 - } 210 + };
203 211
204 //地图居中至合理的位置 212 //地图居中至合理的位置
205 var centerToRational=function () { 213 var centerToRational=function () {
@@ -208,8 +216,8 @@ var gb_map_overlay_mge = (function () { @@ -208,8 +216,8 @@ var gb_map_overlay_mge = (function () {
208 var id=chs[0].data.lineId+'_'+chs[0].data.upDown; 216 var id=chs[0].data.lineId+'_'+chs[0].data.upDown;
209 gb_map_imap.call('centerToLine', {id: id}); 217 gb_map_imap.call('centerToLine', {id: id});
210 } 218 }
211 - }  
212 - 219 + };
  220 +
213 return { 221 return {
214 init: init, 222 init: init,
215 refresh: showOverlayByChecks, 223 refresh: showOverlayByChecks,
@@ -226,6 +234,7 @@ var gb_map_overlay_mge = (function () { @@ -226,6 +234,7 @@ var gb_map_overlay_mge = (function () {
226 return temps['map-win-carpark-detail-temp'](data); 234 return temps['map-win-carpark-detail-temp'](data);
227 }, 235 },
228 reDraw: reDraw, 236 reDraw: reDraw,
  237 + reDrawGps: reDrawGps,
229 getCheckedDevice: getCheckedDevice, 238 getCheckedDevice: getCheckedDevice,
230 drawStation: drawStation, 239 drawStation: drawStation,
231 drawElectronicFence: drawElectronicFence, 240 drawElectronicFence: drawElectronicFence,
src/main/resources/static/real_control_v2/mapmonitor/real.html
@@ -5,31 +5,18 @@ @@ -5,31 +5,18 @@
5 <link rel="stylesheet" href="/real_control_v2/mapmonitor/css/real.css"/> 5 <link rel="stylesheet" href="/real_control_v2/mapmonitor/css/real.css"/>
6 <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/progress.gradient.min.css"> 6 <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/progress.gradient.min.css">
7 7
8 -<div class="map-system-msg">  
9 - <a class="z-depth-2" href="/pages/mapmonitor/alone/wrap.html" target="_blank">  
10 - 当前地图模块正在维护升级中,请点这里打开原版地图  
11 -  
12 - <i class="uk-icon-close map-system-msg-close"></i>  
13 - </a> 8 +<div class="map-system-msg flex-left">
  9 + <a class="z-depth-2" href="/pages/mapmonitor/alone/wrap.html" target="_blank"></a>
14 </div> 10 </div>
15 -<script>  
16 - $('.map-system-msg-close').on('click', function (e) {  
17 - e.stopPropagation();  
18 - $('.map-system-msg').addClass('flex-left');  
19 - return false;  
20 - });  
21 -  
22 - setTimeout(function () {  
23 - $('.map-system-msg-close').trigger('click');  
24 - }, 2000);  
25 -</script>  
26 11
27 <div id="real_map_container"></div> 12 <div id="real_map_container"></div>
28 <div class="real_right_gps_panel"> 13 <div class="real_right_gps_panel">
29 - <form class="uk-form" data-uk-margin="">  
30 - <div class="uk-form-icon">  
31 - <i class="uk-icon-search"></i>  
32 - <input type="text" placeholder="搜索..." disabled> 14 + <form class="uk-form" >
  15 + <div class="uk-autocomplete uk-form ral-gps-autocom" style="width: 100%;">
  16 + <div class="uk-form-icon">
  17 + <i class="uk-icon-search"></i>
  18 + <input type="text" placeholder="搜索...">
  19 + </div>
33 </div> 20 </div>
34 </form> 21 </form>
35 22
@@ -40,7 +27,7 @@ @@ -40,7 +27,7 @@
40 <!--<div id="handle" class="ui-resizable-handle ui-resizable-n"></div>--> 27 <!--<div id="handle" class="ui-resizable-handle ui-resizable-n"></div>-->
41 <div class="real_br_cont map_config_wrap"></div> 28 <div class="real_br_cont map_config_wrap"></div>
42 <div class="telescopic"> 29 <div class="telescopic">
43 - <i class="uk-icon-angle-double-up" ></i> 30 + <i class="uk-icon-angle-double-up"></i>
44 </div> 31 </div>
45 </div> 32 </div>
46 33