Commit ac131605132b7742778f09b2f8a7ada2759d0973

Authored by 王通
1 parent a92b3a2c

1.维修上报

src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
1 1 package com.bsth.controller.realcontrol;
2 2  
3   -import java.io.ByteArrayOutputStream;
4   -import java.io.IOException;
5   -import java.io.InputStream;
6   -import java.io.OutputStream;
7   -import java.net.HttpURLConnection;
8   -import java.net.URL;
9 3 import java.util.ArrayList;
10 4 import java.util.Collection;
11 5 import java.util.HashMap;
12 6 import java.util.List;
13 7 import java.util.Map;
14 8  
15   -import org.apache.commons.io.IOUtils;
16 9 import org.apache.commons.lang3.StringEscapeUtils;
17 10 import org.joda.time.format.DateTimeFormat;
18 11 import org.joda.time.format.DateTimeFormatter;
... ... @@ -33,11 +26,7 @@ import com.bsth.data.schedule.DayOfSchedule;
33 26 import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto;
34 27 import com.bsth.entity.realcontrol.ScheduleRealInfo;
35 28 import com.bsth.entity.schedule.SchedulePlanInfo;
36   -import com.bsth.entity.sys.SysUser;
37   -import com.bsth.security.util.SecurityUtils;
38 29 import com.bsth.service.realcontrol.ScheduleRealInfoService;
39   -import com.bsth.util.ConfigUtil;
40   -import com.fasterxml.jackson.databind.ObjectMapper;
41 30  
42 31 @RestController
43 32 @RequestMapping("/realSchedule")
... ... @@ -725,67 +714,9 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo,
725 714 * @return
726 715 */
727 716 @RequestMapping(value = "wxsb", method = RequestMethod.POST)
728   - public Map<String, Object> deleteToHistory(@RequestParam Map<String, Object> param){
729   - SysUser user = SecurityUtils.getCurrentUser();
730   - String uname = user.getUserName();
731   - StringBuilder url = new StringBuilder(ConfigUtil.get("http.report.url"));
732   - url.append("?nbbm=").append(param.get("nbbm")).append("&bxy=").append(uname).append("&bxbm=").append(param.get("bxType"));
733   - // 分公司保存格式 分公司编码_公司编码
734   - String val = BasicData.nbbm2FgsCompanyCodeMap.get(param.get("nbbm"));
735   - String[] arr = val.split("_");
736   - if (!"22".equals(arr[1])) {
737   - Map<String, Object> res = new HashMap<String, Object>();
738   - res.put("status", ResponseCode.ERROR);
739   - res.put("msg", "除金高公司外暂未开通此功能");
740   -
741   - return res;
742   - }
743   - url.append("&fgs=").append(arr[0]);
744   -
745   - return request(url.toString());
  717 + public Map<String, Object> repairReport(@RequestParam Map<String, Object> param){
  718 + return scheduleRealInfoService.repairReport(param, true);
746 719 }
747 720  
748   - @SuppressWarnings("unchecked")
749   - private static Map<String, Object> request(String url) {
750   - Map<String, Object> res = new HashMap<String, Object>();
751   - res.put("status", ResponseCode.SUCCESS);
752   - InputStream in = null;
753   - HttpURLConnection con = null;
754   - try {
755   - con = (HttpURLConnection)new URL(url).openConnection();
756   - con.setRequestMethod("POST");
757   - con.setRequestProperty("keep-alive", "true");
758   - con.setRequestProperty("accept", "application/json");
759   - con.setRequestProperty("content-type", "application/json");
760   - con.setDoInput(true);
761   - con.setReadTimeout(2500);
762   - con.setConnectTimeout(2500);
763   -
764   - con.connect();
765   - if (con.getResponseCode() == 200) {
766   - in = con.getInputStream();
767   - ByteArrayOutputStream bout = new ByteArrayOutputStream();
768   - IOUtils.copy(in, bout); bout.close();
769   - Map<String, Object> response = new ObjectMapper().readValue(bout.toByteArray(), Map.class);
770   - if (!"报修成功".equals(response.get("msg"))) {
771   - res.put("status", ResponseCode.ERROR);
772   - res.putAll(response);
773   - }
774   - }
775   - } catch (IOException e) {
776   - // TODO Auto-generated catch block
777   - res.put("status", ResponseCode.ERROR);
778   - res.put("msg", "调用上报接口异常");
779   - } finally {
780   - try {
781   - if (in != null) in.close();
782   - if (con != null) con.disconnect();
783   - } catch (IOException e) {
784   - // TODO Auto-generated catch block
785   - e.printStackTrace();
786   - }
787   - }
788   -
789   - return res;
790   - }
  721 +
791 722 }
... ...
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
... ... @@ -10,6 +10,7 @@ import com.bsth.data.gpsdata_v2.utils.GpsDataRecovery;
10 10 import com.bsth.data.schedule.f_a_l.FirstAndLastHandler;
11 11 import com.bsth.entity.realcontrol.LineConfig;
12 12 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  13 +import com.bsth.entity.report.RepairReport;
13 14 import com.bsth.entity.schedule.SchedulePlanInfo;
14 15 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
15 16 import com.bsth.service.schedule.SchedulePlanInfoService;
... ... @@ -83,6 +84,8 @@ public class DayOfSchedule {
83 84 private static ScheduleComparator.DFSJ schDFSJComparator;
84 85  
85 86 private static Long sch_max_id=-1L;
  87 +
  88 + private Map<String, RepairReport> incode2report = new ConcurrentHashMap<String, RepairReport>();
86 89  
87 90 @Autowired
88 91 LineConfigData lineConfigData;
... ... @@ -1180,4 +1183,19 @@ public class DayOfSchedule {
1180 1183 reCalcExecPlan(sch.getClZbh());
1181 1184 }
1182 1185 }
  1186 +
  1187 + /**
  1188 + ** 用于重置维修上报计数,一般只应该在翻班的时候调用
  1189 + */
  1190 + public void resetRepairReport(String incode) {
  1191 + incode2report.remove(incode);
  1192 + }
  1193 +
  1194 + public RepairReport getLastestRepairReport(String incode) {
  1195 + return incode2report.get(incode);
  1196 + }
  1197 +
  1198 + public void setLastestRepairReport(RepairReport rr) {
  1199 + incode2report.put(rr.getIncode(), rr);
  1200 + }
