Task.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.ruoyi.system.service;
  2. import com.alibaba.fastjson2.JSONObject;
  3. import com.ruoyi.common.utils.DateUtils;
  4. import com.ruoyi.system.domain.RecordData;
  5. import com.ruoyi.system.mapper.RecordDataMapper;
  6. import com.ruoyi.system.utils.timingURL;
  7. import org.joda.time.DateTime;
  8. import org.springframework.scheduling.annotation.Scheduled;
  9. import org.springframework.stereotype.Component;
  10. import javax.annotation.Resource;
  11. import java.text.ParseException;
  12. import java.text.SimpleDateFormat;
  13. import java.util.ArrayList;
  14. import java.util.Date;
  15. import java.util.List;
  16. import java.util.Map;
  17. @Component
  18. public class Task {
  19. @Resource
  20. private RecordDataMapper recordDataMapper;
  21. /**
  22. *定时任务(定时取海康威视的进场数据)
  23. */
  24. @Scheduled(cron = "0 55 23 * * ? ")
  25. public void parkingLotData() {
  26. DateTime dt = new DateTime();
  27. String endTime=dt.toString("yyyy-MM-dd'T'HH:mm:ss")+"+08:00";
  28. DateTime dateTime = dt.minusHours(24);
  29. String startTime=dateTime.toString("yyyy-MM-dd'T'HH:mm:ss")+"+08:00";
  30. //查询内部车辆进场信息(外场)
  31. String outParkSyscode = "b6f0ed8118284a21a30e68fe795545f7";
  32. String outEntranceSyscode = "d24901cb065e4acabb66777aaa2654db";
  33. List<Map<String,Object>> outListAll = new ArrayList<>();
  34. for (int i = 1; i > 0; i++) {
  35. int pageNo = 1;
  36. String outfieldData = timingURL.timingURL(outParkSyscode,outEntranceSyscode,startTime,endTime,pageNo);
  37. JSONObject jsonObject = JSONObject.parseObject(outfieldData);
  38. String data = (String) jsonObject.get("data");
  39. JSONObject outData = JSONObject.parseObject(data);
  40. List<Map<String,Object>> list = (List<Map<String, Object>>) outData.get("list");
  41. outListAll.addAll(list);
  42. if(list.size()<1000){
  43. i=-2;
  44. }else{
  45. pageNo++;
  46. }
  47. }
  48. //查询内部车辆进场信息(内场) infield
  49. String infieldParkSyscode = "fa12398af6a546e897e240b7bbe0de00";
  50. String infieldEntranceSyscode = "9e816223c86548c4a15c431aba8efc07";
  51. List<Map<String,Object>> infieldListAll = new ArrayList<>();
  52. for (int i = 1; i > 0; i++) {
  53. int pageNo = 1;
  54. String infieldfieldData = timingURL.timingURL(infieldParkSyscode,infieldEntranceSyscode,startTime,endTime,pageNo);
  55. JSONObject jsonObject = JSONObject.parseObject(infieldfieldData);
  56. String data = (String) jsonObject.get("data");
  57. JSONObject infieldData = JSONObject.parseObject(data);
  58. List<Map<String,Object>> list = (List<Map<String, Object>>) infieldData.get("list");
  59. outListAll.addAll(list);
  60. if(list.size()<1000){
  61. i=-2;
  62. }else{
  63. pageNo++;
  64. }
  65. }
  66. for (Map<String, Object> stringObjectMap : outListAll) {
  67. boolean bl = true;
  68. for (Map<String, Object> objectMap : infieldListAll) {
  69. if(stringObjectMap.get("plateNo").equals(objectMap.get("plateNo"))){
  70. bl = false;
  71. }
  72. }
  73. if(bl){
  74. RecordData recordData = new RecordData();
  75. recordData.setId((String) stringObjectMap.get("crossRecordSyscode"));
  76. recordData.setParkSyscode((String) stringObjectMap.get("parkSyscode"));
  77. recordData.setCardNo((String) stringObjectMap.get("cardNo"));
  78. recordData.setParkName((String) stringObjectMap.get("parkName"));
  79. recordData.setEntranceName((String) stringObjectMap.get("entranceName"));
  80. recordData.setPlateNo((String) stringObjectMap.get("plateNo"));
  81. recordData.setEntranceSyscode((String) stringObjectMap.get("entranceSyscode"));
  82. recordData.setReleaseMode((Integer) stringObjectMap.get("releaseMode"));
  83. recordData.setRoadwayName((String) stringObjectMap.get("roadwayName"));
  84. recordData.setRoadwaySyscode((String) stringObjectMap.get("roadwaySyscode"));
  85. //2018-07-26T15:00:00+08:00
  86. recordData.setCrossTime(zDate((String) stringObjectMap.get("crossTime")));
  87. //将信息保存进数据库
  88. recordDataMapper.insertRecordData(recordData);
  89. }
  90. }
  91. }
  92. //将yyyy-MM-dd'T'HH:mm:ss转换成yyyy-MM-dd HH:mm:ss
  93. public static String zDate(String tDate){
  94. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
  95. Date date2 = null;
  96. try {
  97. date2 = format.parse(tDate);
  98. return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date2);
  99. } catch (ParseException e) {
  100. e.printStackTrace();
  101. return null;
  102. }
  103. }
  104. }