Commit 8f41b106a220c7b00d50f1f962407bae48885a7d
1 parent
b9361d3a
update...
Showing
6 changed files
with
144 additions
and
6 deletions
src/main/java/com/bsth/data/pilot80/PilotReport.java
| @@ -117,6 +117,10 @@ public class PilotReport { | @@ -117,6 +117,10 @@ public class PilotReport { | ||
| 117 | 117 | ||
| 118 | //推送到页面 | 118 | //推送到页面 |
| 119 | sendUtils.send80ToPage(d80); | 119 | sendUtils.send80ToPage(d80); |
| 120 | + | ||
| 121 | + //反射搜索用 瞬时字段 | ||
| 122 | + d80.setLineId(d80.getData().getLineId()); | ||
| 123 | + d80.setNbbm(d80.getData().getNbbm()); | ||
| 120 | } catch (Exception e) { | 124 | } catch (Exception e) { |
| 121 | logger.error("", e); | 125 | logger.error("", e); |
| 122 | } | 126 | } |
src/main/java/com/bsth/data/utils/ListFilterUtils.java
0 → 100644
| 1 | +package com.bsth.data.utils; | ||
| 2 | + | ||
| 3 | +import org.apache.commons.lang3.StringUtils; | ||
| 4 | +import org.slf4j.Logger; | ||
| 5 | +import org.slf4j.LoggerFactory; | ||
| 6 | + | ||
| 7 | +import java.lang.reflect.Field; | ||
| 8 | +import java.util.ArrayList; | ||
| 9 | +import java.util.Collection; | ||
| 10 | +import java.util.List; | ||
| 11 | +import java.util.Map; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * 集合搜索过滤 | ||
| 15 | + * Created by panzhao on 2017/8/2. | ||
| 16 | + */ | ||
| 17 | +public class ListFilterUtils { | ||
| 18 | + | ||
| 19 | + static Logger logger = LoggerFactory.getLogger(ListFilterUtils.class); | ||
| 20 | + | ||
| 21 | + public static List filter(Collection all, Map<String, Object> map, Class clazz) { | ||
| 22 | + List rs = new ArrayList(); | ||
| 23 | + Field[] fields = clazz.getDeclaredFields(); | ||
| 24 | + | ||
| 25 | + //参与过滤的字段 | ||
| 26 | + List<Field> fs = new ArrayList<>(); | ||
| 27 | + for (Field f : fields) { | ||
| 28 | + f.setAccessible(true); | ||
| 29 | + if (map.containsKey(f.getName())) | ||
| 30 | + fs.add(f); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + //过滤数据 | ||
| 34 | + for (Object obj : all) { | ||
| 35 | + if (fieldEquals(fs, obj, map)) | ||
| 36 | + rs.add(obj); | ||
| 37 | + } | ||
| 38 | + return rs; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public static boolean fieldEquals(List<Field> fs, Object obj, Map<String, Object> map) { | ||
| 42 | + try { | ||
| 43 | + for (Field f : fs) { | ||
| 44 | + if (StringUtils.isEmpty(map.get(f.getName()).toString())) | ||
| 45 | + continue; | ||
| 46 | + | ||
| 47 | + if (f.get(obj) == null || f.get(obj).toString().indexOf(map.get(f.getName()).toString()) == -1) | ||
| 48 | + return false; | ||
| 49 | + } | ||
| 50 | + } catch (Exception e) { | ||
| 51 | + logger.error("", e); | ||
| 52 | + return false; | ||
| 53 | + } | ||
| 54 | + return true; | ||
| 55 | + } | ||
| 56 | +} |
src/main/java/com/bsth/data/utils/ListPageQueryUtils.java
0 → 100644
| 1 | +package com.bsth.data.utils; | ||
| 2 | + | ||
| 3 | +import java.util.ArrayList; | ||
| 4 | +import java.util.List; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 集合分页工具 | ||
| 8 | + * Created by panzhao on 2017/8/2. | ||
| 9 | + */ | ||
| 10 | +public class ListPageQueryUtils { | ||
| 11 | + | ||
| 12 | + public static List paging(List all, int page, int pageSize) { | ||
| 13 | + List rs = new ArrayList(pageSize); | ||
| 14 | + | ||
| 15 | + int s = page * pageSize; | ||
| 16 | + int e = (page + 1) * pageSize; | ||
| 17 | + | ||
| 18 | + int size = all.size(); | ||
| 19 | + | ||
| 20 | + if (e > size) | ||
| 21 | + e = size; | ||
| 22 | + | ||
| 23 | + if (s > size) | ||
| 24 | + return rs; | ||
| 25 | + | ||
| 26 | + for (; s < e; s++) { | ||
| 27 | + rs.add(all.get(s)); | ||
| 28 | + } | ||
| 29 | + return rs; | ||
| 30 | + } | ||
| 31 | +} |
src/main/java/com/bsth/entity/directive/D80.java
| 1 | package com.bsth.entity.directive; | 1 | package com.bsth.entity.directive; |
| 2 | 2 | ||
| 3 | import com.bsth.entity.directive.DC0.DC0Data; | 3 | import com.bsth.entity.directive.DC0.DC0Data; |
| 4 | +import com.fasterxml.jackson.annotation.JsonIgnore; | ||
| 4 | 5 | ||
| 5 | import javax.persistence.*; | 6 | import javax.persistence.*; |
| 6 | import java.util.Date; | 7 | import java.util.Date; |
| @@ -65,6 +66,14 @@ public class D80 { | @@ -65,6 +66,14 @@ public class D80 { | ||
| 65 | 66 | ||
| 66 | private Long schId; | 67 | private Long schId; |
| 67 | 68 | ||
| 69 | + @Transient | ||
| 70 | + @JsonIgnore | ||
| 71 | + private String lineId; | ||
| 72 | + | ||
| 73 | + @Transient | ||
| 74 | + @JsonIgnore | ||
| 75 | + private String nbbm; | ||
| 76 | + | ||
| 68 | public Long getSchId() { | 77 | public Long getSchId() { |
| 69 | return schId; | 78 | return schId; |
| 70 | } | 79 | } |
| @@ -73,6 +82,22 @@ public class D80 { | @@ -73,6 +82,22 @@ public class D80 { | ||
| 73 | this.schId = schId; | 82 | this.schId = schId; |
| 74 | } | 83 | } |
| 75 | 84 | ||
| 85 | + public String getLineId() { | ||
| 86 | + return data.lineId; | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + public String getNbbm() { | ||
| 90 | + return data.nbbm; | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + public void setLineId(String lineId) { | ||
| 94 | + this.lineId = lineId; | ||
| 95 | + } | ||
| 96 | + | ||
| 97 | + public void setNbbm(String nbbm) { | ||
| 98 | + this.nbbm = nbbm; | ||
| 99 | + } | ||
| 100 | + | ||
| 76 | @Embeddable | 101 | @Embeddable |
| 77 | public static class D80Data { | 102 | public static class D80Data { |
| 78 | 103 |
src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
| @@ -11,6 +11,8 @@ import com.bsth.data.gpsdata.GpsEntity; | @@ -11,6 +11,8 @@ import com.bsth.data.gpsdata.GpsEntity; | ||
| 11 | import com.bsth.data.gpsdata.GpsRealData; | 11 | import com.bsth.data.gpsdata.GpsRealData; |
| 12 | import com.bsth.data.pilot80.PilotReport; | 12 | import com.bsth.data.pilot80.PilotReport; |
| 13 | import com.bsth.data.schedule.DayOfSchedule; | 13 | import com.bsth.data.schedule.DayOfSchedule; |
| 14 | +import com.bsth.data.utils.ListFilterUtils; | ||
| 15 | +import com.bsth.data.utils.ListPageQueryUtils; | ||
| 14 | import com.bsth.entity.directive.*; | 16 | import com.bsth.entity.directive.*; |
| 15 | import com.bsth.entity.realcontrol.ScheduleRealInfo; | 17 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| 16 | import com.bsth.entity.sys.SysUser; | 18 | import com.bsth.entity.sys.SysUser; |
| @@ -448,7 +450,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen | @@ -448,7 +450,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen | ||
| 448 | 450 | ||
| 449 | @Override | 451 | @Override |
| 450 | public Map<String, Object> findAll80(Map<String, Object> map, int page, int size) { | 452 | public Map<String, Object> findAll80(Map<String, Object> map, int page, int size) { |
| 451 | - List<D80> d80s = new ArrayList<>(); | 453 | + /*List<D80> d80s = new ArrayList<>(); |
| 452 | 454 | ||
| 453 | Object nbbm = map.get("nbbm"); | 455 | Object nbbm = map.get("nbbm"); |
| 454 | if (null != nbbm && StringUtils.isNotEmpty(nbbm.toString())) { | 456 | if (null != nbbm && StringUtils.isNotEmpty(nbbm.toString())) { |
| @@ -492,8 +494,18 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen | @@ -492,8 +494,18 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen | ||
| 492 | Map<String, Object> rsMap = new HashMap<>(); | 494 | Map<String, Object> rsMap = new HashMap<>(); |
| 493 | rsMap.put("list", rs); | 495 | rsMap.put("list", rs); |
| 494 | rsMap.put("totalPages", count % size == 0 ? count / size - 1 : count / size); | 496 | rsMap.put("totalPages", count % size == 0 ? count / size - 1 : count / size); |
| 495 | - rsMap.put("page", page); | 497 | + rsMap.put("page", page);*/ |
| 496 | 498 | ||
| 499 | + Collection all = pilotReport.findAll(); | ||
| 500 | + List<D80> d80s = ListPageQueryUtils.paging(ListFilterUtils.filter(all, map, D80.class), page, size); | ||
| 501 | + //时间格式化 | ||
| 502 | + for (D80 d80 : d80s) { | ||
| 503 | + d80.setTimeStr(fmtHHmm.print(d80.getTimestamp())); | ||
| 504 | + } | ||
| 505 | + Map<String, Object> rsMap = new HashMap<>(); | ||
| 506 | + rsMap.put("list", d80s); | ||
| 507 | + rsMap.put("totalPages", d80s.size() % size == 0 ? d80s.size() / size - 1 : d80s.size() / size); | ||
| 508 | + rsMap.put("page", page); | ||
| 497 | return rsMap; | 509 | return rsMap; |
| 498 | } | 510 | } |
| 499 | 511 |
src/main/resources/static/real_control_v2/fragments/north/nav/report_80.html
| @@ -14,6 +14,10 @@ | @@ -14,6 +14,10 @@ | ||
| 14 | <select name="requestCode"> | 14 | <select name="requestCode"> |
| 15 | <option value="-1">全部</option> | 15 | <option value="-1">全部</option> |
| 16 | </select> | 16 | </select> |
| 17 | + <span class="horizontal-field">线路</span> | ||
| 18 | + <div class="uk-autocomplete uk-form autocomplete-line" > | ||
| 19 | + <input type="text" name="lineId" placeholder="线路"> | ||
| 20 | + </div> | ||
| 17 | <span class="horizontal-field">车辆</span> | 21 | <span class="horizontal-field">车辆</span> |
| 18 | <div class="uk-autocomplete uk-form autocomplete-cars" > | 22 | <div class="uk-autocomplete uk-form autocomplete-cars" > |
| 19 | <input type="text" name="nbbm" placeholder="车辆自编号"> | 23 | <input type="text" name="nbbm" placeholder="车辆自编号"> |
| @@ -84,9 +88,9 @@ | @@ -84,9 +88,9 @@ | ||
| 84 | } | 88 | } |
| 85 | $('[name=requestCode]', modal).append(opt); | 89 | $('[name=requestCode]', modal).append(opt); |
| 86 | //车辆 autocomplete | 90 | //车辆 autocomplete |
| 87 | - $.get('/basic/cars', function(rs) { | ||
| 88 | - gb_common.carAutocomplete($('.autocomplete-cars', modal), rs); | ||
| 89 | - }); | 91 | + gb_common.carAutocomplete($('.autocomplete-cars', modal), gb_data_basic.carsArray()); |
| 92 | + //线路 autocomplete | ||
| 93 | + gb_common.lineAutocomplete($('.autocomplete-line', modal)); | ||
| 90 | query(); | 94 | query(); |
| 91 | }); | 95 | }); |
| 92 | 96 | ||
| @@ -102,6 +106,12 @@ | @@ -102,6 +106,12 @@ | ||
| 102 | var data = form.serializeJSON(); | 106 | var data = form.serializeJSON(); |
| 103 | data.page = page; | 107 | data.page = page; |
| 104 | data.size = pageSize; | 108 | data.size = pageSize; |
| 109 | + //线路转换成编码 | ||
| 110 | + if(data.lineId){ | ||
| 111 | + var lineCode = gb_data_basic.findCodeByLinename(data.lineId); | ||
| 112 | + if(lineCode) | ||
| 113 | + data.lineId=lineCode; | ||
| 114 | + } | ||
| 105 | $.get('/directive/findAll80', data, function(rs) { | 115 | $.get('/directive/findAll80', data, function(rs) { |
| 106 | $.each(rs.list, function(){ | 116 | $.each(rs.list, function(){ |
| 107 | //命令字转中文 | 117 | //命令字转中文 |
| @@ -122,7 +132,7 @@ | @@ -122,7 +132,7 @@ | ||
| 122 | if (resetPagination) | 132 | if (resetPagination) |
| 123 | pagination(rs.totalPages + 1, rs.page); | 133 | pagination(rs.totalPages + 1, rs.page); |
| 124 | }) | 134 | }) |
| 125 | - } | 135 | + }; |
| 126 | 136 | ||
| 127 | var resetPagination = true; | 137 | var resetPagination = true; |
| 128 | var pagination = function(pages, currentPage) { | 138 | var pagination = function(pages, currentPage) { |