1183 1201 }
1184 1202 \ No newline at end of file
... ...
src/main/java/com/bsth/data/schedule/thread/ScheduleRefreshThread.java
... ... @@ -59,6 +59,7 @@ public class ScheduleRefreshThread extends Thread{
59 59 Set<String> cars = dayOfSchedule.findCarByLineCode(lineCode);
60 60 for(String car : cars){
61 61 GpsCacheData.remove(car);
  62 + dayOfSchedule.resetRepairReport(car);
62 63 }
63 64 //清除驾驶员上报数据
64 65 pilotReport.clear(lineCode);
... ...
src/main/java/com/bsth/entity/report/RepairReport.java 0 → 100644
  1 +package com.bsth.entity.report;
  2 +
  3 +import java.util.Date;
  4 +
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.GeneratedValue;
  7 +import javax.persistence.Id;
  8 +import javax.persistence.Table;
  9 +
  10 +/**
  11 + ** 维修上报信息
  12 + * @author Hill
  13 + *
  14 + */
  15 +@Entity
  16 +@Table(name = "bsth_c_repair_report")
  17 +public class RepairReport {
  18 +
  19 + @Id
  20 + @GeneratedValue
  21 + private Integer id;
  22 + // 上报用户名
  23 + private String reportUser;
  24 + // 上报姓名
  25 + private String reportName;
  26 + // 班次ID
  27 + private Long schId;
  28 + // 内部编码
  29 + private String incode;
  30 + // 发车时间
  31 + private String departureTime;
  32 + // 报修类型
  33 + private String repairType;
  34 + // 报修时间
  35 + private Date reportDate;
  36 + // 报修状态 0 不报 1上报成功 -1上报失败
  37 + private int reportState;
  38 +
  39 + public Integer getId() {
  40 + return id;
  41 + }
  42 +
  43 + public void setId(Integer id) {
  44 + this.id = id;
  45 + }
  46 +
  47 + public String getReportUser() {
  48 + return reportUser;
  49 + }
  50 +
  51 + public void setReportUser(String reportUser) {
  52 + this.reportUser = reportUser;
  53 + }
  54 +
  55 + public String getReportName() {
  56 + return reportName;
  57 + }
  58 +
  59 + public void setReportName(String reportName) {
  60 + this.reportName = reportName;
  61 + }
  62 +
  63 + public Long getSchId() {
  64 + return schId;
  65 + }
  66 +
  67 + public void setSchId(Long schId) {
  68 + this.schId = schId;
  69 + }
  70 +
  71 + public String getIncode() {
  72 + return incode;
  73 + }
  74 +
  75 + public void setIncode(String incode) {
  76 + this.incode = incode;
  77 + }
  78 +
  79 + public String getDepartureTime() {
  80 + return departureTime;
  81 + }
  82 +
  83 + public void setDepartureTime(String departureTime) {
  84 + this.departureTime = departureTime;
  85 + }
  86 +
  87 + public String getRepairType() {
  88 + return repairType;
  89 + }
  90 +
  91 + public void setRepairType(String repairType) {
  92 + this.repairType = repairType;
  93 + }
  94 +
  95 + public Date getReportDate() {
  96 + return reportDate;
  97 + }
  98 +
  99 + public void setReportDate(Date reportDate) {
  100 + this.reportDate = reportDate;
  101 + }
  102 +
  103 + public int getReportState() {
  104 + return reportState;
  105 + }
  106 +
  107 + public void setReportState(int reportState) {
  108 + this.reportState = reportState;
  109 + }
  110 +}
... ...
src/main/java/com/bsth/repository/RepairReportRepository.java 0 → 100644
  1 +package com.bsth.repository;
  2 +
  3 +import org.springframework.stereotype.Repository;
  4 +
  5 +import com.bsth.entity.report.RepairReport;
  6 +
  7 +/**
  8 + *
  9 + * @Interface: RepairReportRepository
  10 + *
  11 + * @Extends : BaseRepository
  12 + *
  13 + * @Description: 维修上报持久化层
  14 + *
  15 + * @Author Hill
  16 + *
  17 + * @Date 2019-09-25
  18 + *
  19 + * @Version
  20 + *
  21 + */
  22 +
  23 +@Repository
  24 +public interface RepairReportRepository extends BaseRepository<RepairReport, Integer> {
  25 +
  26 +}
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -194,4 +194,6 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
194 194 List<Map<String, Object>> scheduleCorrectionReport(String gsdm, String fgsdm,
195 195 String line, String date, String date2);
196 196 Integer isCircleQdz(String clzbh,String sdr,String xlbm,String qdzCode);
  197 +
  198 + Map<String, Object> repairReport(Map<String, Object> map, boolean isActive);
197 199 }
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -33,6 +33,7 @@ import com.bsth.entity.realcontrol.LineConfig;
33 33 import com.bsth.entity.realcontrol.ScheduleRealInfo;
34 34 import com.bsth.entity.realcontrol.SvgAttribute;
35 35 import com.bsth.entity.report.MileageReport;
  36 +import com.bsth.entity.report.RepairReport;
