Commit e834adca5c00ba60b6048f11285068afb46ef435
1 parent
1cbb83a7
update...
Showing
13 changed files
with
367 additions
and
50 deletions
src/main/java/com/bsth/common/Constants.java
| 1 | 1 | package com.bsth.common; |
| 2 | 2 | |
| 3 | +import com.alibaba.fastjson.JSONObject; | |
| 4 | +import com.bsth.util.ConfigUtil; | |
| 5 | + | |
| 3 | 6 | /** |
| 4 | 7 | * |
| 5 | 8 | * @ClassName: Constants |
| ... | ... | @@ -28,4 +31,21 @@ public class Constants { |
| 28 | 31 | * 对外的上行输入接口 |
| 29 | 32 | */ |
| 30 | 33 | public static final String UPSTREAM_URL = "/bus_park_dispatch/**"; |
| 34 | + | |
| 35 | + //公司权限 | |
| 36 | + public static String authJsonStr; | |
| 37 | + public static String tccName; | |
| 38 | + public static String tccCode; | |
| 39 | + | |
| 40 | + static{ | |
| 41 | + JSONObject json = JSONObject.parseObject(ConfigUtil.get("data.company.json")); | |
| 42 | + JSONObject authJson = new JSONObject(); | |
| 43 | + String[] codes = ConfigUtil.get("tcc.company.id").split(","); | |
| 44 | + for(int i = 0; i < codes.length; i ++){ | |
| 45 | + authJson.put(codes[i], json.get(codes[i])); | |
| 46 | + } | |
| 47 | + authJsonStr = authJson.toJSONString(); | |
| 48 | + tccName = ConfigUtil.get("tcc.name"); | |
| 49 | + tccCode = ConfigUtil.get("tcc.code"); | |
| 50 | + } | |
| 31 | 51 | } | ... | ... |
src/main/java/com/bsth/controller/basic/CompanyController.java
| 1 | 1 | package com.bsth.controller.basic; |
| 2 | 2 | |
| 3 | -import com.alibaba.fastjson.JSONObject; | |
| 4 | -import com.bsth.util.ConfigUtil; | |
| 3 | +import com.bsth.common.Constants; | |
| 5 | 4 | import org.springframework.web.bind.annotation.RequestMapping; |
| 6 | 5 | import org.springframework.web.bind.annotation.RestController; |
| 7 | 6 | |
| ... | ... | @@ -15,32 +14,17 @@ import java.util.Map; |
| 15 | 14 | @RequestMapping("company_json") |
| 16 | 15 | public class CompanyController { |
| 17 | 16 | |
| 18 | - static String jsonStr; | |
| 19 | - static String tccName; | |
| 20 | - static String tccCode; | |
| 21 | - | |
| 22 | - static{ | |
| 23 | - JSONObject json = JSONObject.parseObject(ConfigUtil.get("data.company.json")); | |
| 24 | - JSONObject authJson = new JSONObject(); | |
| 25 | - String[] codes = ConfigUtil.get("tcc.company.id").split(","); | |
| 26 | - for(int i = 0; i < codes.length; i ++){ | |
| 27 | - authJson.put(codes[i], json.get(codes[i])); | |
| 28 | - } | |
| 29 | - jsonStr = authJson.toJSONString(); | |
| 30 | - tccName = ConfigUtil.get("tcc.name"); | |
| 31 | - tccCode = ConfigUtil.get("tcc.code"); | |
| 32 | - } | |
| 33 | 17 | |
| 34 | 18 | @RequestMapping |
| 35 | 19 | public String get(){ |
| 36 | - return jsonStr; | |
| 20 | + return Constants.authJsonStr; | |
| 37 | 21 | } |
| 38 | 22 | |
| 39 | 23 | @RequestMapping(value = "curr_tcc_info") |
| 40 | 24 | public Map<String, String> getTccName(){ |
| 41 | 25 | Map<String, String> map = new HashMap<>(); |
| 42 | - map.put("name", tccName); | |
| 43 | - map.put("code", tccCode); | |
| 26 | + map.put("name", Constants.tccName); | |
| 27 | + map.put("code", Constants.tccCode); | |
| 44 | 28 | return map; |
| 45 | 29 | } |
| 46 | 30 | } | ... | ... |
src/main/java/com/bsth/controller/schedule/InOutScheduleController.java
| ... | ... | @@ -51,4 +51,9 @@ public class InOutScheduleController { |
| 51 | 51 | public Map<String, Object> dftz(@RequestParam Map<String, Object> map){ |
| 52 | 52 | return inOutScheduleService.dftz(map); |
| 53 | 53 | } |
| 54 | + | |
| 55 | + @RequestMapping(value = "tzrc", method = RequestMethod.POST) | |
| 56 | + public Map<String, Object> tzrc(@RequestParam String cpcsJson){ | |
| 57 | + return inOutScheduleService.tzrc(cpcsJson); | |
| 58 | + } | |
| 54 | 59 | } | ... | ... |
src/main/java/com/bsth/data/abnormal/MainAbnormalClient.java
| 1 | 1 | package com.bsth.data.abnormal; |
| 2 | 2 | |
| 3 | -import com.alibaba.fastjson.JSON; | |
| 4 | 3 | import com.bsth.data.abnormal.entity.AbnormalEntity; |
| 4 | +import com.bsth.data.abnormal.handler.AttendanceHandler; | |
| 5 | +import com.bsth.data.abnormal.handler.InOutHandler; | |
| 5 | 6 | import com.bsth.websocket.handler.SendUtils; |
| 6 | 7 | import com.google.common.collect.ArrayListMultimap; |
| 7 | 8 | import org.slf4j.Logger; |
| ... | ... | @@ -10,22 +11,24 @@ import org.springframework.beans.factory.annotation.Autowired; |
| 10 | 11 | import org.springframework.stereotype.Component; |
| 11 | 12 | |
| 12 | 13 | import java.util.List; |
| 13 | -import java.util.concurrent.ConcurrentHashMap; | |
| 14 | -import java.util.concurrent.ConcurrentMap; | |
| 15 | 14 | |
| 16 | 15 | /** |
| 17 | - * 异常监管主处理程序 | |
| 16 | + * 异常监管 | |
| 18 | 17 | * Created by panzhao on 2018/3/1. |
| 19 | 18 | */ |
| 20 | 19 | @Component |
| 21 | 20 | public class MainAbnormalClient { |
| 22 | 21 | |
| 23 | 22 | private static ArrayListMultimap<String, AbnormalEntity> lineMultimap; |
| 24 | - private static ConcurrentMap<Long, AbnormalEntity> schIdMap; | |
| 23 | + | |
| 24 | + @Autowired | |
| 25 | + AttendanceHandler attendanceHandler; | |
| 26 | + | |
| 27 | + @Autowired | |
| 28 | + InOutHandler inOutHandler; | |
| 25 | 29 | |
| 26 | 30 | static { |
| 27 | 31 | lineMultimap = ArrayListMultimap.create(); |
| 28 | - schIdMap = new ConcurrentHashMap<>(); | |
| 29 | 32 | } |
| 30 | 33 | |
| 31 | 34 | @Autowired |
| ... | ... | @@ -35,12 +38,19 @@ public class MainAbnormalClient { |
| 35 | 38 | |
| 36 | 39 | public void put(AbnormalEntity ae){ |
| 37 | 40 | lineMultimap.put(ae.getLineCode(), ae); |
| 38 | - schIdMap.put(ae.getSchId(), ae); | |
| 41 | + | |
| 42 | + if(ae.getType() == -1) | |
| 43 | + attendanceHandler.put(ae); | |
| 44 | + else if(ae.getType() == -2) | |
| 45 | + inOutHandler.put(ae); | |
| 39 | 46 | |
| 40 | 47 | //web socket |
| 41 | 48 | sendUtils.abnormal_ydwd(ae); |
| 49 | + } | |
| 42 | 50 | |
| 43 | - logger.info("应到未到: " + JSON.toJSONString(ae)); | |
| 51 | + public void dftz(Long id, String source){ | |
| 52 | + inOutHandler.dftzJd(id, source); | |
| 53 | + attendanceHandler.dftzJd(id, source); | |
| 44 | 54 | } |
| 45 | 55 | |
| 46 | 56 | public List<AbnormalEntity> findByLine(String lineCode){ | ... | ... |
src/main/java/com/bsth/data/abnormal/entity/AbnormalEntity.java
| ... | ... | @@ -44,6 +44,22 @@ public class AbnormalEntity { |
| 44 | 44 | |
| 45 | 45 | private String lpName; |
| 46 | 46 | |
| 47 | + //--------------- | |
| 48 | + /** | |
| 49 | + * 处理人 | |
| 50 | + */ | |
| 51 | + private String handlerUser; | |
| 52 | + | |
| 53 | + /** | |
| 54 | + * 处理时间 | |
| 55 | + */ | |
| 56 | + private Long handlerTime; | |
| 57 | + | |
| 58 | + /** | |
| 59 | + * 说明 | |
| 60 | + */ | |
| 61 | + private String handlerDes; | |
| 62 | + | |
| 47 | 63 | public int getType() { |
| 48 | 64 | return type; |
| 49 | 65 | } |
| ... | ... | @@ -107,4 +123,28 @@ public class AbnormalEntity { |
| 107 | 123 | public void setLpName(String lpName) { |
| 108 | 124 | this.lpName = lpName; |
| 109 | 125 | } |
| 126 | + | |
| 127 | + public String getHandlerUser() { | |
| 128 | + return handlerUser; | |
| 129 | + } | |
| 130 | + | |
| 131 | + public void setHandlerUser(String handlerUser) { | |
| 132 | + this.handlerUser = handlerUser; | |
| 133 | + } | |
| 134 | + | |
| 135 | + public Long getHandlerTime() { | |
| 136 | + return handlerTime; | |
| 137 | + } | |
| 138 | + | |
| 139 | + public void setHandlerTime(Long handlerTime) { | |
| 140 | + this.handlerTime = handlerTime; | |
| 141 | + } | |
| 142 | + | |
| 143 | + public String getHandlerDes() { | |
| 144 | + return handlerDes; | |
| 145 | + } | |
| 146 | + | |
| 147 | + public void setHandlerDes(String handlerDes) { | |
| 148 | + this.handlerDes = handlerDes; | |
| 149 | + } | |
| 110 | 150 | } | ... | ... |
src/main/java/com/bsth/data/abnormal/handler/AttendanceHandler.java
| 1 | 1 | package com.bsth.data.abnormal.handler; |
| 2 | 2 | |
| 3 | +import com.bsth.data.abnormal.entity.AbnormalEntity; | |
| 4 | +import com.bsth.data.schedule.dto.ScheduleInOut; | |
| 5 | +import com.bsth.data.schedule.real.ScheduleDataBuffer; | |
| 6 | +import org.springframework.stereotype.Component; | |
| 7 | + | |
| 8 | +import java.util.concurrent.ConcurrentHashMap; | |
| 9 | +import java.util.concurrent.ConcurrentMap; | |
| 10 | + | |
| 3 | 11 | /** |
| 4 | 12 | * 考勤异常处理 |
| 5 | 13 | * Created by panzhao on 2018/3/1. |
| 6 | 14 | */ |
| 15 | +@Component | |
| 7 | 16 | public class AttendanceHandler { |
| 17 | + | |
| 18 | + /** | |
| 19 | + * 未处理异常 | |
| 20 | + */ | |
| 21 | + private static ConcurrentMap<Long, AbnormalEntity> schIdMap; | |
| 22 | + | |
| 23 | + static { | |
| 24 | + schIdMap = new ConcurrentHashMap<>(); | |
| 25 | + } | |
| 26 | + | |
| 27 | + public void put(AbnormalEntity ae){ | |
| 28 | + schIdMap.put(ae.getSchId(), ae); | |
| 29 | + } | |
| 30 | + | |
| 31 | + /** | |
| 32 | + * 异常处理(待发调整) | |
| 33 | + * @param id | |
| 34 | + */ | |
| 35 | + public void dftzJd(Long id, String source){ | |
| 36 | + Long t = System.currentTimeMillis(); | |
| 37 | + | |
| 38 | + AbnormalEntity ae = schIdMap.get(id); | |
| 39 | + if(null == ae) | |
| 40 | + return; | |
| 41 | + | |
| 42 | + ScheduleInOut sio = ScheduleDataBuffer.findById(id); | |
| 43 | + | |
| 44 | + if(sio.getAttJhTime() - t > 1000 * 60){ | |
| 45 | + ae.setHandlerTime(t); | |
| 46 | + ae.setHandlerUser("system"); | |
| 47 | + ae.setHandlerDes(source); | |
| 48 | + | |
| 49 | + sio.setAbnormalStatus(0); | |
| 50 | + | |
| 51 | + schIdMap.remove(ae.getSchId()); | |
| 52 | + } | |
| 53 | + } | |
| 54 | + | |
| 55 | + public void handler(Long id){ | |
| 56 | + | |
| 57 | + } | |
| 8 | 58 | } | ... | ... |
src/main/java/com/bsth/data/abnormal/handler/InOutHandler.java
| 1 | 1 | package com.bsth.data.abnormal.handler; |
| 2 | 2 | |
| 3 | +import com.bsth.data.abnormal.entity.AbnormalEntity; | |
| 4 | +import com.bsth.data.schedule.dto.ScheduleInOut; | |
| 5 | +import com.bsth.data.schedule.real.ScheduleDataBuffer; | |
| 6 | +import org.springframework.stereotype.Component; | |
| 7 | + | |
| 8 | +import java.util.concurrent.ConcurrentHashMap; | |
| 9 | +import java.util.concurrent.ConcurrentMap; | |
| 10 | + | |
| 3 | 11 | /** |
| 4 | 12 | * 进出场异常处理 |
| 5 | 13 | * Created by panzhao on 2018/3/1. |
| 6 | 14 | */ |
| 15 | +@Component | |
| 7 | 16 | public class InOutHandler { |
| 17 | + | |
| 18 | + private static ConcurrentMap<Long, AbnormalEntity> schIdMap; | |
| 19 | + | |
| 20 | + static { | |
| 21 | + schIdMap = new ConcurrentHashMap<>(); | |
| 22 | + } | |
| 23 | + | |
| 24 | + public void put(AbnormalEntity ae){ | |
| 25 | + schIdMap.put(ae.getSchId(), ae); | |
| 26 | + } | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * 异常处理(待发调整) | |
| 30 | + * @param id | |
| 31 | + */ | |
| 32 | + public void dftzJd(Long id, String source){ | |
| 33 | + Long t = System.currentTimeMillis(); | |
| 34 | + | |
| 35 | + AbnormalEntity ae = schIdMap.get(id); | |
| 36 | + if(null == ae) | |
| 37 | + return; | |
| 38 | + | |
| 39 | + ScheduleInOut sio = ScheduleDataBuffer.findById(id); | |
| 40 | + | |
| 41 | + if(sio.getDfsjT() - t > 1000 * 60){ | |
| 42 | + ae.setHandlerTime(t); | |
| 43 | + ae.setHandlerUser("system"); | |
| 44 | + ae.setHandlerDes(source); | |
| 45 | + | |
| 46 | + sio.setAbnormalStatus(-1); | |
| 47 | + | |
| 48 | + schIdMap.remove(ae.getSchId()); | |
| 49 | + } | |
| 50 | + } | |
| 51 | + | |
| 52 | + public void handler(Long id){ | |
| 53 | + | |
| 54 | + } | |
| 8 | 55 | } | ... | ... |
src/main/java/com/bsth/data/abnormal/scanner/InOutAbnormalScanner.java
| 1 | 1 | package com.bsth.data.abnormal.scanner; |
| 2 | 2 | |
| 3 | +import com.bsth.data.abnormal.MainAbnormalClient; | |
| 4 | +import com.bsth.data.abnormal.entity.AbnormalEntity; | |
| 5 | +import com.bsth.data.schedule.dto.ScheduleInOut; | |
| 6 | +import com.bsth.data.schedule.real.ScheduleDataBuffer; | |
| 7 | +import org.joda.time.format.DateTimeFormat; | |
| 8 | +import org.joda.time.format.DateTimeFormatter; | |
| 9 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 10 | +import org.springframework.stereotype.Component; | |
| 11 | + | |
| 12 | +import java.util.List; | |
| 13 | + | |
| 3 | 14 | /** |
| 4 | 15 | * 进出场异常检测 |
| 5 | 16 | * Created by panzhao on 2018/3/1. |
| 6 | 17 | */ |
| 18 | +@Component | |
| 7 | 19 | public class InOutAbnormalScanner { |
| 20 | + | |
| 21 | + private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm"); | |
| 22 | + | |
| 23 | + @Autowired | |
| 24 | + MainAbnormalClient mainAbnormalClient; | |
| 25 | + | |
| 26 | + public void scan(){ | |
| 27 | + List<ScheduleInOut> list = ScheduleDataBuffer.all_out(); | |
| 28 | + | |
| 29 | + AbnormalEntity ae; | |
| 30 | + Long t = System.currentTimeMillis(); | |
| 31 | + for(ScheduleInOut sio : list){ | |
| 32 | + | |
| 33 | + if(sio.getStatus() == -1) | |
| 34 | + continue;//烂班 | |
| 35 | + | |
| 36 | + if(sio.getDfsjT() >= t) | |
| 37 | + continue;//出场时间未到 | |
| 38 | + | |
| 39 | + if(sio.getOutTimeRfid() != null) | |
| 40 | + continue;//RFID已出场 | |
| 41 | + | |
| 42 | + if(sio.getAbnormalStatus() < -1) | |
| 43 | + continue;//已报异常 | |
| 44 | + | |
| 45 | + ae = new AbnormalEntity(); | |
| 46 | + ae.setType(1); | |
| 47 | + ae.setSchId(sio.getId()); | |
| 48 | + ae.setLineCode(sio.getLineCode()); | |
| 49 | + ae.setNbbm(sio.getNbbm()); | |
| 50 | + ae.setPlanTimeStr(fmtHHmm.print(sio.getDfsjT())); | |
| 51 | + ae.setPlanTime(sio.getDfsjT()); | |
| 52 | + ae.setLpName(sio.getLpName()); | |
| 53 | + | |
| 54 | + mainAbnormalClient.put(ae); | |
| 55 | + | |
| 56 | + sio.setAbnormalStatus(-2); | |
| 57 | + } | |
| 58 | + } | |
| 8 | 59 | } | ... | ... |
src/main/java/com/bsth/data/abnormal/thread/AbnormalFixedScannerThread.java
| 1 | 1 | package com.bsth.data.abnormal.thread; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.data.abnormal.scanner.AttendanceAbnormalScanner; |
| 4 | +import com.bsth.data.abnormal.scanner.InOutAbnormalScanner; | |
| 4 | 5 | import org.slf4j.Logger; |
| 5 | 6 | import org.slf4j.LoggerFactory; |
| 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -18,11 +19,15 @@ public class AbnormalFixedScannerThread extends Thread { |
| 18 | 19 | @Autowired |
| 19 | 20 | AttendanceAbnormalScanner attendanceAbnormalScanner; |
| 20 | 21 | |
| 22 | + @Autowired | |
| 23 | + InOutAbnormalScanner inOutAbnormalScanner; | |
| 24 | + | |
| 21 | 25 | @Override |
| 22 | 26 | public void run() { |
| 23 | 27 | |
| 24 | 28 | try { |
| 25 | 29 | attendanceAbnormalScanner.scan(); |
| 30 | + inOutAbnormalScanner.scan(); | |
| 26 | 31 | } catch (Exception e) { |
| 27 | 32 | logger.error("", e); |
| 28 | 33 | } | ... | ... |
src/main/java/com/bsth/data/schedule/real/ScheduleDataBuffer.java
| ... | ... | @@ -111,12 +111,38 @@ public class ScheduleDataBuffer implements CommandLineRunner { |
| 111 | 111 | } |
| 112 | 112 | |
| 113 | 113 | public static void put(ScheduleInOut sio) { |
| 114 | + try { | |
| 115 | + if(null == sio.getUt()) | |
| 116 | + sio.setUt(System.currentTimeMillis()); | |
| 117 | + //公司编码 | |
| 118 | + Line line = LineDataBuffer.get(sio.getLineCode()); | |
| 119 | + sio.setGsbm(line.getCompany()); | |
| 120 | + sio.setFgsbm(line.getBrancheCompany()); | |
| 121 | + | |
| 122 | + //分离驾驶员工号 | |
| 123 | + String[] jsyArray = sio.getJsy().split("/"); | |
| 124 | + sio.setjGh(jsyArray[0]); | |
| 125 | + | |
| 126 | + //为驾驶员名称做拼音映射 | |
| 127 | + sio.setjNameFullChars(PinyinHelper.convertToPinyinString(jsyArray[1], "" , PinyinFormat.WITHOUT_TONE).toUpperCase()); | |
| 128 | + sio.setjNameCamelChars(PinyinHelper.getShortPinyin(jsyArray[1]).toUpperCase()); | |
| 129 | + } catch (Exception e) { | |
| 130 | + logger.info("计划异常 ID (jsy error...)" + sio.getId()); | |
| 131 | + } | |
| 132 | + | |
| 133 | + //计划报到时间 | |
| 134 | + sio.setAttJhTime(sio.getDfsjT() - 1000 * 60 * 15); | |
| 135 | + | |
| 114 | 136 | if (allMaps.containsKey(sio.getId())) |
| 115 | 137 | update(allMaps.get(sio.getId()), sio); |
| 116 | 138 | else |
| 117 | 139 | allMaps.put(sio.getId(), sio); |
| 118 | 140 | } |
| 119 | 141 | |
| 142 | + public static ScheduleInOut findById(Long id){ | |
| 143 | + return allMaps.get(id); | |
| 144 | + } | |
| 145 | + | |
| 120 | 146 | /** |
| 121 | 147 | * 分离进出场计划 |
| 122 | 148 | */ |
| ... | ... | @@ -167,7 +193,7 @@ public class ScheduleDataBuffer implements CommandLineRunner { |
| 167 | 193 | /** |
| 168 | 194 | * 人员,车辆分组的计划 |
| 169 | 195 | */ |
| 170 | - private static void p_c_mapps() { | |
| 196 | + public static void p_c_mapps() { | |
| 171 | 197 | //人员和车辆映射 |
| 172 | 198 | ArrayListMultimap pMultimapCopy = ArrayListMultimap.create(), |
| 173 | 199 | cMultimapCopy = ArrayListMultimap.create(); |
| ... | ... | @@ -303,25 +329,6 @@ public class ScheduleDataBuffer implements CommandLineRunner { |
| 303 | 329 | sio.setBcType(TYPE_IN); |
| 304 | 330 | else |
| 305 | 331 | sio.setBcType(""); |
| 306 | - | |
| 307 | - //公司编码 | |
| 308 | - line = LineDataBuffer.get(sio.getLineCode()); | |
| 309 | - sio.setGsbm(line.getCompany()); | |
| 310 | - sio.setFgsbm(line.getBrancheCompany()); | |
| 311 | - try { | |
| 312 | - //分离驾驶员工号 | |
| 313 | - String[] jsyArray = sio.getJsy().split("/"); | |
| 314 | - sio.setjGh(jsyArray[0]); | |
| 315 | - | |
| 316 | - //为驾驶员名称做拼音映射 | |
| 317 | - sio.setjNameFullChars(PinyinHelper.convertToPinyinString(jsyArray[1], "" , PinyinFormat.WITHOUT_TONE).toUpperCase()); | |
| 318 | - sio.setjNameCamelChars(PinyinHelper.getShortPinyin(jsyArray[1]).toUpperCase()); | |
| 319 | - } catch (Exception e) { | |
| 320 | - logger.info("计划异常 ID (jsy error...)" + sio.getId()); | |
| 321 | - } | |
| 322 | - | |
| 323 | - //计划报到时间 | |
| 324 | - sio.setAttJhTime(sio.getDfsjT() - 1000 * 60 * 15); | |
| 325 | 332 | } |
| 326 | 333 | |
| 327 | 334 | logger.info("同步进出场班数量 " + listCopy.size()); | ... | ... |
src/main/java/com/bsth/service/schedule/ScheduleService.java
src/main/java/com/bsth/service/schedule/impl/ScheduleServiceImpl.java
| 1 | 1 | package com.bsth.service.schedule.impl; |
| 2 | 2 | |
| 3 | 3 | import com.alibaba.fastjson.JSON; |
| 4 | +import com.alibaba.fastjson.JSONArray; | |
| 5 | +import com.alibaba.fastjson.JSONObject; | |
| 6 | +import com.bsth.common.Constants; | |
| 4 | 7 | import com.bsth.common.ResponseCode; |
| 5 | 8 | import com.bsth.data.abnormal.MainAbnormalClient; |
| 6 | 9 | import com.bsth.data.abnormal.entity.AbnormalEntity; |
| ... | ... | @@ -14,6 +17,7 @@ import com.bsth.security.util.SecurityUtils; |
| 14 | 17 | import com.bsth.service.schedule.ScheduleService; |
| 15 | 18 | import com.bsth.util.ConfigUtil; |
| 16 | 19 | import com.google.common.base.Splitter; |
| 20 | +import org.apache.commons.lang3.StringEscapeUtils; | |
| 17 | 21 | import org.slf4j.Logger; |
| 18 | 22 | import org.slf4j.LoggerFactory; |
| 19 | 23 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -146,6 +150,9 @@ public class ScheduleServiceImpl implements ScheduleService { |
| 146 | 150 | if("SUCCESS".equals(rs.get("status"))){ |
| 147 | 151 | ScheduleInOut sio = JSON.toJavaObject(JSON.parseObject(rs.get("t").toString()), ScheduleInOut.class); |
| 148 | 152 | ScheduleDataBuffer.put(sio); |
| 153 | + | |
| 154 | + //处理相关异常 | |
| 155 | + mainAbnormalClient.dftz(sio.getId(), "调档"); | |
| 149 | 156 | } |
| 150 | 157 | }catch (Exception e){ |
| 151 | 158 | logger.error("", e); |
| ... | ... | @@ -154,4 +161,36 @@ public class ScheduleServiceImpl implements ScheduleService { |
| 154 | 161 | } |
| 155 | 162 | return rs; |
| 156 | 163 | } |
| 164 | + | |
| 165 | + @Override | |
| 166 | + public Map<String, Object> tzrc(String cpcsJson) { | |
| 167 | + JSONObject rs = new JSONObject(); | |
| 168 | + try{ | |
| 169 | + cpcsJson = StringEscapeUtils.unescapeHtml4(cpcsJson); | |
| 170 | + Map<String, Object> params = new HashMap<>(); | |
| 171 | + | |
| 172 | + params.put("userId", SecurityUtils.getCurrentUser().getUserName()); | |
| 173 | + params.put("cpcs", JSON.parseArray(cpcsJson)); | |
| 174 | + params.put("tccCode", Constants.tccCode); | |
| 175 | + StringBuilder sb = HttpClientUtils.post(dataUrl + "/tcc_tzrc" + RsRequestUtils.getParams(), JSON.toJSONString(params)); | |
| 176 | + | |
| 177 | + rs = JSON.parseObject(sb.toString()); | |
| 178 | + | |
| 179 | + if("SUCCESS".equals(rs.get("status"))){ | |
| 180 | + JSONArray array = rs.getJSONArray("list"); | |
| 181 | + int size = array.size(); | |
| 182 | + for(int i=0; i < size;i ++){ | |
| 183 | + ScheduleDataBuffer.put(JSON.toJavaObject(array.getJSONObject(i), ScheduleInOut.class)); | |
| 184 | + } | |
| 185 | + } | |
| 186 | + | |
| 187 | + //重新按人车分组数据 | |
| 188 | + ScheduleDataBuffer.p_c_mapps(); | |
| 189 | + }catch (Exception e){ | |
| 190 | + logger.error("", e); | |
| 191 | + rs.put("status", ResponseCode.ERROR); | |
| 192 | + rs.put("msg", "服务器出现异常!"); | |
| 193 | + } | |
| 194 | + return rs; | |
| 195 | + } | |
| 157 | 196 | } | ... | ... |
src/main/resources/static/pages/abnormal/fragments/m_tzrc.html
| ... | ... | @@ -40,9 +40,9 @@ |
| 40 | 40 | <label class="uk-form-label">车辆</label> |
| 41 | 41 | <div class="uk-form-controls"> |
| 42 | 42 | <div class="ct_auto_wrap" id="nbbmAutoCompleter"> |
| 43 | - <input class="uk-input" name="nbbm" type="text" placeholder="车辆自编号" disabled autocomplete="off"> | |
| 43 | + <input class="uk-input" name="nbbm" type="text" placeholder="车辆自编号" autocomplete="off"> | |
| 44 | 44 | </div> |
| 45 | - <input class="uk-checkbox switch_c_box" type="checkbox" > | |
| 45 | + <input class="uk-checkbox switch_c_box" type="checkbox" checked> | |
| 46 | 46 | </div> |
| 47 | 47 | </div> |
| 48 | 48 | <div class="uk-width-1-2@s"> |
| ... | ... | @@ -97,6 +97,9 @@ |
| 97 | 97 | ct_autocompleter.initBus($('#nbbmAutoCompleter', wrap)); |
| 98 | 98 | |
| 99 | 99 | data && data.caller && data.caller(); |
| 100 | + | |
| 101 | + //提交 | |
| 102 | + $(modalId).on('click', '.submit-btn', _submit); | |
| 100 | 103 | }); |
| 101 | 104 | |
| 102 | 105 | var reset = function () { |
| ... | ... | @@ -162,6 +165,9 @@ |
| 162 | 165 | opts += '<option>'+lp+'</option>'; |
| 163 | 166 | } |
| 164 | 167 | $('form [name=lpName]', wrap).html(opts); |
| 168 | + | |
| 169 | + if(!_initFlag) | |
| 170 | + $('form [name=lpName]', wrap).trigger('change'); | |
| 165 | 171 | }; |
| 166 | 172 | |
| 167 | 173 | //线路切换 |
| ... | ... | @@ -227,6 +233,57 @@ |
| 227 | 233 | else |
| 228 | 234 | input.attr('disabled', 'disabled'); |
| 229 | 235 | }); |
| 236 | + | |
| 237 | + /** | |
| 238 | + * 提交 | |
| 239 | + */ | |
| 240 | + function _submit() { | |
| 241 | + var f = $('form', modalId); | |
| 242 | + var fData = f.serializeJSON(); | |
| 243 | + | |
| 244 | + if(!fData['nbbm'] && !$('[name=nbbm]', f).attr('disabled')){ | |
| 245 | + _shake_elem($('[name=nbbm]', f)); | |
| 246 | + return UIkit.notification('车辆不能为空!', 'danger'); | |
| 247 | + } | |
| 248 | + | |
| 249 | + if(!fData['jsy'] && !$('[name=jsy]', f).attr('disabled')){ | |
| 250 | + _shake_elem($('[name=nbbm]', f)); | |
| 251 | + return UIkit.notification('驾驶员不能为空!', 'danger'); | |
| 252 | + } | |
| 253 | + | |
| 254 | + var checkeds = $('.sch_list_table>tr.active', modalId); | |
| 255 | + if (checkeds.length == 0) | |
| 256 | + return UIkit.notification('请选中要调整的班次!', 'danger'); | |
| 257 | + | |
| 258 | + | |
| 259 | + console.log('fDatafData', fData); | |
| 260 | + var data = []; | |
| 261 | + var schId; | |
| 262 | + $.each(checkeds, function () { | |
| 263 | + schId = $(this).data('id'); | |
| 264 | + data.push({ | |
| 265 | + schId: schId, | |
| 266 | + jsy: fData.jsy, | |
| 267 | + spy: fData.spy, | |
| 268 | + clZbh: fData.nbbm | |
| 269 | + }); | |
| 270 | + }); | |
| 271 | + | |
| 272 | + console.log('data', data); | |
| 273 | + gb_common.$post('/in_out/tzrc', {cpcsJson: JSON.stringify(data)}, function (rs) { | |
| 274 | + console.log('rsrsrs', rs); | |
| 275 | + | |
| 276 | + UIkit.notification('操作成功!', 'success'); | |
| 277 | + gb_os_card.update(rs.list); | |
| 278 | + UIkit.modal(modalId).hide(); | |
| 279 | + }); | |
| 280 | + } | |
| 281 | + | |
| 282 | + function _shake_elem($e) { | |
| 283 | + $e.addClass('uk-animation-shake').one('animationend', function () { | |
| 284 | + $(this).removeClass('uk-animation-shake'); | |
| 285 | + }); | |
| 286 | + } | |
| 230 | 287 | })(); |
| 231 | 288 | </script> |
| 232 | 289 | </div> |
| 233 | 290 | \ No newline at end of file | ... | ... |