Commit 8d6fcdebc620b5f2f7c3942b73e154fb6531e322
1 parent
e8bc5f84
update...
Showing
24 changed files
with
1653 additions
and
34 deletions
pom.xml
| ... | ... | @@ -155,6 +155,12 @@ |
| 155 | 155 | <artifactId>poi</artifactId> |
| 156 | 156 | <version>3.15</version> |
| 157 | 157 | </dependency> |
| 158 | + | |
| 159 | + <dependency> | |
| 160 | + <groupId>com.github.stuxuhai</groupId> | |
| 161 | + <artifactId>jpinyin</artifactId> | |
| 162 | + <version>1.1.8</version> | |
| 163 | + </dependency> | |
| 158 | 164 | </dependencies> |
| 159 | 165 | |
| 160 | 166 | <build> | ... | ... |
src/main/java/com/bsth/controller/basic/BusController.java
| 1 | 1 | package com.bsth.controller.basic; |
| 2 | 2 | |
| 3 | +import com.bsth.common.ResponseCode; | |
| 4 | +import com.bsth.data.basic.bus.BusDataBuffer; | |
| 3 | 5 | import com.bsth.entity.Bus; |
| 4 | 6 | import com.bsth.service.basic.BusService; |
| 7 | +import org.slf4j.Logger; | |
| 8 | +import org.slf4j.LoggerFactory; | |
| 5 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 6 | 10 | import org.springframework.web.bind.annotation.*; |
| 7 | 11 | |
| 12 | +import java.util.ArrayList; | |
| 13 | +import java.util.HashMap; | |
| 14 | +import java.util.List; | |
| 8 | 15 | import java.util.Map; |
| 9 | 16 | |
| 10 | 17 | /** |
| ... | ... | @@ -17,6 +24,8 @@ public class BusController { |
| 17 | 24 | @Autowired |
| 18 | 25 | BusService busService; |
| 19 | 26 | |
| 27 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 28 | + | |
| 20 | 29 | @RequestMapping("list") |
| 21 | 30 | public Map<String, Object> list(@RequestParam Map<String, Object> map, |
| 22 | 31 | @RequestParam(defaultValue = "0") int page, |
| ... | ... | @@ -69,4 +78,26 @@ public class BusController { |
| 69 | 78 | public Map<String, Object> all(){ |
| 70 | 79 | return busService.all(); |
| 71 | 80 | } |
| 81 | + | |
| 82 | + | |
| 83 | + @RequestMapping("allConcise") | |
| 84 | + public Map<String, Object> allPersionConcise(){ | |
| 85 | + Map<String, Object> rs = new HashMap(); | |
| 86 | + try{ | |
| 87 | + List<Bus> list = BusDataBuffer.findAll(); | |
| 88 | + | |
| 89 | + List<String> mapList = new ArrayList<>(list.size()); | |
| 90 | + for(Bus b : list){ | |
| 91 | + mapList.add(b.getNbbm()); | |
| 92 | + } | |
| 93 | + | |
| 94 | + rs.put("list", mapList); | |
| 95 | + rs.put("status", ResponseCode.SUCCESS); | |
| 96 | + }catch (Exception e){ | |
| 97 | + logger.error("", e); | |
| 98 | + rs.put("status", ResponseCode.ERROR); | |
| 99 | + } | |
| 100 | + | |
| 101 | + return rs; | |
| 102 | + } | |
| 72 | 103 | } | ... | ... |
src/main/java/com/bsth/controller/basic/CompanyController.java
| ... | ... | @@ -5,6 +5,9 @@ import com.bsth.util.ConfigUtil; |
| 5 | 5 | import org.springframework.web.bind.annotation.RequestMapping; |
| 6 | 6 | import org.springframework.web.bind.annotation.RestController; |
| 7 | 7 | |
| 8 | +import java.util.HashMap; | |
| 9 | +import java.util.Map; | |
| 10 | + | |
| 8 | 11 | /** |
| 9 | 12 | * Created by panzhao on 2017/8/2. |
| 10 | 13 | */ |
| ... | ... | @@ -13,6 +16,8 @@ import org.springframework.web.bind.annotation.RestController; |
| 13 | 16 | public class CompanyController { |
| 14 | 17 | |
| 15 | 18 | static String jsonStr; |
| 19 | + static String tccName; | |
| 20 | + static String tccCode; | |
| 16 | 21 | |
| 17 | 22 | static{ |
| 18 | 23 | JSONObject json = JSONObject.parseObject(ConfigUtil.get("data.company.json")); |
| ... | ... | @@ -22,10 +27,20 @@ public class CompanyController { |
| 22 | 27 | authJson.put(codes[i], json.get(codes[i])); |
| 23 | 28 | } |
| 24 | 29 | jsonStr = authJson.toJSONString(); |
| 30 | + tccName = ConfigUtil.get("tcc.name"); | |
| 31 | + tccCode = ConfigUtil.get("tcc.code"); | |
| 25 | 32 | } |
| 26 | 33 | |
| 27 | 34 | @RequestMapping |
| 28 | 35 | public String get(){ |
| 29 | 36 | return jsonStr; |
| 30 | 37 | } |
| 38 | + | |
| 39 | + @RequestMapping(value = "curr_tcc_info") | |
| 40 | + public Map<String, String> getTccName(){ | |
| 41 | + Map<String, String> map = new HashMap<>(); | |
| 42 | + map.put("name", tccName); | |
| 43 | + map.put("code", tccCode); | |
| 44 | + return map; | |
| 45 | + } | |
| 31 | 46 | } | ... | ... |
src/main/java/com/bsth/controller/basic/PersonController.java
| 1 | 1 | package com.bsth.controller.basic; |
| 2 | 2 | |
| 3 | +import com.bsth.common.ResponseCode; | |
| 4 | +import com.bsth.data.basic.person.PersonDataBuffer; | |
| 3 | 5 | import com.bsth.entity.Person; |
| 4 | 6 | import com.bsth.service.basic.PersonService; |
| 7 | +import org.slf4j.Logger; | |
| 8 | +import org.slf4j.LoggerFactory; | |
| 5 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 6 | 10 | import org.springframework.web.bind.annotation.*; |
| 7 | 11 | |
| 12 | +import java.util.ArrayList; | |
| 13 | +import java.util.HashMap; | |
| 14 | +import java.util.List; | |
| 8 | 15 | import java.util.Map; |
| 9 | 16 | |
| 10 | 17 | /** |
| ... | ... | @@ -17,6 +24,8 @@ public class PersonController { |
| 17 | 24 | @Autowired |
| 18 | 25 | PersonService personService; |
| 19 | 26 | |
| 27 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 28 | + | |
| 20 | 29 | @RequestMapping("list") |
| 21 | 30 | public Map<String, Object> list(@RequestParam Map<String, Object> map, |
| 22 | 31 | @RequestParam(defaultValue = "0") int page, |
| ... | ... | @@ -57,4 +66,34 @@ public class PersonController { |
| 57 | 66 | public void refresh(){ |
| 58 | 67 | personService.refresh(); |
| 59 | 68 | } |
| 69 | + | |
| 70 | + | |
| 71 | + @RequestMapping("allConcise") | |
| 72 | + public Map<String, Object> allPersionConcise(){ | |
| 73 | + Map<String, Object> rs = new HashMap(); | |
| 74 | + try{ | |
| 75 | + Map<String, Object> item; | |
| 76 | + | |
| 77 | + List<Person> list = PersonDataBuffer.findAll(); | |
| 78 | + | |
| 79 | + List<Map<String, Object>> mapList = new ArrayList<>(list.size()); | |
| 80 | + for(Person p : list){ | |
| 81 | + item = new HashMap<>(); | |
| 82 | + item.put("name", p.getPersonnelName()); | |
| 83 | + item.put("code", p.getJobCode().indexOf("-")!=-1?p.getJobCode().split("-")[1]:p.getJobCode()); | |
| 84 | + item.put("fc", p.getFullChars()); | |
| 85 | + item.put("cc", p.getCamelChars()); | |
| 86 | + | |
| 87 | + mapList.add(item); | |
| 88 | + } | |
| 89 | + | |
| 90 | + rs.put("list", mapList); | |
| 91 | + rs.put("status", ResponseCode.SUCCESS); | |
| 92 | + }catch (Exception e){ | |
| 93 | + logger.error("", e); | |
| 94 | + rs.put("status", ResponseCode.ERROR); | |
| 95 | + } | |
| 96 | + | |
| 97 | + return rs; | |
| 98 | + } | |
| 60 | 99 | } | ... | ... |
src/main/java/com/bsth/controller/schedule/InOutScheduleController.java
| ... | ... | @@ -35,4 +35,9 @@ public class InOutScheduleController { |
| 35 | 35 | public Map<String, Object> findAbnormalByLineArray(@RequestParam String idx){ |
| 36 | 36 | return inOutScheduleService.findAbnormalByLineArray(idx); |
| 37 | 37 | } |
| 38 | + | |
| 39 | + @RequestMapping("findSchByLpName") | |
| 40 | + public Map<String, Object> findSchByLpName(@RequestParam String lineCode, @RequestParam String lpName){ | |
| 41 | + return inOutScheduleService.findSchByLpName(lineCode, lpName); | |
| 42 | + } | |
| 38 | 43 | } | ... | ... |
src/main/java/com/bsth/data/abnormal/entity/AbnormalEntity.java
| ... | ... | @@ -42,6 +42,8 @@ public class AbnormalEntity { |
| 42 | 42 | */ |
| 43 | 43 | private String lineCode; |
| 44 | 44 | |
| 45 | + private String lpName; | |
| 46 | + | |
| 45 | 47 | public int getType() { |
| 46 | 48 | return type; |
| 47 | 49 | } |
| ... | ... | @@ -97,4 +99,12 @@ public class AbnormalEntity { |
| 97 | 99 | public void setPlanTime(long planTime) { |
| 98 | 100 | this.planTime = planTime; |
| 99 | 101 | } |
| 102 | + | |
| 103 | + public String getLpName() { | |
| 104 | + return lpName; | |
| 105 | + } | |
| 106 | + | |
| 107 | + public void setLpName(String lpName) { | |
| 108 | + this.lpName = lpName; | |
| 109 | + } | |
| 100 | 110 | } | ... | ... |
src/main/java/com/bsth/data/abnormal/scanner/AttendanceAbnormalScanner.java
| ... | ... | @@ -30,6 +30,9 @@ public class AttendanceAbnormalScanner { |
| 30 | 30 | Long t = System.currentTimeMillis(); |
| 31 | 31 | for(ScheduleInOut sio : list){ |
| 32 | 32 | |
| 33 | + if(sio.getStatus() == -1) | |
| 34 | + continue;//烂班 | |
| 35 | + | |
| 33 | 36 | if(sio.getAttJhTime() >= t) |
| 34 | 37 | continue;//时间未到 |
| 35 | 38 | |
| ... | ... | @@ -39,7 +42,6 @@ public class AttendanceAbnormalScanner { |
| 39 | 42 | if(sio.getAbnormalStatus() < 0) |
| 40 | 43 | continue;//已报异常 |
| 41 | 44 | |
| 42 | - | |
| 43 | 45 | ae = new AbnormalEntity(); |
| 44 | 46 | ae.setType(0); |
| 45 | 47 | ae.setSchId(sio.getId()); |
| ... | ... | @@ -47,7 +49,7 @@ public class AttendanceAbnormalScanner { |
| 47 | 49 | ae.setJsy(sio.getJsy()); |
| 48 | 50 | ae.setPlanTimeStr(fmtHHmm.print(sio.getAttJhTime())); |
| 49 | 51 | ae.setPlanTime(sio.getAttJhTime()); |
| 50 | - | |
| 52 | + ae.setLpName(sio.getLpName()); | |
| 51 | 53 | |
| 52 | 54 | mainAbnormalClient.put(ae); |
| 53 | 55 | ... | ... |
src/main/java/com/bsth/data/basic/person/PersonDataBuffer.java
| ... | ... | @@ -9,6 +9,8 @@ import com.bsth.data.utils.HttpClientUtils; |
| 9 | 9 | import com.bsth.data.utils.RsRequestUtils; |
| 10 | 10 | import com.bsth.entity.Person; |
| 11 | 11 | import com.bsth.util.ConfigUtil; |
| 12 | +import com.github.stuxuhai.jpinyin.PinyinFormat; | |
| 13 | +import com.github.stuxuhai.jpinyin.PinyinHelper; | |
| 12 | 14 | import com.google.common.base.Splitter; |
| 13 | 15 | import org.apache.commons.lang3.StringUtils; |
| 14 | 16 | import org.slf4j.Logger; |
| ... | ... | @@ -114,6 +116,13 @@ public class PersonDataBuffer implements CommandLineRunner { |
| 114 | 116 | |
| 115 | 117 | if(tempList.size() == 0) |
| 116 | 118 | return; |
| 119 | + | |
| 120 | + //做一下拼音映射 | |
| 121 | + for(Person p : tempList){ | |
| 122 | + p.setFullChars(PinyinHelper.convertToPinyinString(p.getPersonnelName(), "" , PinyinFormat.WITHOUT_TONE).toUpperCase()); | |
| 123 | + p.setCamelChars(PinyinHelper.getShortPinyin(p.getPersonnelName()).toUpperCase()); | |
| 124 | + } | |
| 125 | + | |
| 117 | 126 | list = tempList; |
| 118 | 127 | idMaps = idMapsCopy; |
| 119 | 128 | logger.info("人员信息过滤," + list.size()); | ... | ... |
src/main/java/com/bsth/data/schedule/dto/ScheduleInOut.java
| ... | ... | @@ -23,7 +23,9 @@ public class ScheduleInOut { |
| 23 | 23 | private Long fcsjActualTime;//实际发车时间,集调gps |
| 24 | 24 | private Long zdsjActualTime; |
| 25 | 25 | private boolean sflj; |
| 26 | - private String remarks; | |
| 26 | + private String remarks;//和调度系统共享的备注 | |
| 27 | + | |
| 28 | + private String remarks2;//场站内备注 | |
| 27 | 29 | private String bcType; |
| 28 | 30 | /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */ |
| 29 | 31 | private int status; |
| ... | ... | @@ -287,4 +289,12 @@ public class ScheduleInOut { |
| 287 | 289 | public void setAbnormalStatus(int abnormalStatus) { |
| 288 | 290 | this.abnormalStatus = abnormalStatus; |
| 289 | 291 | } |
| 292 | + | |
| 293 | + public String getRemarks2() { | |
| 294 | + return remarks2; | |
| 295 | + } | |
| 296 | + | |
| 297 | + public void setRemarks2(String remarks2) { | |
| 298 | + this.remarks2 = remarks2; | |
| 299 | + } | |
| 290 | 300 | } | ... | ... |
src/main/java/com/bsth/data/schedule/dto/dd/ChildTaskPlan.java
0 → 100644
| 1 | +package com.bsth.data.schedule.dto.dd; | |
| 2 | + | |
| 3 | +import java.util.Date; | |
| 4 | + | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * | |
| 8 | + * @ClassName: ChildTaskPlan | |
| 9 | + * @Description: TODO(子任务) | |
| 10 | + * @author PanZhao | |
| 11 | + * @date 2016年6月20日 上午11:22:22 | |
| 12 | + * | |
| 13 | + */ | |
| 14 | +public class ChildTaskPlan { | |
| 15 | + | |
| 16 | + private Long id; | |
| 17 | + | |
| 18 | + /** | |
| 19 | + * 任务类型1 | |
| 20 | + * 正常,临加 | |
| 21 | + */ | |
| 22 | + private String type1; | |
| 23 | + | |
| 24 | + /** | |
| 25 | + * 任务类型2 | |
| 26 | + * 1 正常 2 进场 3 出场 | |
| 27 | + */ | |
| 28 | + private String type2; | |
| 29 | + | |
| 30 | + /** | |
| 31 | + * 起点 | |
| 32 | + */ | |
| 33 | + private String startStation; | |
| 34 | + | |
| 35 | + /** | |
| 36 | + * 起点站名称 | |
| 37 | + */ | |
| 38 | + private String startStationName; | |
| 39 | + | |
| 40 | + /** | |
| 41 | + * 终点 | |
| 42 | + */ | |
| 43 | + private String endStation; | |
| 44 | + | |
| 45 | + /** | |
| 46 | + * 终点站名称 | |
| 47 | + */ | |
| 48 | + private String endStationName; | |
| 49 | + | |
| 50 | + /** | |
| 51 | + * 里程类型 | |
| 52 | + */ | |
| 53 | + private String mileageType; | |
| 54 | + | |
| 55 | + /** | |
| 56 | + * 里程 | |
| 57 | + */ | |
| 58 | + private Float mileage; | |
| 59 | + | |
| 60 | + /** | |
| 61 | + * 开始时间 HH:mm | |
| 62 | + */ | |
| 63 | + private String startDate; | |
| 64 | + | |
| 65 | + /** | |
| 66 | + * 结束时间 HH:mm | |
| 67 | + */ | |
| 68 | + private String endDate; | |
| 69 | + | |
| 70 | + /** | |
| 71 | + * 是否烂班 | |
| 72 | + */ | |
| 73 | + private boolean destroy; | |
| 74 | + | |
| 75 | + /** | |
| 76 | + * 烂班原因 -烂班时,该字段仍有值并 =reason | |
| 77 | + */ | |
| 78 | + private String destroyReason; | |
| 79 | + | |
| 80 | + /** | |
| 81 | + * 包括 烂班原因、进出场原因、换车原因 等 | |
| 82 | + */ | |
| 83 | + private String reason; | |
| 84 | + | |
| 85 | + /** | |
| 86 | + * 车辆 如果为空,继承主任务 | |
| 87 | + */ | |
| 88 | + private String nbbm; | |
| 89 | + | |
| 90 | + /** | |
| 91 | + * 中途换车营运, 新车关联的主任务ID,子任务删除时,主任务ID将级联 | |
| 92 | + */ | |
| 93 | + private Long ccId; | |
| 94 | + | |
| 95 | + /** | |
| 96 | + * 为true 则无售票员, 否则继承主任务 | |
| 97 | + */ | |
| 98 | + private boolean noClerk; | |
| 99 | + | |
| 100 | + /** 创建日期 */ | |
| 101 | + private Date createDate; | |
| 102 | + | |
| 103 | + private String remarks; | |
| 104 | + | |
| 105 | + public Long getId() { | |
| 106 | + return id; | |
| 107 | + } | |
| 108 | + | |
| 109 | + public void setId(Long id) { | |
| 110 | + this.id = id; | |
| 111 | + } | |
| 112 | + | |
| 113 | + public String getType1() { | |
| 114 | + return type1; | |
| 115 | + } | |
| 116 | + | |
| 117 | + public void setType1(String type1) { | |
| 118 | + this.type1 = type1; | |
| 119 | + } | |
| 120 | + | |
| 121 | + public String getType2() { | |
| 122 | + return type2; | |
| 123 | + } | |
| 124 | + | |
| 125 | + public void setType2(String type2) { | |
| 126 | + this.type2 = type2; | |
| 127 | + } | |
| 128 | + | |
| 129 | + public String getStartStation() { | |
| 130 | + return startStation; | |
| 131 | + } | |
| 132 | + | |
| 133 | + public void setStartStation(String startStation) { | |
| 134 | + this.startStation = startStation; | |
| 135 | + } | |
| 136 | + | |
| 137 | + public String getEndStation() { | |
| 138 | + return endStation; | |
| 139 | + } | |
| 140 | + | |
| 141 | + public void setEndStation(String endStation) { | |
| 142 | + this.endStation = endStation; | |
| 143 | + } | |
| 144 | + | |
| 145 | + public String getMileageType() { | |
| 146 | + return mileageType; | |
| 147 | + } | |
| 148 | + | |
| 149 | + public void setMileageType(String mileageType) { | |
| 150 | + this.mileageType = mileageType; | |
| 151 | + } | |
| 152 | + | |
| 153 | + public Float getMileage() { | |
| 154 | + return mileage; | |
| 155 | + } | |
| 156 | + | |
| 157 | + public void setMileage(Float mileage) { | |
| 158 | + this.mileage = mileage; | |
| 159 | + } | |
| 160 | + | |
| 161 | + public String getStartDate() { | |
| 162 | + return startDate; | |
| 163 | + } | |
| 164 | + | |
| 165 | + public void setStartDate(String startDate) { | |
| 166 | + this.startDate = startDate; | |
| 167 | + } | |
| 168 | + | |
| 169 | + public String getEndDate() { | |
| 170 | + return endDate; | |
| 171 | + } | |
| 172 | + | |
| 173 | + public void setEndDate(String endDate) { | |
| 174 | + this.endDate = endDate; | |
| 175 | + } | |
| 176 | + | |
| 177 | + public boolean isDestroy() { | |
| 178 | + return destroy; | |
| 179 | + } | |
| 180 | + | |
| 181 | + public void setDestroy(boolean destroy) { | |
| 182 | + this.destroy = destroy; | |
| 183 | + } | |
| 184 | + | |
| 185 | + public String getDestroyReason() { | |
| 186 | + return destroyReason; | |
| 187 | + } | |
| 188 | + | |
| 189 | + public void setDestroyReason(String destroyReason) { | |
| 190 | + this.destroyReason = destroyReason; | |
| 191 | + } | |
| 192 | + | |
| 193 | + public String getRemarks() { | |
| 194 | + return remarks; | |
| 195 | + } | |
| 196 | + | |
| 197 | + public void setRemarks(String remarks) { | |
| 198 | + this.remarks = remarks; | |
| 199 | + } | |
| 200 | + | |
| 201 | + public String getStartStationName() { | |
| 202 | + return startStationName; | |
| 203 | + } | |
| 204 | + | |
| 205 | + public void setStartStationName(String startStationName) { | |
| 206 | + this.startStationName = startStationName; | |
| 207 | + } | |
| 208 | + | |
| 209 | + public String getEndStationName() { | |
| 210 | + return endStationName; | |
| 211 | + } | |
| 212 | + | |
| 213 | + public void setEndStationName(String endStationName) { | |
| 214 | + this.endStationName = endStationName; | |
| 215 | + } | |
| 216 | + | |
| 217 | + @Override | |
| 218 | + public boolean equals(Object obj) { | |
| 219 | + return this.id.equals(((ChildTaskPlan)obj).getId()); | |
| 220 | + } | |
| 221 | + | |
| 222 | + public Date getCreateDate() { | |
| 223 | + return createDate; | |
| 224 | + } | |
| 225 | + | |
| 226 | + public void setCreateDate(Date createDate) { | |
| 227 | + this.createDate = createDate; | |
| 228 | + } | |
| 229 | + | |
| 230 | + public String getReason() { | |
| 231 | + return reason; | |
| 232 | + } | |
| 233 | + | |
| 234 | + public void setReason(String reason) { | |
| 235 | + this.reason = reason; | |
| 236 | + } | |
| 237 | + | |
| 238 | + public String getNbbm() { | |
| 239 | + return nbbm; | |
| 240 | + } | |
| 241 | + | |
| 242 | + public void setNbbm(String nbbm) { | |
| 243 | + this.nbbm = nbbm; | |
| 244 | + } | |
| 245 | + | |
| 246 | + public boolean isNoClerk() { | |
| 247 | + return noClerk; | |
| 248 | + } | |
| 249 | + | |
| 250 | + public void setNoClerk(boolean noClerk) { | |
| 251 | + this.noClerk = noClerk; | |
| 252 | + } | |
| 253 | + | |
| 254 | + public Long getCcId() { | |
| 255 | + return ccId; | |
| 256 | + } | |
| 257 | + | |
| 258 | + public void setCcId(Long ccId) { | |
| 259 | + this.ccId = ccId; | |
| 260 | + } | |
| 261 | +} | ... | ... |
src/main/java/com/bsth/data/schedule/dto/dd/ScheduleRealInfo.java
0 → 100644
| 1 | +package com.bsth.data.schedule.dto.dd; | |
| 2 | + | |
| 3 | +import javax.persistence.Transient; | |
| 4 | +import java.util.Date; | |
| 5 | +import java.util.HashSet; | |
| 6 | +import java.util.Set; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * 集调班次信息 | |
| 10 | + * Created by panzhao on 2018/3/8. | |
| 11 | + */ | |
| 12 | +public class ScheduleRealInfo { | |
| 13 | + | |
| 14 | + /** 主键Id */ | |
| 15 | + private Long id; | |
| 16 | + | |
| 17 | + /** 排班日期字符串 YYYY-MM-DD */ | |
| 18 | + private String scheduleDateStr; | |
| 19 | + | |
| 20 | + /** 真实执行时间 yyyy-MM-dd */ | |
| 21 | + private String realExecDate; | |
| 22 | + | |
| 23 | + /** 线路名称 */ | |
| 24 | + private String xlName; | |
| 25 | + /** 线路编码 */ | |
| 26 | + private String xlBm; | |
| 27 | + | |
| 28 | + /** 路牌名称 */ | |
| 29 | + private String lpName; | |
| 30 | + | |
| 31 | + /** 车辆自编号 */ | |
| 32 | + private String clZbh; | |
| 33 | + | |
| 34 | + /** 驾驶员工号 */ | |
| 35 | + private String jGh; | |
| 36 | + /** 驾驶员名字 */ | |
| 37 | + private String jName; | |
| 38 | + /** 售票员工号 */ | |
| 39 | + private String sGh; | |
| 40 | + /** 售票员名字 */ | |
| 41 | + private String sName; | |
| 42 | + | |
| 43 | + /** 线路方向 */ | |
| 44 | + private String xlDir; | |
| 45 | + /** 起点站code*/ | |
| 46 | + private String qdzCode; | |
| 47 | + /** 起点站名字 */ | |
| 48 | + private String qdzName; | |
| 49 | + | |
| 50 | + /** 终点站code*/ | |
| 51 | + private String zdzCode; | |
| 52 | + /** 终点站名字 */ | |
| 53 | + private String zdzName; | |
| 54 | + | |
| 55 | + /** 计划发车时间(格式 HH:mm) */ | |
| 56 | + private String fcsj; | |
| 57 | + /** 计划发车时间戳*/ | |
| 58 | + @Transient | |
| 59 | + private Long fcsjT; | |
| 60 | + | |
| 61 | + /** 计划终点时间(格式 HH:mm) */ | |
| 62 | + private String zdsj; | |
| 63 | + /** 计划终点时间戳*/ | |
| 64 | + @Transient | |
| 65 | + private Long zdsjT; | |
| 66 | + | |
| 67 | + /** 计划里程 */ | |
| 68 | + private Double jhlc; | |
| 69 | + | |
| 70 | + /** 原始计划里程 (原计调的数据) */ | |
| 71 | + private Double jhlcOrig; | |
| 72 | + | |
| 73 | + /** 班次历时 */ | |
| 74 | + private Integer bcsj; | |
| 75 | + | |
| 76 | + /** | |
| 77 | + * 班次类型 TODO:正常班次、出场、进场、加油、区间班次、放空班次、放大站班次、两点间空驶 | |
| 78 | + */ | |
| 79 | + private String bcType; | |
| 80 | + | |
| 81 | + //放站班次 站点名称 | |
| 82 | + private String majorStationName; | |
| 83 | + | |
| 84 | + /** 创建日期 */ | |
| 85 | + private Date createDate; | |
| 86 | + /** 修改日期 */ | |
| 87 | + private Date updateDate; | |
| 88 | + | |
| 89 | + /** 实际发车时间*/ | |
| 90 | + private String fcsjActual; | |
| 91 | + /** 实际发车时间戳*/ | |
| 92 | + @Transient | |
| 93 | + private Long fcsjActualTime; | |
| 94 | + /**实际终点时间 */ | |
| 95 | + private String zdsjActual; | |
| 96 | + /** 实际终点时间戳*/ | |
| 97 | + @Transient | |
| 98 | + private Long zdsjActualTime; | |
| 99 | + | |
| 100 | + /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */ | |
| 101 | + private int status; | |
| 102 | + | |
| 103 | + private String adjustExps; | |
| 104 | + | |
| 105 | + /** 是否是临加班次 */ | |
| 106 | + private boolean sflj; | |
| 107 | + | |
| 108 | + /** 备注*/ | |
| 109 | + private String remarks; | |
| 110 | + | |
| 111 | + /**待发时间(格式 HH:mm) */ | |
| 112 | + private String dfsj; | |
| 113 | + | |
| 114 | + /**待发时间戳 */ | |
| 115 | + private Long dfsjT; | |
| 116 | + | |
| 117 | + /** 子任务 */ | |
| 118 | + private Set<ChildTaskPlan> cTasks = new HashSet<>(); | |
| 119 | + | |
| 120 | + /** 关联的公司名称 */ | |
| 121 | + private String gsName; | |
| 122 | + /** 关联的公司编码 */ | |
| 123 | + private String gsBm; | |
| 124 | + /** 关联的分公司名称 */ | |
| 125 | + private String fgsName; | |
| 126 | + /** 关联的分公司编码 */ | |
| 127 | + private String fgsBm; | |
| 128 | + | |
| 129 | + public Long getId() { | |
| 130 | + return id; | |
| 131 | + } | |
| 132 | + | |
| 133 | + public void setId(Long id) { | |
| 134 | + this.id = id; | |
| 135 | + } | |
| 136 | + | |
| 137 | + public String getScheduleDateStr() { | |
| 138 | + return scheduleDateStr; | |
| 139 | + } | |
| 140 | + | |
| 141 | + public void setScheduleDateStr(String scheduleDateStr) { | |
| 142 | + this.scheduleDateStr = scheduleDateStr; | |
| 143 | + } | |
| 144 | + | |
| 145 | + public String getRealExecDate() { | |
| 146 | + return realExecDate; | |
| 147 | + } | |
| 148 | + | |
| 149 | + public void setRealExecDate(String realExecDate) { | |
| 150 | + this.realExecDate = realExecDate; | |
| 151 | + } | |
| 152 | + | |
| 153 | + public String getXlName() { | |
| 154 | + return xlName; | |
| 155 | + } | |
| 156 | + | |
| 157 | + public void setXlName(String xlName) { | |
| 158 | + this.xlName = xlName; | |
| 159 | + } | |
| 160 | + | |
| 161 | + public String getXlBm() { | |
| 162 | + return xlBm; | |
| 163 | + } | |
| 164 | + | |
| 165 | + public void setXlBm(String xlBm) { | |
| 166 | + this.xlBm = xlBm; | |
| 167 | + } | |
| 168 | + | |
| 169 | + public String getLpName() { | |
| 170 | + return lpName; | |
| 171 | + } | |
| 172 | + | |
| 173 | + public void setLpName(String lpName) { | |
| 174 | + this.lpName = lpName; | |
| 175 | + } | |
| 176 | + | |
| 177 | + public String getClZbh() { | |
| 178 | + return clZbh; | |
| 179 | + } | |
| 180 | + | |
| 181 | + public void setClZbh(String clZbh) { | |
| 182 | + this.clZbh = clZbh; | |
| 183 | + } | |
| 184 | + | |
| 185 | + public String getjGh() { | |
| 186 | + return jGh; | |
| 187 | + } | |
| 188 | + | |
| 189 | + public void setjGh(String jGh) { | |
| 190 | + this.jGh = jGh; | |
| 191 | + } | |
| 192 | + | |
| 193 | + public String getjName() { | |
| 194 | + return jName; | |
| 195 | + } | |
| 196 | + | |
| 197 | + public void setjName(String jName) { | |
| 198 | + this.jName = jName; | |
| 199 | + } | |
| 200 | + | |
| 201 | + public String getsGh() { | |
| 202 | + return sGh; | |
| 203 | + } | |
| 204 | + | |
| 205 | + public void setsGh(String sGh) { | |
| 206 | + this.sGh = sGh; | |
| 207 | + } | |
| 208 | + | |
| 209 | + public String getsName() { | |
| 210 | + return sName; | |
| 211 | + } | |
| 212 | + | |
| 213 | + public void setsName(String sName) { | |
| 214 | + this.sName = sName; | |
| 215 | + } | |
| 216 | + | |
| 217 | + public String getXlDir() { | |
| 218 | + return xlDir; | |
| 219 | + } | |
| 220 | + | |
| 221 | + public void setXlDir(String xlDir) { | |
| 222 | + this.xlDir = xlDir; | |
| 223 | + } | |
| 224 | + | |
| 225 | + public String getQdzCode() { | |
| 226 | + return qdzCode; | |
| 227 | + } | |
| 228 | + | |
| 229 | + public void setQdzCode(String qdzCode) { | |
| 230 | + this.qdzCode = qdzCode; | |
| 231 | + } | |
| 232 | + | |
| 233 | + public String getQdzName() { | |
| 234 | + return qdzName; | |
| 235 | + } | |
| 236 | + | |
| 237 | + public void setQdzName(String qdzName) { | |
| 238 | + this.qdzName = qdzName; | |
| 239 | + } | |
| 240 | + | |
| 241 | + public String getZdzCode() { | |
| 242 | + return zdzCode; | |
| 243 | + } | |
| 244 | + | |
| 245 | + public void setZdzCode(String zdzCode) { | |
| 246 | + this.zdzCode = zdzCode; | |
| 247 | + } | |
| 248 | + | |
| 249 | + public String getZdzName() { | |
| 250 | + return zdzName; | |
| 251 | + } | |
| 252 | + | |
| 253 | + public void setZdzName(String zdzName) { | |
| 254 | + this.zdzName = zdzName; | |
| 255 | + } | |
| 256 | + | |
| 257 | + public String getFcsj() { | |
| 258 | + return fcsj; | |
| 259 | + } | |
| 260 | + | |
| 261 | + public void setFcsj(String fcsj) { | |
| 262 | + this.fcsj = fcsj; | |
| 263 | + } | |
| 264 | + | |
| 265 | + public Long getFcsjT() { | |
| 266 | + return fcsjT; | |
| 267 | + } | |
| 268 | + | |
| 269 | + public void setFcsjT(Long fcsjT) { | |
| 270 | + this.fcsjT = fcsjT; | |
| 271 | + } | |
| 272 | + | |
| 273 | + public String getZdsj() { | |
| 274 | + return zdsj; | |
| 275 | + } | |
| 276 | + | |
| 277 | + public void setZdsj(String zdsj) { | |
| 278 | + this.zdsj = zdsj; | |
| 279 | + } | |
| 280 | + | |
| 281 | + public Long getZdsjT() { | |
| 282 | + return zdsjT; | |
| 283 | + } | |
| 284 | + | |
| 285 | + public void setZdsjT(Long zdsjT) { | |
| 286 | + this.zdsjT = zdsjT; | |
| 287 | + } | |
| 288 | + | |
| 289 | + public Double getJhlc() { | |
| 290 | + return jhlc; | |
| 291 | + } | |
| 292 | + | |
| 293 | + public void setJhlc(Double jhlc) { | |
| 294 | + this.jhlc = jhlc; | |
| 295 | + } | |
| 296 | + | |
| 297 | + public Double getJhlcOrig() { | |
| 298 | + return jhlcOrig; | |
| 299 | + } | |
| 300 | + | |
| 301 | + public void setJhlcOrig(Double jhlcOrig) { | |
| 302 | + this.jhlcOrig = jhlcOrig; | |
| 303 | + } | |
| 304 | + | |
| 305 | + public Integer getBcsj() { | |
| 306 | + return bcsj; | |
| 307 | + } | |
| 308 | + | |
| 309 | + public void setBcsj(Integer bcsj) { | |
| 310 | + this.bcsj = bcsj; | |
| 311 | + } | |
| 312 | + | |
| 313 | + public String getBcType() { | |
| 314 | + return bcType; | |
| 315 | + } | |
| 316 | + | |
| 317 | + public void setBcType(String bcType) { | |
| 318 | + this.bcType = bcType; | |
| 319 | + } | |
| 320 | + | |
| 321 | + public String getMajorStationName() { | |
| 322 | + return majorStationName; | |
| 323 | + } | |
| 324 | + | |
| 325 | + public void setMajorStationName(String majorStationName) { | |
| 326 | + this.majorStationName = majorStationName; | |
| 327 | + } | |
| 328 | + | |
| 329 | + public Date getCreateDate() { | |
| 330 | + return createDate; | |
| 331 | + } | |
| 332 | + | |
| 333 | + public void setCreateDate(Date createDate) { | |
| 334 | + this.createDate = createDate; | |
| 335 | + } | |
| 336 | + | |
| 337 | + public Date getUpdateDate() { | |
| 338 | + return updateDate; | |
| 339 | + } | |
| 340 | + | |
| 341 | + public void setUpdateDate(Date updateDate) { | |
| 342 | + this.updateDate = updateDate; | |
| 343 | + } | |
| 344 | + | |
| 345 | + public String getFcsjActual() { | |
| 346 | + return fcsjActual; | |
| 347 | + } | |
| 348 | + | |
| 349 | + public void setFcsjActual(String fcsjActual) { | |
| 350 | + this.fcsjActual = fcsjActual; | |
| 351 | + } | |
| 352 | + | |
| 353 | + public Long getFcsjActualTime() { | |
| 354 | + return fcsjActualTime; | |
| 355 | + } | |
| 356 | + | |
| 357 | + public void setFcsjActualTime(Long fcsjActualTime) { | |
| 358 | + this.fcsjActualTime = fcsjActualTime; | |
| 359 | + } | |
| 360 | + | |
| 361 | + public String getZdsjActual() { | |
| 362 | + return zdsjActual; | |
| 363 | + } | |
| 364 | + | |
| 365 | + public void setZdsjActual(String zdsjActual) { | |
| 366 | + this.zdsjActual = zdsjActual; | |
| 367 | + } | |
| 368 | + | |
| 369 | + public Long getZdsjActualTime() { | |
| 370 | + return zdsjActualTime; | |
| 371 | + } | |
| 372 | + | |
| 373 | + public void setZdsjActualTime(Long zdsjActualTime) { | |
| 374 | + this.zdsjActualTime = zdsjActualTime; | |
| 375 | + } | |
| 376 | + | |
| 377 | + public int getStatus() { | |
| 378 | + return status; | |
| 379 | + } | |
| 380 | + | |
| 381 | + public void setStatus(int status) { | |
| 382 | + this.status = status; | |
| 383 | + } | |
| 384 | + | |
| 385 | + public String getAdjustExps() { | |
| 386 | + return adjustExps; | |
| 387 | + } | |
| 388 | + | |
| 389 | + public void setAdjustExps(String adjustExps) { | |
| 390 | + this.adjustExps = adjustExps; | |
| 391 | + } | |
| 392 | + | |
| 393 | + public boolean isSflj() { | |
| 394 | + return sflj; | |
| 395 | + } | |
| 396 | + | |
| 397 | + public void setSflj(boolean sflj) { | |
| 398 | + this.sflj = sflj; | |
| 399 | + } | |
| 400 | + | |
| 401 | + public String getRemarks() { | |
| 402 | + return remarks; | |
| 403 | + } | |
| 404 | + | |
| 405 | + public void setRemarks(String remarks) { | |
| 406 | + this.remarks = remarks; | |
| 407 | + } | |
| 408 | + | |
| 409 | + public String getDfsj() { | |
| 410 | + return dfsj; | |
| 411 | + } | |
| 412 | + | |
| 413 | + public void setDfsj(String dfsj) { | |
| 414 | + this.dfsj = dfsj; | |
| 415 | + } | |
| 416 | + | |
| 417 | + public Long getDfsjT() { | |
| 418 | + return dfsjT; | |
| 419 | + } | |
| 420 | + | |
| 421 | + public void setDfsjT(Long dfsjT) { | |
| 422 | + this.dfsjT = dfsjT; | |
| 423 | + } | |
| 424 | + | |
| 425 | + public Set<ChildTaskPlan> getcTasks() { | |
| 426 | + return cTasks; | |
| 427 | + } | |
| 428 | + | |
| 429 | + public void setcTasks(Set<ChildTaskPlan> cTasks) { | |
| 430 | + this.cTasks = cTasks; | |
| 431 | + } | |
| 432 | + | |
| 433 | + public String getGsName() { | |
| 434 | + return gsName; | |
| 435 | + } | |
| 436 | + | |
| 437 | + public void setGsName(String gsName) { | |
| 438 | + this.gsName = gsName; | |
| 439 | + } | |
| 440 | + | |
| 441 | + public String getGsBm() { | |
| 442 | + return gsBm; | |
| 443 | + } | |
| 444 | + | |
| 445 | + public void setGsBm(String gsBm) { | |
| 446 | + this.gsBm = gsBm; | |
| 447 | + } | |
| 448 | + | |
| 449 | + public String getFgsName() { | |
| 450 | + return fgsName; | |
| 451 | + } | |
| 452 | + | |
| 453 | + public void setFgsName(String fgsName) { | |
| 454 | + this.fgsName = fgsName; | |
| 455 | + } | |
| 456 | + | |
| 457 | + public String getFgsBm() { | |
| 458 | + return fgsBm; | |
| 459 | + } | |
| 460 | + | |
| 461 | + public void setFgsBm(String fgsBm) { | |
| 462 | + this.fgsBm = fgsBm; | |
| 463 | + } | |
| 464 | +} | ... | ... |
src/main/java/com/bsth/entity/Person.java
| ... | ... | @@ -27,6 +27,16 @@ public class Person { |
| 27 | 27 | private String personnelName; |
| 28 | 28 | |
| 29 | 29 | /** |
| 30 | + * 全拼 | |
| 31 | + */ | |
| 32 | + private String fullChars; | |
| 33 | + | |
| 34 | + /** | |
| 35 | + * 简拼 | |
| 36 | + */ | |
| 37 | + private String camelChars; | |
| 38 | + | |
| 39 | + /** | |
| 30 | 40 | * 运营服务证书号 |
| 31 | 41 | */ |
| 32 | 42 | private String papersCode; |
| ... | ... | @@ -223,4 +233,20 @@ public class Person { |
| 223 | 233 | public void setRemark(String remark) { |
| 224 | 234 | this.remark = remark; |
| 225 | 235 | } |
| 236 | + | |
| 237 | + public String getFullChars() { | |
| 238 | + return fullChars; | |
| 239 | + } | |
| 240 | + | |
| 241 | + public void setFullChars(String fullChars) { | |
| 242 | + this.fullChars = fullChars; | |
| 243 | + } | |
| 244 | + | |
| 245 | + public String getCamelChars() { | |
| 246 | + return camelChars; | |
| 247 | + } | |
| 248 | + | |
| 249 | + public void setCamelChars(String camelChars) { | |
| 250 | + this.camelChars = camelChars; | |
| 251 | + } | |
| 226 | 252 | } | ... | ... |
src/main/java/com/bsth/service/schedule/ScheduleService.java
| ... | ... | @@ -26,6 +26,8 @@ public interface ScheduleService { |
| 26 | 26 | |
| 27 | 27 | Map<String, Object> findAbnormalByLineArray(String idx); |
| 28 | 28 | |
| 29 | + Map<String,Object> findSchByLpName(String lineCode, String lpName); | |
| 30 | + | |
| 29 | 31 | //void inOut(CarInOutEntity obj); |
| 30 | 32 | |
| 31 | 33 | //void busInOut(CarInOutEntity obj); | ... | ... |
src/main/java/com/bsth/service/schedule/impl/ScheduleServiceImpl.java
| 1 | 1 | package com.bsth.service.schedule.impl; |
| 2 | 2 | |
| 3 | +import com.alibaba.fastjson.JSON; | |
| 3 | 4 | import com.bsth.common.ResponseCode; |
| 4 | 5 | import com.bsth.data.abnormal.MainAbnormalClient; |
| 5 | 6 | import com.bsth.data.abnormal.entity.AbnormalEntity; |
| 6 | 7 | import com.bsth.data.attendance.entity.JsyAttendance; |
| 7 | 8 | import com.bsth.data.schedule.dto.ScheduleInOut; |
| 9 | +import com.bsth.data.schedule.dto.dd.ScheduleRealInfo; | |
| 8 | 10 | import com.bsth.data.schedule.real.ScheduleDataBuffer; |
| 11 | +import com.bsth.data.utils.HttpClientUtils; | |
| 12 | +import com.bsth.data.utils.RsRequestUtils; | |
| 9 | 13 | import com.bsth.service.schedule.ScheduleService; |
| 14 | +import com.bsth.util.ConfigUtil; | |
| 10 | 15 | import com.google.common.base.Splitter; |
| 11 | 16 | import org.slf4j.Logger; |
| 12 | 17 | import org.slf4j.LoggerFactory; |
| 13 | 18 | import org.springframework.beans.factory.annotation.Autowired; |
| 14 | 19 | import org.springframework.stereotype.Service; |
| 15 | 20 | |
| 21 | +import java.net.URLEncoder; | |
| 16 | 22 | import java.util.*; |
| 17 | 23 | |
| 18 | 24 | /** |
| ... | ... | @@ -22,11 +28,15 @@ import java.util.*; |
| 22 | 28 | public class ScheduleServiceImpl implements ScheduleService { |
| 23 | 29 | |
| 24 | 30 | |
| 25 | - /* @Autowired | |
| 26 | - BerthService berthService;*/ | |
| 27 | 31 | @Autowired |
| 28 | 32 | MainAbnormalClient mainAbnormalClient; |
| 29 | 33 | |
| 34 | + private static String dataUrl; | |
| 35 | + | |
| 36 | + static { | |
| 37 | + dataUrl = ConfigUtil.get("data.schedule.inout.url"); | |
| 38 | + } | |
| 39 | + | |
| 30 | 40 | Logger logger = LoggerFactory.getLogger(this.getClass()); |
| 31 | 41 | |
| 32 | 42 | @Override |
| ... | ... | @@ -89,4 +99,23 @@ public class ScheduleServiceImpl implements ScheduleService { |
| 89 | 99 | } |
| 90 | 100 | return rs; |
| 91 | 101 | } |
| 102 | + | |
| 103 | + @Override | |
| 104 | + public Map<String, Object> findSchByLpName(String lineCode, String lpName) { | |
| 105 | + Map<String, Object> rs = new HashMap<>(); | |
| 106 | + try{ | |
| 107 | + //从集调接口获取路牌下的班次信息 | |
| 108 | + lpName = URLEncoder.encode(lpName, "UTF-8"); | |
| 109 | + String url = dataUrl + "/findByLpName/" + lineCode + "/" + lpName + RsRequestUtils.getParams(); | |
| 110 | + StringBuilder sb = HttpClientUtils.get(url); | |
| 111 | + List<ScheduleRealInfo> list = JSON.parseArray(sb.toString(), ScheduleRealInfo.class); | |
| 112 | + | |
| 113 | + rs.put("list", list); | |
| 114 | + rs.put("status", ResponseCode.SUCCESS); | |
| 115 | + }catch (Exception e){ | |
| 116 | + rs.put("status", ResponseCode.ERROR); | |
| 117 | + logger.error("", e); | |
| 118 | + } | |
| 119 | + return rs; | |
| 120 | + } | |
| 92 | 121 | } | ... | ... |
src/main/resources/static/assets/css/abnormal_monitor.css
| ... | ... | @@ -96,13 +96,16 @@ span.red_line_empty{ |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | 98 | .abnormal_data_list .abnormal_detail{ |
| 99 | - line-height: 24px; | |
| 100 | - margin-top: 4px; | |
| 99 | + line-height: 22px; | |
| 100 | +} | |
| 101 | + | |
| 102 | +.abnormal_data_list .abnormal_detail:nth-child(1){ | |
| 103 | + margin-top: 6px; | |
| 101 | 104 | } |
| 102 | 105 | |
| 103 | 106 | .abnormal_data_list .abnormal_detail .badge_line_name{ |
| 104 | 107 | background: #f2f2f2; |
| 105 | - padding: 1px 12px 1px 11px; | |
| 108 | + padding: 1px 8px 1px 7px; | |
| 106 | 109 | border-radius: 7px; |
| 107 | 110 | font-size: 13px; |
| 108 | 111 | color: #000; |
| ... | ... | @@ -111,6 +114,14 @@ span.red_line_empty{ |
| 111 | 114 | .abnormal_data_list .abnormal_detail ._detail{ |
| 112 | 115 | display: inline-block; |
| 113 | 116 | margin-right: 15px; |
| 117 | + | |
| 118 | + overflow: hidden; | |
| 119 | + text-overflow:ellipsis; | |
| 120 | + white-space: nowrap; | |
| 121 | +} | |
| 122 | + | |
| 123 | +.abnormal_data_list .abnormal_detail>._detail:nth-child(1){ | |
| 124 | + width: 85px; | |
| 114 | 125 | } |
| 115 | 126 | |
| 116 | 127 | .abnormal_data_list .abnormal_detail a{ |
| ... | ... | @@ -304,4 +315,153 @@ span.red_line_empty{ |
| 304 | 315 | .o_s_expand_table_modal .uk-table td, |
| 305 | 316 | .o_s_expand_table_modal .uk-table th{ |
| 306 | 317 | padding: 11px 0px; |
| 318 | +} | |
| 319 | + | |
| 320 | +.o_s_abnormal_handler_modal form.uk-form-horizontal .uk-form-label{ | |
| 321 | + width: 100px; | |
| 322 | +} | |
| 323 | + | |
| 324 | +.o_s_abnormal_handler_modal form.uk-form-horizontal .uk-form-controls { | |
| 325 | + margin-left: 115px; | |
| 326 | +} | |
| 327 | + | |
| 328 | +.o_s_abnormal_handler_modal form{ | |
| 329 | + margin: 40px; | |
| 330 | +} | |
| 331 | + | |
| 332 | +table.curr_out_plan_table{ | |
| 333 | + background: #f8f8f8; | |
| 334 | + border: 1px solid #ececec; | |
| 335 | + font-size: 14px; | |
| 336 | + margin-top: 30px; | |
| 337 | +} | |
| 338 | + | |
| 339 | +.handler_cont_hrcc_wrap table.sch_list_table{ | |
| 340 | + font-size: 14px; | |
| 341 | +} | |
| 342 | + | |
| 343 | +.uk-badge.ct_badge{ | |
| 344 | + text-indent: 0; | |
| 345 | + font-family: 华文细黑; | |
| 346 | + font-size: 12px; | |
| 347 | + border-radius: 0; | |
| 348 | + height: 17px; | |
| 349 | + padding: 0px 5px 1px; | |
| 350 | + margin-left: 5px; | |
| 351 | + vertical-align: top; | |
| 352 | + margin-top: 1px; | |
| 353 | +} | |
| 354 | + | |
| 355 | +.uk-badge.ct_badge.cc{ | |
| 356 | + background-color: #82bb42; | |
| 357 | + background-image: linear-gradient(to bottom,#9fd256,#6fac34); | |
| 358 | +} | |
| 359 | + | |
| 360 | +.uk-badge.ct_badge.jc{ | |
| 361 | + background-color: #f9a124; | |
| 362 | + background-image: linear-gradient(to bottom,#fbb450,#f89406); | |
| 363 | +} | |
| 364 | + | |
| 365 | +.o_s_abnormal_handler_modal .tzrc_form_card form.uk-form-horizontal .uk-form-label{ | |
| 366 | + width: 80px; | |
| 367 | +} | |
| 368 | + | |
| 369 | +.o_s_abnormal_handler_modal .tzrc_form_card form.uk-form-horizontal .uk-form-controls{ | |
| 370 | + margin-left: 82px; | |
| 371 | + font-size: 14px; | |
| 372 | +} | |
| 373 | + | |
| 374 | +.o_s_abnormal_handler_modal .tzrc_form_card form{ | |
| 375 | + margin-left: -12px; | |
| 376 | +} | |
| 377 | + | |
| 378 | +.tzrc_form_card{ | |
| 379 | + padding-left: 12px; | |
| 380 | +} | |
| 381 | + | |
| 382 | +.tzrc_form_card form hr{ | |
| 383 | + width: calc(100% + 108px); | |
| 384 | + margin-left: -42px; | |
| 385 | +} | |
| 386 | + | |
| 387 | +.tzrc_form_card form{ | |
| 388 | + margin-bottom: 0; | |
| 389 | +} | |
| 390 | + | |
| 391 | +.tzrc_form_card form div.uk-form-controls>input[type=text], | |
| 392 | +.tzrc_form_card form div.uk-form-controls>.ct_auto_wrap{ | |
| 393 | + width: calc(100% - 40px); | |
| 394 | + margin-right: 7px; | |
| 395 | + display: inline-block; | |
| 396 | +} | |
| 397 | + | |
| 398 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>th:nth-of-type(1), | |
| 399 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>td:nth-of-type(1){ | |
| 400 | + width: 5%; | |
| 401 | +} | |
| 402 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>th:nth-of-type(2), | |
| 403 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>td:nth-of-type(2){ | |
| 404 | + width: 16%; | |
| 405 | +} | |
| 406 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>th:nth-of-type(3), | |
| 407 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>td:nth-of-type(3){ | |
| 408 | + width: 21%; | |
| 409 | +} | |
| 410 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>th:nth-of-type(4), | |
| 411 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>td:nth-of-type(4){ | |
| 412 | + width: 18%; | |
| 413 | +} | |
| 414 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>th:nth-of-type(5), | |
| 415 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>td:nth-of-type(5){ | |
| 416 | + width: 15%; | |
| 417 | +} | |
| 418 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>th:nth-of-type(6), | |
| 419 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>td:nth-of-type(6){ | |
| 420 | + width: 12%; | |
| 421 | +} | |
| 422 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>th:nth-of-type(7), | |
| 423 | +.handler_cont_hrcc_wrap table.tab_wid_1 tr>td:nth-of-type(7){ | |
| 424 | + width: 13%; | |
| 425 | +} | |
| 426 | + | |
| 427 | +.handler_cont_hrcc_wrap table.tab_wid_1{ | |
| 428 | + margin: 0; | |
| 429 | +} | |
| 430 | + | |
| 431 | +.handler_cont_hrcc_wrap .sch_list_table.tab_wid_1{ | |
| 432 | + height: 270px; | |
| 433 | + overflow: auto; | |
| 434 | + display: block; | |
| 435 | + position: relative; | |
| 436 | +} | |
| 437 | + | |
| 438 | +.sch_list_table span.ct_zt_yzx { | |
| 439 | + color: #2196F3; | |
| 440 | + font-size: 12px; | |
| 441 | +} | |
| 442 | + | |
| 443 | +.sch_list_table span.ct_zt_lb { | |
| 444 | + color: red; | |
| 445 | + font-size: 12px; | |
| 446 | +} | |
| 447 | + | |
| 448 | +.sch_list_table span.ct_zt_zzzx { | |
| 449 | + font-size: 12px; | |
| 450 | + color: #38ad3c; | |
| 451 | +} | |
| 452 | + | |
| 453 | +.handler_cont_hrcc_wrap .sch_list_table tr.disabled{ | |
| 454 | + background: #eaeaea; | |
| 455 | + color: #797979; | |
| 456 | +} | |
| 457 | + | |
| 458 | +.handler_cont_hrcc_wrap .sch_list_table tr.active{ | |
| 459 | + background: #5bd460; | |
| 460 | + color: #fff; | |
| 461 | +} | |
| 462 | + | |
| 463 | +.handler_cont_hrcc_wrap .sch_list_table tr.active .uk-checkbox:checked, | |
| 464 | +.handler_cont_hrcc_wrap .uk-checkbox:checked, | |
| 465 | +.handler_cont_hrcc_wrap .uk-checkbox:checked:focus{ | |
| 466 | + background-color: #5bd460; | |
| 307 | 467 | } |
| 308 | 468 | \ No newline at end of file | ... | ... |
src/main/resources/static/assets/css/ct_autocompleter.css
0 → 100644
| 1 | +.ct_auto_wrap{ | |
| 2 | + position: relative; | |
| 3 | +} | |
| 4 | + | |
| 5 | +.ct_autocompleter{ | |
| 6 | + width: 230px; | |
| 7 | + border: 1px solid #cbcbcb; | |
| 8 | + position: absolute; | |
| 9 | + z-index: 99; | |
| 10 | + top: 46px; | |
| 11 | + background: #fff; | |
| 12 | + box-shadow: 0 2px 5px rgba(0,0,0,.1); | |
| 13 | + display: none; | |
| 14 | + padding: 15px 0; | |
| 15 | + margin-bottom: 10px; | |
| 16 | +} | |
| 17 | + | |
| 18 | +.ct_autocompleter>ul.item-list{ | |
| 19 | + list-style: none; | |
| 20 | + padding-left: 0; | |
| 21 | + margin-bottom: 0; | |
| 22 | +} | |
| 23 | + | |
| 24 | +.ct_autocompleter>ul.item-list>li.item{ | |
| 25 | + padding: 5px 15px; | |
| 26 | + cursor: pointer; | |
| 27 | +} | |
| 28 | + | |
| 29 | +.ct_autocompleter>ul.item-list>li.item.active{ | |
| 30 | + background: #5bd460; | |
| 31 | + color: #fff; | |
| 32 | + outline: 0; | |
| 33 | + box-shadow: inset 0 2px 4px rgba(0,0,0,.2); | |
| 34 | + text-shadow: 0 -1px 0 rgba(0,0,0,.2); | |
| 35 | +} | |
| 36 | + | |
| 37 | +.ct_autocompleter>ul.item-list>li.item:first-child{ | |
| 38 | + margin-top: 0; | |
| 39 | +} | |
| 40 | +.ct_autocompleter>ul.item-list>li.item:last-child{ | |
| 41 | + margin-bottom: 0; | |
| 42 | +} | |
| 0 | 43 | \ No newline at end of file | ... | ... |
src/main/resources/static/assets/js/ct_autocompleter.js
0 → 100644
| 1 | +/** | |
| 2 | + * 自己写一个自动补全 | |
| 3 | + */ | |
| 4 | +var ct_autocompleter = (function () { | |
| 5 | + | |
| 6 | + var maxItem = 10; | |
| 7 | + | |
| 8 | + var init = function (wrap, searchFun) { | |
| 9 | + var input = $('input', wrap); | |
| 10 | + | |
| 11 | + //var data = gb_o_s_basic_data.findAllPerson(); | |
| 12 | + //input事件 | |
| 13 | + input.on('input', function () { | |
| 14 | + var list = [], | |
| 15 | + v = $(this).val(); | |
| 16 | + | |
| 17 | + if(!v){ | |
| 18 | + cancel(wrap); | |
| 19 | + return; | |
| 20 | + } | |
| 21 | + | |
| 22 | + var list = searchFun(v); | |
| 23 | + showRsList(list, wrap); | |
| 24 | + }); | |
| 25 | + $(wrap).append('<div class="ct_autocompleter"><ul class="item-list"></ul></div>'); | |
| 26 | + | |
| 27 | + wrap = $('.ct_autocompleter', wrap); | |
| 28 | + $(wrap).on('mouseenter', '.item-list>li.item', function () { | |
| 29 | + $('li.item.active', wrap).removeClass('active'); | |
| 30 | + $(this).addClass('active'); | |
| 31 | + }); | |
| 32 | + //事件 | |
| 33 | + input.on('keydown', function (e) { | |
| 34 | + if(e.keyCode == 13){ | |
| 35 | + var atItem = $('li.item.active', wrap); | |
| 36 | + if(atItem.length > 0){ | |
| 37 | + input.val(atItem.text()); | |
| 38 | + cancel(wrap); | |
| 39 | + return; | |
| 40 | + } | |
| 41 | + } | |
| 42 | + moveFocus(e, wrap) | |
| 43 | + }); | |
| 44 | + | |
| 45 | + //选中 | |
| 46 | + $(wrap).on('click', '.item-list>li.item', function () { | |
| 47 | + input.val($(this).text()); | |
| 48 | + cancel(wrap); | |
| 49 | + }); | |
| 50 | + }; | |
| 51 | + | |
| 52 | + var cancel = function (wrap) { | |
| 53 | + $('.item-list', wrap).empty(); | |
| 54 | + $(wrap).hide(); | |
| 55 | + }; | |
| 56 | + | |
| 57 | + var showRsList = function (list, wrap) { | |
| 58 | + var htmlStr = ''; | |
| 59 | + for(var i=0,v;v=list[i++];){ | |
| 60 | + htmlStr += '<li class="item">'+v+'</li>'; | |
| 61 | + } | |
| 62 | + $('.item-list', wrap).html(htmlStr); | |
| 63 | + $(wrap).show(); | |
| 64 | + }; | |
| 65 | + | |
| 66 | + var moveFocus = function (e, wrap) { | |
| 67 | + if(e.keyCode != 38 && e.keyCode != 40) | |
| 68 | + return; | |
| 69 | + | |
| 70 | + var ca = $('li.item.active', wrap) | |
| 71 | + , i = 0 | |
| 72 | + , max; | |
| 73 | + | |
| 74 | + if(ca.length > 0){ | |
| 75 | + i = ca.index() + 1; | |
| 76 | + max = $('li.item', wrap).length; | |
| 77 | + | |
| 78 | + if(i >= max) | |
| 79 | + i = 0; | |
| 80 | + } | |
| 81 | + | |
| 82 | + $('li.item.active', wrap).removeClass('active'); | |
| 83 | + $('.item-list>li:eq('+i+')', wrap).addClass('active'); | |
| 84 | + }; | |
| 85 | + | |
| 86 | + var initPerson = function (wrap) { | |
| 87 | + init(wrap, function (v) { | |
| 88 | + v = v.toUpperCase(); | |
| 89 | + var data = gb_o_s_basic_data.findAllPerson(), | |
| 90 | + list = []; | |
| 91 | + | |
| 92 | + for(var i=0,p;p=data[i++];){ | |
| 93 | + | |
| 94 | + if(list.length >= maxItem) | |
| 95 | + break; | |
| 96 | + if(p.name.indexOf(v) != -1 | |
| 97 | + || p.code.indexOf(v) != -1 | |
| 98 | + || p.fc.indexOf(v) != -1 | |
| 99 | + || p.cc.indexOf(v) != -1){ | |
| 100 | + list.push(p.code + '/' + p.name); | |
| 101 | + } | |
| 102 | + } | |
| 103 | + | |
| 104 | + return list; | |
| 105 | + }); | |
| 106 | + }; | |
| 107 | + | |
| 108 | + | |
| 109 | + var initBus = function (wrap) { | |
| 110 | + init(wrap, function (v) { | |
| 111 | + v = v.toUpperCase(); | |
| 112 | + var data = gb_o_s_basic_data.findAllBus(), | |
| 113 | + list = []; | |
| 114 | + | |
| 115 | + for(var i=0,nbbm;nbbm=data[i++];){ | |
| 116 | + | |
| 117 | + if(list.length >= maxItem) | |
| 118 | + break; | |
| 119 | + if(nbbm.indexOf(v) != -1) | |
| 120 | + list.push(nbbm); | |
| 121 | + } | |
| 122 | + | |
| 123 | + return list; | |
| 124 | + }); | |
| 125 | + }; | |
| 126 | + | |
| 127 | + return { | |
| 128 | + initPerson : initPerson, | |
| 129 | + initBus: initBus | |
| 130 | + } | |
| 131 | +})(); | |
| 0 | 132 | \ No newline at end of file | ... | ... |
src/main/resources/static/index.html
| ... | ... | @@ -8,6 +8,7 @@ |
| 8 | 8 | <link href="/assets/uikit-3.0.0/css/uikit.min.css" rel="stylesheet" type="text/css"/> |
| 9 | 9 | <link href="/assets/css/main.css" rel="stylesheet" type="text/css"/> |
| 10 | 10 | <link href="/assets/css/abnormal_monitor.css" rel="stylesheet" type="text/css"/> |
| 11 | + <link href="/assets/css/ct_autocompleter.css" rel="stylesheet" type="text/css"/> | |
| 11 | 12 | <link href="/assets/selectize/css/selectize.default.css" rel="stylesheet" type="text/css"/> |
| 12 | 13 | <link href="/assets/plugins/simplePagination/simplePagination.css" rel="stylesheet" type="text/css"/> |
| 13 | 14 | <link href="/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" rel="stylesheet" type="text/css"/> |
| ... | ... | @@ -71,6 +72,7 @@ |
| 71 | 72 | <script src="/assets/plugins/toastr/toastr.min.js"></script> |
| 72 | 73 | <script src="/assets/js/tts.js"></script> |
| 73 | 74 | |
| 75 | +<script src="/assets/js/ct_autocompleter.js"></script> | |
| 74 | 76 | <!-- websocket --> |
| 75 | 77 | <script src="/assets/plugins/sockjs-client/sockjs.min.js"></script> |
| 76 | 78 | <script> |
| ... | ... | @@ -177,6 +179,7 @@ |
| 177 | 179 | var company_json, company_code_name={}; |
| 178 | 180 | var cont = $('.ct-container'); |
| 179 | 181 | var top_btn_list = $('.ct-btn-list', cont); |
| 182 | + var current_tcc_name, current_tcc_code; | |
| 180 | 183 | |
| 181 | 184 | //按公司_分公司分组的线路数据 |
| 182 | 185 | var groupLineArrays; |
| ... | ... | @@ -192,6 +195,12 @@ |
| 192 | 195 | }); |
| 193 | 196 | }); |
| 194 | 197 | |
| 198 | + //停车场信息 | |
| 199 | + $.get('/company_json/curr_tcc_info', function (rs) { | |
| 200 | + current_tcc_name = rs.name; | |
| 201 | + current_tcc_code = rs.code; | |
| 202 | + }); | |
| 203 | + | |
| 195 | 204 | //loading end... |
| 196 | 205 | var ep = EventProxy.create('load_company', 'load_lines', function (companyData, linesData) { |
| 197 | 206 | groupLineArrays = {}; | ... | ... |
src/main/resources/static/pages/abnormal/fragments/abnormal_handler.html
| ... | ... | @@ -5,36 +5,39 @@ |
| 5 | 5 | <li><a><i uk-icon="clock"></i> 调整出场时间</a></li> |
| 6 | 6 | </ul> |
| 7 | 7 | |
| 8 | - <ul class="uk-switcher uk-margin"> | |
| 9 | - <li> | |
| 10 | - <div class="uk-alert-danger" uk-alert> | |
| 11 | - <a class="uk-alert-close" uk-close></a> | |
| 12 | - <p><i uk-icon="info"></i> 如果人员无法正常使用刷卡机签到,请手动录入人员报到时间。</p> | |
| 13 | - </div> | |
| 14 | - | |
| 15 | - </li> | |
| 16 | - <li>222</li> | |
| 8 | + <ul class="uk-switcher uk-margin _switcher_cont"> | |
| 9 | + <li class="_content_one"></li> | |
| 10 | + <li class="_content_two"></li> | |
| 17 | 11 | <li>333</li> |
| 18 | 12 | </ul> |
| 19 | 13 | |
| 20 | 14 | <script> |
| 21 | 15 | (function () { |
| 22 | - var wrap = '.o_s_abnormal_handler_modal', modalId; | |
| 16 | + var wrap = '.o_s_abnormal_handler_modal', modalId, | |
| 17 | + folder = '/pages/abnormal/fragments/',ae; | |
| 23 | 18 | |
| 24 | 19 | $(wrap).on('init', function (e, data) { |
| 25 | 20 | e.stopPropagation(); |
| 26 | 21 | modalId = '#' + data.modalId; |
| 22 | + ae = gb_o_s_abnormal.get(data.key); | |
| 23 | + | |
| 24 | + //加载片段1 | |
| 25 | + $.get(folder + 'h_cont_rybd.html', function (dom) { | |
| 26 | + $('._content_one',wrap).html(dom); | |
| 27 | + $('.handler_cont_rybd_wrap', wrap).trigger('init', {ae: ae}); | |
| 28 | + }); | |
| 27 | 29 | |
| 28 | - var ae = gb_o_s_abnormal.get(data.key); | |
| 29 | - console.log('aeae', ae); | |
| 30 | - /*var list = gb_common.get_vals(gb_os_card.findByLineCode(data.lineCode)); | |
| 31 | - list.sort(sch_sort_fun); | |
| 32 | - //渲染表格 | |
| 33 | - var htmlStr = template('o_s_expand_sch_list-temp', {list: list}); | |
| 34 | - $('table>tbody', wrap).html(htmlStr);*/ | |
| 30 | + //加载判断2 | |
| 31 | + $.get(folder + 'h_cont_hrcc.html', function (dom) { | |
| 32 | + $('._content_two',wrap).html(dom); | |
| 33 | + }); | |
| 35 | 34 | |
| 36 | 35 | data && data.caller && data.caller(); |
| 37 | 36 | }); |
| 37 | + | |
| 38 | + $('._switcher_cont', wrap).on('show', function (e) { | |
| 39 | + $('div:first', e.target).trigger('init', {ae: ae}); | |
| 40 | + }); | |
| 38 | 41 | })(); |
| 39 | 42 | </script> |
| 40 | 43 | </div> |
| 41 | 44 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/abnormal/fragments/h_cont_hrcc.html
0 → 100644
| 1 | +<div class="handler_cont_hrcc_wrap"> | |
| 2 | + <table class="uk-table uk-table-small uk-table-divider curr_out_plan_table"> | |
| 3 | + <thead> | |
| 4 | + <tr> | |
| 5 | + <th width="17%">线路</th> | |
| 6 | + <th width="12%">路牌</th> | |
| 7 | + <th width="21%">人员</th> | |
| 8 | + <th width="17%">车辆</th> | |
| 9 | + <th width="19%">计划出场</th> | |
| 10 | + </tr> | |
| 11 | + </thead> | |
| 12 | + <tbody></tbody> | |
| 13 | + </table> | |
| 14 | + | |
| 15 | + <table class="uk-table uk-table-small uk-table-divider tab_wid_1"> | |
| 16 | + <thead> | |
| 17 | + <tr> | |
| 18 | + <th><input class="uk-checkbox " type="checkbox" id="globalCheckBox"></th> | |
| 19 | + <th>时间</th> | |
| 20 | + <th>驾驶员</th> | |
| 21 | + <th>售票员</th> | |
| 22 | + <th>车辆</th> | |
| 23 | + <th>路牌</th> | |
| 24 | + <th>状态</th> | |
| 25 | + </tr> | |
| 26 | + </thead> | |
| 27 | + </table> | |
| 28 | + <table class="uk-table uk-table-small uk-table-divider sch_list_table tab_wid_1"> | |
| 29 | + </table> | |
| 30 | + | |
| 31 | + <div class="tzrc_form_card"> | |
| 32 | + <form class="uk-grid-small uk-form-horizontal" uk-grid> | |
| 33 | + <div class="uk-width-1-2@s"> | |
| 34 | + <label class="uk-form-label">车辆</label> | |
| 35 | + <div class="uk-form-controls"> | |
| 36 | + <div class="ct_auto_wrap" id="nbbmAutoCompleter"> | |
| 37 | + <input class="uk-input" name="nbbm" type="text" placeholder="车辆自编号" disabled> | |
| 38 | + </div> | |
| 39 | + <input class="uk-checkbox switch_c_box" type="checkbox" > | |
| 40 | + </div> | |
| 41 | + </div> | |
| 42 | + <div class="uk-width-1-2@s"> | |
| 43 | + <label class="uk-form-label">驾驶员</label> | |
| 44 | + <div class="uk-form-controls"> | |
| 45 | + <div class="ct_auto_wrap" id="jsyAutoCompleter"> | |
| 46 | + <input class="uk-input" name="jsy" type="text" placeholder="驾驶员工号"> | |
| 47 | + </div> | |
| 48 | + <input class="uk-checkbox switch_c_box" type="checkbox" checked> | |
| 49 | + </div> | |
| 50 | + </div> | |
| 51 | + <div class="uk-width-1-2@s"> | |
| 52 | + <label class="uk-form-label">售票员</label> | |
| 53 | + <div class="uk-form-controls"> | |
| 54 | + <div class="ct_auto_wrap" id="spyAutoCompleter"> | |
| 55 | + <input class="uk-input" name="spy" type="text" placeholder="售票员工号"> | |
| 56 | + </div> | |
| 57 | + <input class="uk-checkbox switch_c_box" type="checkbox" checked> | |
| 58 | + </div> | |
| 59 | + </div> | |
| 60 | + <div class="uk-width-1-1@s"> | |
| 61 | + <hr> | |
| 62 | + <p class="uk-text-right"> | |
| 63 | + <button class="uk-button uk-button-default uk-modal-close" type="button">取消</button> | |
| 64 | + <button class="uk-button uk-button-primary submit-btn" type="button">保存</button> | |
| 65 | + </p> | |
| 66 | + </div> | |
| 67 | + </form> | |
| 68 | + </div> | |
| 69 | + <script id="a_h_hrcc_out_tbody-temp" type="text/html"> | |
| 70 | + <tr> | |
| 71 | + <td>{{obj.lineName}}</td> | |
| 72 | + <td>{{obj.lpName}}</td> | |
| 73 | + <td>{{obj.jsy}}</td> | |
| 74 | + <td>{{obj.nbbm}}</td> | |
| 75 | + <td>{{obj.dfsjStr}}</td> | |
| 76 | + </tr> | |
| 77 | + </script> | |
| 78 | + | |
| 79 | + <script id="jd_schedule_list_table-temp" type="text/html"> | |
| 80 | + {{each list as sch i}} | |
| 81 | + <tr data-id="{{sch.id}}" class=""> | |
| 82 | + <td><input class="uk-checkbox" type="checkbox"></td> | |
| 83 | + <td>{{sch.dfsj}} | |
| 84 | + {{if sch.bcType == "out"}} | |
| 85 | + <span class="uk-badge ct_badge cc"> | |
| 86 | + 出场 | |
| 87 | + {{if sch.qdzCode!=tcc_code}} | |
| 88 | + | {{sch.qdzName}} | |
| 89 | + {{/if}} | |
| 90 | + </span> | |
| 91 | + {{else if sch.bcType == "in"}} | |
| 92 | + <span class="uk-badge ct_badge jc">进场</span> | |
| 93 | + {{else if sch.bcType == "venting"}} | |
| 94 | + <span class="uk-badge ct_badge zf">直放</span> | |
| 95 | + {{else if sch.bcType == "major"}} | |
| 96 | + <span class="uk-badge ct_badge cfz">放站</span> | |
| 97 | + {{/if}} | |
| 98 | + {{if sch.sflj}} | |
| 99 | + <span class="uk-badge ct_badge">临加</span> | |
| 100 | + {{/if}} | |
| 101 | + {{if sch.cTasks.length > 0}} | |
| 102 | + <span class="uk-badge uk-badge-notification">{{sch.cTasks.length}}</span> | |
| 103 | + {{/if}} | |
| 104 | + </td> | |
| 105 | + <td>{{sch.jGh}}/{{sch.jName}}</td> | |
| 106 | + <td>{{sch.sGh}}/{{sch.sName}}</td> | |
| 107 | + <td>{{sch.clZbh}}</td> | |
| 108 | + <td>{{sch.lpName}}</td> | |
| 109 | + <td> | |
| 110 | + {{if sch.status==2}} | |
| 111 | + <span class="ct_zt_yzx">已执行</span> | |
| 112 | + {{else if sch.status==1}} | |
| 113 | + {{if sch.fcsjActual==null}} | |
| 114 | + <span class="ct_zt_zzzx">准备执行</span> | |
| 115 | + {{else}} | |
| 116 | + <span class="ct_zt_zzzx">正在执行</span> | |
| 117 | + {{/if}} | |
| 118 | + {{else if sch.status==-1}} | |
| 119 | + <span class="ct_zt_lb">烂班</span> | |
| 120 | + {{/if}} | |
| 121 | + </td> | |
| 122 | + </tr> | |
| 123 | + {{/each}} | |
| 124 | + </script> | |
| 125 | + | |
| 126 | + <script> | |
| 127 | + (function () { | |
| 128 | + | |
| 129 | + var wrap = '.handler_cont_hrcc_wrap', ae, inoutSch; | |
| 130 | + | |
| 131 | + | |
| 132 | + $(wrap).on('init', function (e, data) { | |
| 133 | + e.stopPropagation(); | |
| 134 | + if($(this).attr('data-init')==1) | |
| 135 | + return; | |
| 136 | + | |
| 137 | + ae = data.ae; | |
| 138 | + | |
| 139 | + inoutSch = gb_os_card.findByLineCode(ae.lineCode)[ae.schId]; | |
| 140 | + $('.curr_out_plan_table>tbody', wrap).html(template('a_h_hrcc_out_tbody-temp', {obj: inoutSch})); | |
| 141 | + | |
| 142 | + //加载集调班次信息 | |
| 143 | + gb_common.$get('/in_out/findSchByLpName', {lineCode: inoutSch.lineCode, lpName: inoutSch.lpName},readerScheduleList); | |
| 144 | + | |
| 145 | + //自动补全 | |
| 146 | + ct_autocompleter.initPerson($('#jsyAutoCompleter', wrap)); | |
| 147 | + ct_autocompleter.initPerson($('#spyAutoCompleter', wrap)); | |
| 148 | + ct_autocompleter.initBus($('#nbbmAutoCompleter', wrap)); | |
| 149 | + | |
| 150 | + $(this).attr('data-init', 1); | |
| 151 | + }); | |
| 152 | + | |
| 153 | + var readerScheduleList = function (rs) { | |
| 154 | + var htmlStr = template('jd_schedule_list_table-temp', {list: rs.list, tcc_code: current_tcc_code}); | |
| 155 | + $('.sch_list_table', wrap).html(htmlStr); | |
| 156 | + //滚动条 | |
| 157 | + $('.sch_list_table', wrap).perfectScrollbar({suppressScrollX: true}); | |
| 158 | + | |
| 159 | + //将当前出场班次之前的班次都禁选 | |
| 160 | + var trs = $('.sch_list_table tr', wrap); | |
| 161 | + for(var i=0,row;row=trs[i++];){ | |
| 162 | + if($(row).data('id')==inoutSch.id) | |
| 163 | + break; | |
| 164 | + $(row).addClass('disabled') | |
| 165 | + .find('input[type=checkbox]') | |
| 166 | + .attr('disabled','disabled'); | |
| 167 | + } | |
| 168 | + //选中当前出场班次 | |
| 169 | + $('.sch_list_table tr[data-id="'+inoutSch.id+'"]', wrap).trigger('click'); | |
| 170 | + }; | |
| 171 | + | |
| 172 | + /** | |
| 173 | + * row 点击选中 | |
| 174 | + */ | |
| 175 | + $(wrap).on('click', '.sch_list_table tr', function () { | |
| 176 | + if($(this).hasClass('disabled')) | |
| 177 | + return; | |
| 178 | + var cbox = $('input[type=checkbox]', this)[0]; | |
| 179 | + if($(this).hasClass('active')){ | |
| 180 | + $(this).removeClass('active'); | |
| 181 | + cbox.checked = false; | |
| 182 | + } | |
| 183 | + else{ | |
| 184 | + $(this).addClass('active'); | |
| 185 | + cbox.checked = true; | |
| 186 | + | |
| 187 | + var cells = this.cells; | |
| 188 | + var f = $('.tzrc_form_card form', wrap); | |
| 189 | + $('[name=nbbm]', f).val($(cells[4]).text()); | |
| 190 | + $('[name=jsy]', f).val($(cells[2]).text()); | |
| 191 | + $('[name=spy]', f).val($(cells[3]).text()); | |
| 192 | + } | |
| 193 | + }); | |
| 194 | + | |
| 195 | + //全选 | |
| 196 | + $('#globalCheckBox', wrap).on('click', function () { | |
| 197 | + | |
| 198 | + var trs = $('.sch_list_table tr', wrap); | |
| 199 | + var cbox; | |
| 200 | + for(var i=0,row;row=trs[i++];){ | |
| 201 | + if($(row).hasClass('disabled')) | |
| 202 | + continue; | |
| 203 | + | |
| 204 | + cbox = $('input[type=checkbox]', row)[0]; | |
| 205 | + | |
| 206 | + if(this.checked) | |
| 207 | + $(row).addClass('active'); | |
| 208 | + else | |
| 209 | + $(row).removeClass('active'); | |
| 210 | + cbox.checked = this.checked; | |
| 211 | + } | |
| 212 | + }); | |
| 213 | + | |
| 214 | + $('.tzrc_form_card input[type=checkbox]', wrap).on('click', function () { | |
| 215 | + var $input = $(this).prev(); | |
| 216 | + if(this.checked) | |
| 217 | + $input.removeAttr('disabled'); | |
| 218 | + else | |
| 219 | + $input.attr('disabled', 'disabled'); | |
| 220 | + }); | |
| 221 | + | |
| 222 | + //switch_c_box | |
| 223 | + $('.switch_c_box', wrap).on('click', function () { | |
| 224 | + var input = $(this).parent().find('input[type=text]'); | |
| 225 | + if(this.checked) | |
| 226 | + input.removeAttr('disabled'); | |
| 227 | + else | |
| 228 | + input.attr('disabled', 'disabled'); | |
| 229 | + }); | |
| 230 | + })(); | |
| 231 | + </script> | |
| 232 | +</div> | |
| 0 | 233 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/abnormal/fragments/h_cont_rybd.html
0 → 100644
| 1 | +<div class="handler_cont_rybd_wrap"> | |
| 2 | + <div class="uk-alert-danger" uk-alert> | |
| 3 | + <a class="uk-alert-close" uk-close></a> | |
| 4 | + <p><i uk-icon="info"></i> 如果人员无法正常使用刷卡机签到,请手动录入人员签到时间。</p> | |
| 5 | + </div> | |
| 6 | + | |
| 7 | + <div class="hc_body"></div> | |
| 8 | + <script id="o_s_abnormal_handler_rybd-temp" type="text/html"> | |
| 9 | + <table class="uk-table uk-table-small uk-table-divider curr_out_plan_table"> | |
| 10 | + <tr> | |
| 11 | + <th width="17%">线路</th> | |
| 12 | + <th width="12%">路牌</th> | |
| 13 | + <th width="21%">人员</th> | |
| 14 | + <th width="17%">计划报到</th> | |
| 15 | + <th width="19%">报到地点</th> | |
| 16 | + <th width="14%">状态</th> | |
| 17 | + </tr> | |
| 18 | + <tr> | |
| 19 | + <td>{{ae.lineName}}</td> | |
| 20 | + <td>{{ae.lpName}}</td> | |
| 21 | + <td>{{ae.jsy}}</td> | |
| 22 | + <td>{{ae.planTimeStr}}</td> | |
| 23 | + <td>{{current_tcc_name}}</td> | |
| 24 | + <td><samp>未签到</samp></td> | |
| 25 | + </tr> | |
| 26 | + </table> | |
| 27 | + | |
| 28 | + <form class="uk-form-horizontal"> | |
| 29 | + <div class="uk-margin"> | |
| 30 | + <label class="uk-form-label" for="form-horizontal-text">实际签到时间</label> | |
| 31 | + <div class="uk-form-controls"> | |
| 32 | + <input class="uk-input" name="attSjTimeStr" id="form-horizontal-text" type="time" required> | |
| 33 | + </div> | |
| 34 | + </div> | |
| 35 | + | |
| 36 | + <div class="uk-margin"> | |
| 37 | + <label class="uk-form-label" for="form-horizontal-select">原因</label> | |
| 38 | + <div class="uk-form-controls"> | |
| 39 | + <select class="uk-select" name="reason" id="form-horizontal-select" required> | |
| 40 | + <option value="">请选择...</option> | |
| 41 | + <option>缺卡</option> | |
| 42 | + <option>其他</option> | |
| 43 | + </select> | |
| 44 | + </div> | |
| 45 | + </div> | |
| 46 | + | |
| 47 | + <div class="uk-margin"> | |
| 48 | + <div class="uk-form-label">备注</div> | |
| 49 | + <div class="uk-form-controls uk-form-controls-text"> | |
| 50 | + <textarea class="uk-textarea" name="remarks" rows="5" placeholder="备注,必填,限50字。" required data-fv-stringlength="true" data-fv-stringlength-max="50"></textarea> | |
| 51 | + </div> | |
| 52 | + </div> | |
| 53 | + </form> | |
| 54 | + | |
| 55 | + <p class="uk-text-right"> | |
| 56 | + <button class="uk-button uk-button-default uk-modal-close" type="button">取消</button> | |
| 57 | + <button class="uk-button uk-button-primary submit-btn" type="button">保存</button> | |
| 58 | + </p> | |
| 59 | + </script> | |
| 60 | + | |
| 61 | + <script> | |
| 62 | + (function () { | |
| 63 | + | |
| 64 | + var wrap = '.handler_cont_rybd_wrap', ae, $cont; | |
| 65 | + | |
| 66 | + | |
| 67 | + $(wrap).on('init', function (e, data) { | |
| 68 | + e.stopPropagation(); | |
| 69 | + if($(this).attr('data-init')==1) | |
| 70 | + return; | |
| 71 | + | |
| 72 | + ae = data.ae; | |
| 73 | + | |
| 74 | + var htmlStr = template('o_s_abnormal_handler_rybd-temp', {ae: ae, current_tcc_name: current_tcc_name}); | |
| 75 | + $cont = $('.hc_body', wrap).html(htmlStr); | |
| 76 | + | |
| 77 | + //submit | |
| 78 | + var f = $('form', wrap).formValidation(gb_form_validation_opts); | |
| 79 | + $('.submit-btn', wrap).on('click', function () { | |
| 80 | + f.submit(); | |
| 81 | + }); | |
| 82 | + f.on('success.form.fv', function(e) { | |
| 83 | + e.preventDefault(); | |
| 84 | + | |
| 85 | + var data = $(this).serializeJSON(); | |
| 86 | + | |
| 87 | + console.log('data', data); | |
| 88 | + }); | |
| 89 | + | |
| 90 | + //选择原因 | |
| 91 | + $('[name=reason]', f).on('change', function () { | |
| 92 | + var v = $('[name=remarks]', f).val() + $(this).val() + ';'; | |
| 93 | + if(!v) | |
| 94 | + return; | |
| 95 | + $('[name=remarks]', f).val(v); | |
| 96 | + }); | |
| 97 | + | |
| 98 | + $(this).attr('data-init', 1); | |
| 99 | + }); | |
| 100 | + })(); | |
| 101 | + </script> | |
| 102 | +</div> | |
| 0 | 103 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/abnormal/js/o_s_abnormal.js
| ... | ... | @@ -31,7 +31,7 @@ var gb_o_s_abnormal = (function () { |
| 31 | 31 | */ |
| 32 | 32 | $(document).on('click', wrap + ' .handler_btn_panel>button', function () { |
| 33 | 33 | var key = $(this).data('key'); |
| 34 | - gb_common.open_modal_default('/pages/abnormal/fragments/abnormal_handler.html', '异常处理 -未签到', {key:key}, 800); | |
| 34 | + gb_common.open_modal_default('/pages/abnormal/fragments/abnormal_handler.html', '异常处理 -未签到', {key:key}, 700); | |
| 35 | 35 | }); |
| 36 | 36 | |
| 37 | 37 | var getByKey = function (key) { | ... | ... |
src/main/resources/static/pages/abnormal/js/o_s_basic_data.js
| ... | ... | @@ -4,9 +4,14 @@ |
| 4 | 4 | var gb_o_s_basic_data = (function () { |
| 5 | 5 | |
| 6 | 6 | var lineCode2NameMaps; |
| 7 | + var personsArray; | |
| 8 | + var busArray; | |
| 9 | + | |
| 7 | 10 | var init = function (cb) { |
| 8 | - var ep = EventProxy.create("line_code2name", function (lineCode2Names) { | |
| 11 | + var ep = EventProxy.create("line_code2name", "persons", "buss", function (lineCode2Names, personsList, busList) { | |
| 9 | 12 | lineCode2NameMaps = lineCode2Names; |
| 13 | + personsArray = personsList; | |
| 14 | + busArray = busList; | |
| 10 | 15 | |
| 11 | 16 | cb && cb(); |
| 12 | 17 | }); |
| ... | ... | @@ -19,6 +24,16 @@ var gb_o_s_basic_data = (function () { |
| 19 | 24 | } |
| 20 | 25 | ep.emit('line_code2name', maps); |
| 21 | 26 | }); |
| 27 | + | |
| 28 | + //人员信息 | |
| 29 | + gb_common.$get('/person/allConcise', {}, function (rs) { | |
| 30 | + ep.emit('persons', rs.list); | |
| 31 | + }); | |
| 32 | + | |
| 33 | + //车辆信息 | |
| 34 | + gb_common.$get('/bus/allConcise', {}, function (rs) { | |
| 35 | + ep.emit('buss', rs.list); | |
| 36 | + }); | |
| 22 | 37 | }; |
| 23 | 38 | |
| 24 | 39 | var findLineNameByCode = function (code) { |
| ... | ... | @@ -27,6 +42,12 @@ var gb_o_s_basic_data = (function () { |
| 27 | 42 | |
| 28 | 43 | return { |
| 29 | 44 | init: init, |
| 30 | - findLineNameByCode: findLineNameByCode | |
| 45 | + findLineNameByCode: findLineNameByCode, | |
| 46 | + findAllPerson: function () { | |
| 47 | + return personsArray; | |
| 48 | + }, | |
| 49 | + findAllBus: function () { | |
| 50 | + return busArray; | |
| 51 | + } | |
| 31 | 52 | } |
| 32 | 53 | })(); |
| 33 | 54 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/abnormal/main.html
| ... | ... | @@ -24,7 +24,9 @@ |
| 24 | 24 | </ul> |
| 25 | 25 | |
| 26 | 26 | <ul class="uk-switcher uk-margin abnormal_data_body_ul"> |
| 27 | - <li><div class="abnormal_data_list"></div></li> | |
| 27 | + <li> | |
| 28 | + <div class="abnormal_data_list"></div> | |
| 29 | + </li> | |
| 28 | 30 | <li>Hello again!</li> |
| 29 | 31 | </ul> |
| 30 | 32 | </div> |
| ... | ... | @@ -54,7 +56,10 @@ |
| 54 | 56 | </div> |
| 55 | 57 | |
| 56 | 58 | <div class="abnormal_detail"> |
| 57 | - <span class="badge_line_name">{{obj.lineName}}</span> | |
| 59 | + <div class="_detail">路牌:{{obj.lpName}}</div> | |
| 60 | + <div class="_detail"> | |
| 61 | + <span class="badge_line_name">{{obj.lineName}}</span> | |
| 62 | + </div> | |
| 58 | 63 | </div> |
| 59 | 64 | </div> |
| 60 | 65 | {{else obj.type==1}} |
| ... | ... | @@ -70,12 +75,16 @@ |
| 70 | 75 | </div> |
| 71 | 76 | |
| 72 | 77 | <div class="abnormal_detail"> |
| 73 | - <span class="badge_line_name">{{obj.lineName}}</span> | |
| 78 | + <div class="_detail">路牌:{{obj.lpName}}</div> | |
| 79 | + <div class="_detail"> | |
| 80 | + <span class="badge_line_name">{{obj.lineName}}</span> | |
| 81 | + </div> | |
| 74 | 82 | </div> |
| 75 | 83 | </div> |
| 76 | 84 | {{/if}} |
| 77 | 85 | <div class="handler_btn_panel"> |
| 78 | - <button class="uk-button uk-button-primary uk-button-small" data-key="{{obj.schId}}_{{obj.type}}">处理</button> | |
| 86 | + <button class="uk-button uk-button-primary uk-button-small" data-key="{{obj.schId}}_{{obj.type}}">处理 | |
| 87 | + </button> | |
| 79 | 88 | </div> |
| 80 | 89 | </div> |
| 81 | 90 | {{/each}} |
| ... | ... | @@ -86,7 +95,8 @@ |
| 86 | 95 | <div class="uk-card uk-card-default uk-card-body o_s_line_card"> |
| 87 | 96 | <div class="title_name"> |
| 88 | 97 | {{data[k][0].lineName}} |
| 89 | - <span class="expand_card_icon" data-code="{{data[k][0].lineCode}}" data-name="{{data[k][0].lineName}}"></span> | |
| 98 | + <span class="expand_card_icon" data-code="{{data[k][0].lineCode}}" | |
| 99 | + data-name="{{data[k][0].lineName}}"></span> | |
| 90 | 100 | </div> |
| 91 | 101 | <div class="o_s_c_table"> |
| 92 | 102 | <div class="osc_table_head"> |
| ... | ... | @@ -128,7 +138,7 @@ |
| 128 | 138 | <script> |
| 129 | 139 | (function () { |
| 130 | 140 | var wrap = '#abnormal_monitor_wrap'; |
| 131 | - var lineIdx='10066,10067,10068,10146,10253,10335,10337,10340,10348,11014,60009,70123,104731'; | |
| 141 | + var lineIdx = '10066,10067,10068,10146,10253,10335,10337,10340,10348,11014,60009,70123,104731'; | |
| 132 | 142 | window.localStorage.setItem("abnormal_line_idx", lineIdx); |
| 133 | 143 | |
| 134 | 144 | gb_o_s_basic_data.init(function () { | ... | ... |