36 37 import com.bsth.entity.report.ScheduleCorrectionReport;
37 38 import com.bsth.entity.schedule.CarConfigInfo;
38 39 import com.bsth.entity.schedule.EmployeeConfigInfo;
... ... @@ -44,6 +45,7 @@ import com.bsth.entity.sys.SysUser;
44 45 import com.bsth.repository.CarDeviceRepository;
45 46 import com.bsth.repository.CarsRepository;
46 47 import com.bsth.repository.LineRepository;
  48 +import com.bsth.repository.RepairReportRepository;
47 49 import com.bsth.repository.oil.DlbRepository;
48 50 import com.bsth.repository.oil.YlbRepository;
49 51 import com.bsth.repository.oil.YlxxbRepository;
... ... @@ -66,11 +68,14 @@ import com.bsth.service.sys.DictionaryService;
66 68 import com.bsth.service.sys.DutyEmployeeService;
67 69 import com.bsth.util.*;
68 70 import com.bsth.websocket.handler.SendUtils;
  71 +import com.fasterxml.jackson.databind.ObjectMapper;
69 72 import com.github.stuxuhai.jpinyin.PinyinException;
70 73 import com.github.stuxuhai.jpinyin.PinyinFormat;
71 74 import com.github.stuxuhai.jpinyin.PinyinHelper;
72 75 import com.google.common.base.Splitter;
73 76 import com.google.common.collect.Lists;
  77 +
  78 +import org.apache.commons.io.IOUtils;
