Commit ac131605132b7742778f09b2f8a7ada2759d0973
1 parent
a92b3a2c
1.维修上报
Showing
11 changed files
with
356 additions
and
83 deletions
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<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<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<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<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); | ... | ... |