74 79 import org.apache.commons.lang3.StringEscapeUtils;
75 80 import org.apache.commons.lang3.StringUtils;
76 81 import org.joda.time.format.DateTimeFormat;
... ... @@ -82,8 +87,14 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
82 87 import org.springframework.jdbc.core.JdbcTemplate;
83 88 import org.springframework.jdbc.core.RowMapper;
84 89 import org.springframework.stereotype.Service;
  90 +import org.springframework.transaction.annotation.Transactional;
85 91  
  92 +import java.io.ByteArrayOutputStream;
86 93 import java.io.File;
  94 +import java.io.IOException;
  95 +import java.io.InputStream;
  96 +import java.net.HttpURLConnection;
  97 +import java.net.URL;
87 98 import java.sql.ResultSet;
88 99 import java.sql.SQLException;
89 100 import java.text.DecimalFormat;
... ... @@ -168,6 +179,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
168 179  
169 180 @Autowired
170 181 CarsRepository carsRepository;
  182 +
  183 + @Autowired
  184 + RepairReportRepository repairReportRepository;
171 185 Logger logger = LoggerFactory.getLogger(this.getClass());
172 186  
173 187 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
... ... @@ -1525,6 +1539,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1525 1539 Map<String, Object> rs = new HashMap<>();
1526 1540 List<ScheduleRealInfo> ts = new ArrayList<>();
1527 1541 try {
  1542 + // 维修上报
  1543 + if (StringUtils.isNotBlank(map.get("repairTypes"))) {
  1544 + Map<String, Object> param = new HashMap<String, Object>();
  1545 + param.putAll(map);
  1546 + repairReport(param, false);
  1547 + }
  1548 +
1528 1549 Long id = Long.parseLong(map.get("id"));
1529 1550 String remarks = map.get("remarks");
1530 1551  
... ... @@ -6020,6 +6041,104 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
6020 6041 Integer num2=num==0L?0:1;
6021 6042 return num2;
6022 6043 }
  6044 +
  6045 + @SuppressWarnings("unchecked")
  6046 + private static Map<String, Object> request(String url) {
  6047 + Map<String, Object> res = new HashMap<String, Object>();
  6048 + res.put("status", ResponseCode.SUCCESS);
  6049 + InputStream in = null;
  6050 + HttpURLConnection con = null;
  6051 + try {
  6052 + con = (HttpURLConnection)new URL(url).openConnection();
  6053 + con.setRequestMethod("POST");
  6054 + con.setRequestProperty("keep-alive", "true");
  6055 + con.setRequestProperty("accept", "application/json");
  6056 + con.setRequestProperty("content-type", "application/json");
  6057 + con.setDoInput(true);
  6058 + con.setReadTimeout(2500);
  6059 + con.setConnectTimeout(2500);
  6060 +
  6061 + con.connect();
  6062 + if (con.getResponseCode() == 200) {
  6063 + in = con.getInputStream();
  6064 + ByteArrayOutputStream bout = new ByteArrayOutputStream();
  6065 + IOUtils.copy(in, bout); bout.close();
  6066 + Map<String, Object> response = new ObjectMapper().readValue(bout.toByteArray(), Map.class);
  6067 + if (!"报修成功".equals(response.get("msg"))) {
  6068 + res.put("status", ResponseCode.ERROR);
  6069 + res.putAll(response);
  6070 + }
  6071 + }
  6072 + } catch (IOException e) {
  6073 + // TODO Auto-generated catch block
  6074 + res.put("status", ResponseCode.ERROR);
  6075 + res.put("msg", "调用上报接口异常");
  6076 + } finally {
  6077 + try {
  6078 + if (in != null) in.close();
  6079 + if (con != null) con.disconnect();
  6080 + } catch (IOException e) {
  6081 + // TODO Auto-generated catch block
  6082 + e.printStackTrace();
  6083 + }
  6084 + }
  6085 +
  6086 + return res;
  6087 + }
  6088 +
  6089 + /**
  6090 + ** 维修记录上报
  6091 + * @param param 参数信息
  6092 + * @param isActive 主/被动上报
  6093 + */
  6094 + @Override
  6095 + @Transactional
  6096 + public Map<String, Object> repairReport(Map<String, Object> param, boolean isActive) {
  6097 + Map<String, Object> res = new HashMap<String, Object>();
  6098 + res.put("status", ResponseCode.SUCCESS);
  6099 + // 获取实际排班信息
  6100 + Long id = Long.parseLong((String)param.get("id"));
  6101 + ScheduleRealInfo sch = dayOfSchedule.get(id);
  6102 +
  6103 + if (null == sch) {
  6104 + res.put("status", ResponseCode.ERROR);
  6105 + res.put("msg", "不存在的班次!");
  6106 +
  6107 + return res;
  6108 + }
  6109 +
  6110 + int reportState = -1;
  6111 + SysUser user = SecurityUtils.getCurrentUser();
  6112 + String reportUser = user.getUserName(), reportName = user.getName(), incode = (String)param.get("clZbh"), repairTypes = (String)param.get("repairTypes");
  6113 + // 分公司保存格式 分公司编码_公司编码
  6114 + String val = BasicData.nbbm2FgsCompanyCodeMap.get(incode);
  6115 + String[] arr = val.split("_");
  6116 + StringBuilder url = new StringBuilder(ConfigUtil.get("http.report.url." + arr[1]));
  6117 + url.append("?nbbm=").append(incode).append("&bxy=").append(reportUser).append("&bxbm=").append(repairTypes).append("&fgs=").append(arr[0]);
  6118 +
  6119 + RepairReport lrr = dayOfSchedule.getLastestRepairReport(incode);
  6120 + // 非主动上报并且无上报记录或上次已上报或上次上报的同一个班次 则不用上报
  6121 + if (!isActive && (lrr == null || lrr.getReportState() != 0 || lrr.getSchId().equals(id))) {
  6122 + reportState = 0;
  6123 + } else {
  6124 + res = request(url.toString());
  6125 + if (ResponseCode.SUCCESS.equals(res.get("status"))) reportState = 1;
  6126 + }
  6127 + // 持久化此次上报记录
  6128 + RepairReport rr = new RepairReport();
  6129 + rr.setReportUser(reportUser);
  6130 + rr.setReportName(reportName);
  6131 + rr.setSchId(id);
  6132 + rr.setIncode(incode);
  6133 + rr.setDepartureTime(sch.getFcsj());
  6134 + rr.setRepairType(repairTypes);
  6135 + rr.setReportDate(new Date());
  6136 + rr.setReportState(reportState);
  6137 + repairReportRepository.save(rr);
  6138 + dayOfSchedule.setLastestRepairReport(rr);
  6139 +
  6140 + return res;
  6141 + }
6023 6142 }
6024 6143  
6025 6144 class AccountMap implements Comparator<Map<String, Object>> {
... ...
src/main/resources/application-prod.properties
... ... @@ -2,7 +2,7 @@ server.port=9088
2 2 management.port= 9001
3 3 management.address= 127.0.0.1
4 4  
5   -spring.jpa.hibernate.ddl-auto= none
  5 +spring.jpa.hibernate.ddl-auto= update
6 6 spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
7 7 #DATABASE
8 8 spring.jpa.database= MYSQL
... ... @@ -30,4 +30,11 @@ http.gps.real.url= http://10.10.200.79:8080/transport_server/rtgps/
30 30 ## gateway send directive
31 31 http.send.directive = http://10.10.200.79:8080/transport_server/message/
32 32 ## wxsb
33   -http.report.url= http://116.247.73.122:9098/jgjwsystem_j2ee/clbx/clbx_dd_gps.do
34 33 \ No newline at end of file
  34 +#http.report.url.05= http://192.168.168.154:8088/ygjwsystem_j2ee/clbx/clbx_dd.do
  35 +#http.report.url.22= http://192.168.168.154:8088/jgjwsystem_j2ee/clbx/clbx_dd.do
  36 +#http.report.url.26= http://192.168.168.154:8088/nhjwsystem_j2ee/clbx/clbx_dd.do
  37 +#http.report.url.55= http://192.168.168.154:8088/snjwsystem_j2ee/clbx/clbx_dd.do
  38 +http.report.url.05= http://116.228.197.222:8081/ygjwsystem_j2ee/clbx/clbx_dd.do
  39 +http.report.url.22= http://116.247.73.122:9098/jgjwsystem_j2ee/clbx/clbx_dd.do
  40 +http.report.url.26= http://116.236.141.34:8088/nhjwsystem_j2ee/clbx/clbx_dd.do
  41 +http.report.url.55= http://180.168.216.248:8088/snjwsystem_j2ee/clbx/clbx_dd.do
35 42 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/css/line_schedule.css
... ... @@ -370,6 +370,23 @@ span.fcsj-diff {
370 370 padding-left: 12px;
371 371 }
372 372  
  373 +.repair-type-checkbox-list {
  374 + height: 180px;
  375 + overflow: auto;
  376 + border: 1px solid #c4c4c4;
  377 + border-radius: 4px;
  378 + padding: 9px 0;
  379 +}
  380 +
  381 +.repair-type-checkbox-list label {
  382 + display: block;
  383 + font-size: 14px;
  384 + border-bottom: 1px dashed #e6e3e3;
  385 + height: 30px;
  386 + line-height: 30px;
  387 + padding-left: 12px;
  388 +}
  389 +
373 390 /*.sch-time-checkbox-list label input[type=checkbox] {
374 391 width: 20px;
375 392 height: 18px !important;
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/fcxxwt.html
... ... @@ -125,6 +125,21 @@
125 125 </div>
126 126 </div>
127 127 </div>
  128 + <div class="uk-grid">
  129 + <div class="uk-width-1-1">
  130 + <div class="uk-form-row">
  131 + <label class="uk-form-label" >维修类型</label>
  132 + <div class="uk-form-controls repair-type-checkbox-list">
  133 + {{each repairTypes as repair i}}
  134 + <label>
  135 + <input class="i-cbox" name="repairTypes[]" value="{{repair.code}}" type="checkbox" title="{{repair.name}}">
  136 + {{repair.name}}
  137 + </label>
  138 + {{/each}}
  139 + </div>
  140 + </div>
  141 + </div>
  142 + </div>
128 143 <div class="uk-grid">
129 144 <div class="uk-width-1-1">
130 145 <div class="uk-form-row ct-stacked">
... ... @@ -166,13 +181,23 @@
166 181 <script>
167 182 (function() {
168 183 var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];
  184 + var repairTypes = [{name:"轨迹不连续", code:"9101"}, {name:"无轨迹", code:"9102"}, {name:"收不到调度指令", code:"9103"}, {name:"调度指令延迟", code:"9105"}, {name:"信号漂移", code:"9104"}, {name:"其它GPS报修", code:"9109"}];
169 185 var modal = '#schedule-fcxxwt-modal'
170 186 ,sch;
171 187 $(modal).on('init', function(e, data) {
172 188 e.stopPropagation();
173 189 sch=data.sch;
174   - var formHtml = template('schedule-fcxxwt-form-temp', {sch: sch, adjustExps:adjustExps});
  190 + var formHtml = template('schedule-fcxxwt-form-temp', {sch: sch, adjustExps:adjustExps, repairTypes:repairTypes});
175 191 $('form', modal).html(formHtml);
  192 + $('input:checkbox').click(function(){
  193 + var remark = $('[name=remarks]').val(), title = $(this).prop("title");
  194 + if ($(this).prop('checked')) {
  195 + if (remark.indexOf(title) > -1) return;
  196 + $('[name=remarks]').val((remark ? remark + ";" : "") + title);
  197 + } else {
  198 + $('[name=remarks]').val(remark.replace(";" + title, "").replace(title + ";", "").replace(title, ""));
  199 + }
  200 + });
176 201 //字典转换
177 202 dictionaryUtils.transformDom($('.nt-dictionary', modal));
178 203  
... ... @@ -184,6 +209,20 @@
184 209 gb_common.personAutocomplete($('.jsy-autocom', modal));
185 210 //售票员
186 211 gb_common.personAutocomplete($('.spy-autocom', modal));
  212 + // 维修类型选中
  213 + var initRepair = function() {
  214 + var remark = $('[name=remarks]').val(), items = remark.split(';');
  215 + for (var i = 0;i < items.length;i++) {
  216 + if (items[i].length > 2) {
  217 + for (var j = 0;j < repairTypes.length;j++) {
  218 + if (items[i] == repairTypes[j].name) {
  219 + $('input:checkbox[value=' + repairTypes[j].code + ']').prop('checked', true);
  220 + }
  221 + }
  222 + }
  223 + }
  224 + }
  225 + initRepair();
187 226  
188 227 //submit
189 228 var f = $('form', modal).formValidation(gb_form_validation_opts);
... ... @@ -201,6 +240,8 @@
201 240 var normalDestory = data.jhlc==0 && sch.bcType != 'in' && sch.bcType != 'out';
202 241 //修改里程
203 242 var editJhlc = data.jhlc != sch.jhlc && data.jhlc != 0;
  243 + // 修改报修类型为字符串
  244 + if (data.repairTypes) data.repairTypes = data.repairTypes.join(";");
204 245 if(!data.adjustExps && (data.status==-1 || normalDestory || editJhlc)){
205 246 notify_err("当前操作需要选择调整原因!");
206 247 return;
... ... @@ -240,7 +281,7 @@
240 281  
241 282 $('[name=adjustExps]', f).on('change', function(){
242 283 var rem=$('[name=remarks]', f);
243   - rem.val(rem.val() + $(this).val() + ',').trigger('input');
  284 + rem.val((rem.val() ? rem.val() + ";" : "") + $(this).val()).trigger('input');
244 285 });
245 286  
246 287  
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/wxsb.html
... ... @@ -14,7 +14,7 @@
14 14 <div class="uk-form-row">
15 15 <label class="uk-form-label" >车辆编码</label>
16 16 <div class="uk-form-controls">
17   - <input type="text" name="nbbm" value="{{clZbh}}" readonly>
  17 + <input type="text" name="clZbh" value="{{clZbh}}" readonly>
18 18 </div>
19 19 </div>
20 20 </div>
... ... @@ -22,7 +22,7 @@
22 22 <div class="uk-form-row">
23 23 <label class="uk-form-label" >报修类型</label>
24 24 <div class="uk-form-controls">
25   - <select name="bxType"></select>
  25 + <select name="repairTypes"></select>
26 26 </div>
27 27 </div>
28 28 </div>
... ... @@ -44,12 +44,13 @@
44 44 var formHtml = template('schedule-wxsb-form-temp', sch);
45 45 $('form', modal).html(formHtml);
46 46  
47   - //班次类型字典
48   - var bxtypes=[{code:"9101", des:"轨迹不连续"}, {code:"9102", des:"无轨迹"}, {code:"9103", des:"收不到调度指令"}, {code:"9104", des:"漂移"}, {code:"9109", des:"其它"}],opts='';
49   - for(var i = 0;i < bxtypes.length;i++){
50   - opts+='<option value="'+bxtypes[i].code+'">'+bxtypes[i].des+'</option>';
  47 + //报修类型字典
  48 + var opts = new Array();
  49 + var repairTypes=[{name:"录像不连续", code:"9201"}, {name:"无录像", code:"9202"}, {name:"录像缺通告", code:"9203"}, {name:"无法调取录像", code:"9204"}, {name:"其它录像报修", code:"9209"}, {name:"黑屏", code:"9301"}, {name:"间歇性黑屏", code:"9302"}, {name:"中门视屏无", code:"9303"}, {name:"卡在启动界面", code:"9304"}, {name:"倒车视频无", code:"9305"}, {name:"启动后显示倒车", code:"9306"}, {name:"其它屏幕报修", code:"9309"}];
  50 + for(var i = 0;i < repairTypes.length;i++){
  51 + opts.push('<option value="'+repairTypes[i].code+'">'+repairTypes[i].name+'</option>');
51 52 }
52   - $('[name=bxType]', modal).html(opts);
  53 + $('[name=repairTypes]', modal).html(opts.join(""));
53 54  
54 55 //submit
55 56 var f = $('form', modal).formValidation(gb_form_validation_opts);
... ...