ソースを参照

Merge remote-tracking branch 'origin/master'

root 4 年 前
コミット
cfa695dfa1
51 ファイル変更139 行追加109 行削除
  1. 0 108
      src/main/java/com/zhiqiyun/open/core/schedule/AutoEquipmentPassengerPeople.java
  2. 131 0
      src/main/java/com/zhiqiyun/open/core/schedule/AutoSchedule.java
  3. 6 1
      src/main/java/com/zhiqiyun/open/mvc/controller/EquipmentPassengerController.java
  4. BIN
      src/main/resources/public/images/016527@2x.png
  5. BIN
      src/main/resources/public/images/016528@2x.png
  6. BIN
      src/main/resources/public/images/016529@2x.png
  7. BIN
      src/main/resources/public/images/016530@2x.png
  8. BIN
      src/main/resources/public/images/016535@2x.png
  9. BIN
      src/main/resources/public/images/016536@2x.png
  10. BIN
      src/main/resources/public/images/016537@2x.png
  11. BIN
      src/main/resources/public/images/16505@2x.png
  12. BIN
      src/main/resources/public/images/16506@2x.png
  13. BIN
      src/main/resources/public/images/16507@2x.png
  14. BIN
      src/main/resources/public/images/16508@2x.png
  15. BIN
      src/main/resources/public/images/16509@2x.png
  16. BIN
      src/main/resources/public/images/16510@2x.png
  17. BIN
      src/main/resources/public/images/16511@2x.png
  18. BIN
      src/main/resources/public/images/16512@2x.png
  19. BIN
      src/main/resources/public/images/16527@2x.png
  20. BIN
      src/main/resources/public/images/16528@2x.png
  21. BIN
      src/main/resources/public/images/16529@2x.png
  22. BIN
      src/main/resources/public/images/16530@2x.png
  23. BIN
      src/main/resources/public/images/16531@2x.png
  24. BIN
      src/main/resources/public/images/16536@2x.png
  25. BIN
      src/main/resources/public/images/16537@2x.png
  26. BIN
      src/main/resources/public/images/16538@2x.png
  27. BIN
      src/main/resources/public/images/16539@2x.png
  28. BIN
      src/main/resources/public/images/16540@2x.png
  29. BIN
      src/main/resources/public/images/16541@2x.png
  30. BIN
      src/main/resources/public/images/16542@2x.png
  31. BIN
      src/main/resources/public/images/16545@2x.png
  32. BIN
      src/main/resources/public/images/16546@2x.png
  33. BIN
      src/main/resources/public/images/16547@2x.png
  34. 0 0
      src/main/resources/public/index.html
  35. 0 0
      src/main/resources/public/static/css/app.cf69e2ce.css
  36. 1 0
      src/main/resources/public/static/css/chunk-5b1b9b36.8660dfad.css
  37. 0 0
      src/main/resources/public/static/css/chunk-e4c676ba.8d79e416.css
  38. 0 0
      src/main/resources/public/static/js/app.fc28fb40.js
  39. 0 0
      src/main/resources/public/static/js/chunk-09cce97a.5bef96cb.js
  40. 0 0
      src/main/resources/public/static/js/chunk-13cffc08.197f4a87.js
  41. 0 0
      src/main/resources/public/static/js/chunk-13e06b60.fca77cad.js
  42. 1 0
      src/main/resources/public/static/js/chunk-2d2253e4.10745895.js
  43. 0 0
      src/main/resources/public/static/js/chunk-5b1b9b36.abddd999.js
  44. 0 0
      src/main/resources/public/static/js/chunk-68cddace.d464afbb.js
  45. 0 0
      src/main/resources/public/static/js/chunk-68cddace.efa006ad.js
  46. 0 0
      src/main/resources/public/static/js/chunk-7959003c.951b7ed0.js
  47. 0 0
      src/main/resources/public/static/js/chunk-7959003c.99d4170b.js
  48. 0 0
      src/main/resources/public/static/js/chunk-8a3f30be.f672a2fa.js
  49. 0 0
      src/main/resources/public/static/js/chunk-a2cd7fc8.aadf0f26.js
  50. 0 0
      src/main/resources/public/static/js/chunk-b31b1b8a.2ab34aa2.js
  51. 0 0
      src/main/resources/public/static/js/chunk-e4c676ba.f75dad08.js

+ 0 - 108
src/main/java/com/zhiqiyun/open/core/schedule/AutoEquipmentPassengerPeople.java

@@ -1,108 +0,0 @@
-package com.zhiqiyun.open.core.schedule;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.zhiqiyun.open.core.enmus.Gender;
-import com.zhiqiyun.open.core.enmus.PassengerType;
-import com.zhiqiyun.open.core.models.DictCity;
-import com.zhiqiyun.open.core.models.equipment.EquipmentPassenger;
-import com.zhiqiyun.open.core.models.equipment.EquipmentPassengerPeople;
-import com.zhiqiyun.open.core.service.DictCityService;
-import com.zhiqiyun.open.core.service.EquipmentPassengerPeopleService;
-import com.zhiqiyun.open.core.service.EquipmentPassengerService;
-import com.zhiqiyun.open.core.service.SequenceService;
-import com.zhiqiyun.open.utils.DateUtil;
-import com.zhiqiyun.open.utils.RandomUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.time.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.redis.core.BoundListOperations;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-@Slf4j
-@Component
-public class AutoEquipmentPassengerPeople {
-    @Autowired
-    private EquipmentPassengerService equipmentPassengerService;
-
-    @Autowired
-    private EquipmentPassengerPeopleService equipmentPassengerPeopleService;
-
-    @Autowired
-    private DictCityService dictCityService;
-
-    @Autowired
-    private SequenceService sequenceService;
-
-    @Autowired
-    private StringRedisTemplate stringRedisTemplate;
-
-    @Value("${spring.profiles.active}")
-    private String active;
-
-    @Scheduled(cron = "0/10 * * * * ?")
-    public void createPeople() {
-        if ("dev".equals(active)) {
-            return;
-        }
-        QueryWrapper<DictCity> wrapper = new QueryWrapper<>();
-        wrapper.eq("parent_id", "0");
-        List<DictCity> listDictCity = this.dictCityService.list(wrapper);
-        List<EquipmentPassenger> listData = this.equipmentPassengerService.list();
-        for (EquipmentPassenger equipment : listData) {
-
-            int r1 = RandomUtil.getInt(0, listDictCity.size() - 1);
-            int r2 = r1 % 2 + 1;
-            PassengerType type = PassengerType.valueOf(r2);
-
-            EquipmentPassengerPeople people = new EquipmentPassengerPeople();
-            people.setId(this.sequenceService.nextId());
-            people.setPlaceBaseInfoId(equipment.getPlaceBaseInfoId());
-            people.setEquipmentId(equipment.getId());
-            people.setPassengerType(type);
-            people.setCreatedTime(DateUtil.current());
-            people.setGender(Gender.valueOf(r2));
-
-
-            people.setFromSource(listDictCity.get(r1).getFullName());
-
-
-            String redisKey = String.format("equipment%s", equipment.getId());
-            BoundListOperations<String, String> boundListOps = this.stringRedisTemplate.boundListOps(redisKey);
-            String faceId;
-            if (PassengerType.IN.equals(type)) {
-                faceId = RandomUtil.getuuid();
-                boundListOps.leftPush(faceId);
-            } else {
-                faceId = boundListOps.rightPop();
-            }
-            if (StringUtils.isNotBlank(faceId)) {
-                people.setFaceId(faceId);
-                this.equipmentPassengerPeopleService.save(people);
-            }
-        }
-    }
-
-    @Scheduled(cron = "0/10 * * * * ?")
-    public void deletePeople() {
-        QueryWrapper<EquipmentPassengerPeople> wrapper = new QueryWrapper<>();
-        wrapper.lt("created_time", DateUtils.addMonths(DateUtil.current(), -1));
-
-        int current = 1;
-        boolean hasNext = true;
-        while (hasNext) {
-            Page<EquipmentPassengerPeople> page = this.equipmentPassengerPeopleService.page(new Page<>(current, 100), wrapper);
-
-            for (EquipmentPassengerPeople people : page.getRecords()) {
-                this.equipmentPassengerPeopleService.removeById(people.getId());
-            }
-            hasNext = page.hasNext();
-        }
-    }
-}

+ 131 - 0
src/main/java/com/zhiqiyun/open/core/schedule/AutoSchedule.java

@@ -0,0 +1,131 @@
+package com.zhiqiyun.open.core.schedule;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zhiqiyun.open.core.enmus.Gender;
+import com.zhiqiyun.open.core.enmus.PassengerType;
+import com.zhiqiyun.open.core.models.DictCity;
+import com.zhiqiyun.open.core.models.app.ApiRequestLog;
+import com.zhiqiyun.open.core.models.equipment.EquipmentPassenger;
+import com.zhiqiyun.open.core.models.equipment.EquipmentPassengerPeople;
+import com.zhiqiyun.open.core.service.*;
+import com.zhiqiyun.open.utils.DateUtil;
+import com.zhiqiyun.open.utils.RandomUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.BoundListOperations;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Slf4j
+@Component
+public class AutoSchedule {
+	@Autowired
+	private EquipmentPassengerService equipmentPassengerService;
+
+	@Autowired
+	private EquipmentPassengerPeopleService equipmentPassengerPeopleService;
+
+	@Autowired
+	private DictCityService dictCityService;
+
+	@Autowired
+	private SequenceService sequenceService;
+
+	@Autowired
+	private StringRedisTemplate stringRedisTemplate;
+
+	@Autowired
+	private ApiRequestLogService apiRequestLogService;
+
+	@Value("${spring.profiles.active}")
+	private String active;
+
+	@Scheduled(cron = "0/20 * * * * ?")
+	public void createEquipmentPassengerPeople() {
+		if ("dev".equals(active)) {
+			return;
+		}
+		QueryWrapper<DictCity> wrapper = new QueryWrapper<>();
+		wrapper.eq("parent_id", "0");
+		List<DictCity> listDictCity = this.dictCityService.list(wrapper);
+		List<EquipmentPassenger> listData = this.equipmentPassengerService.list();
+		for (EquipmentPassenger equipment : listData) {
+
+			int r1 = RandomUtil.getInt(0, listDictCity.size() - 1);
+			int r2 = r1 % 2 + 1;
+			PassengerType type = PassengerType.valueOf(r2);
+
+			EquipmentPassengerPeople people = new EquipmentPassengerPeople();
+			people.setId(this.sequenceService.nextId());
+			people.setPlaceBaseInfoId(equipment.getPlaceBaseInfoId());
+			people.setEquipmentId(equipment.getId());
+			people.setPassengerType(type);
+			people.setCreatedTime(DateUtil.current());
+			people.setGender(Gender.valueOf(r2));
+
+
+			people.setFromSource(listDictCity.get(r1).getFullName());
+
+
+			String redisKey = String.format("equipment%s", equipment.getId());
+			BoundListOperations<String, String> boundListOps = this.stringRedisTemplate.boundListOps(redisKey);
+			String faceId;
+			if (PassengerType.IN.equals(type)) {
+				faceId = RandomUtil.getuuid();
+				boundListOps.leftPush(faceId);
+			} else {
+				faceId = boundListOps.rightPop();
+			}
+			if (StringUtils.isNotBlank(faceId)) {
+				people.setFaceId(faceId);
+				this.equipmentPassengerPeopleService.save(people);
+			}
+		}
+	}
+
+	@Scheduled(cron = "0/30 * * * * ?")
+	public void deleteExpireEquipmentPassengerPeople() {
+		QueryWrapper<EquipmentPassengerPeople> wrapper = new QueryWrapper<>();
+		wrapper.lt("created_time", DateUtils.addDays(DateUtil.current(), -15));
+
+		List<EquipmentPassengerPeople> list = this.equipmentPassengerPeopleService.list(wrapper);
+		log.info("deleteExpireEquipmentPassengerPeople size>>>>{}", list.size());
+
+		for (EquipmentPassengerPeople people : list) {
+			this.equipmentPassengerPeopleService.removeById(people.getId());
+		}
+	}
+
+	@Scheduled(cron = "0/30 * * * * ?")
+	public void deleteOneFaceId() {
+		QueryWrapper<EquipmentPassengerPeople> wrapper = new QueryWrapper<>();
+		wrapper.inSql("face_id", "select face_id from equipment_passenger_people GROUP BY face_id HAVING count(face_id) = 1");
+		wrapper.eq("passenger_type", PassengerType.OUT);
+		List<EquipmentPassengerPeople> list = this.equipmentPassengerPeopleService.list(wrapper);
+		log.info("deleteOneFaceId size>>>>{}", list.size());
+		for (EquipmentPassengerPeople people : list) {
+			this.equipmentPassengerPeopleService.removeById(people.getId());
+		}
+	}
+
+	@Scheduled(cron = "0/30 * * * * ?")
+	public void deleteExpireApiRequestLogs() {
+		QueryWrapper<ApiRequestLog> wrapper = new QueryWrapper<>();
+		wrapper.lt("service_begin_time", DateUtils.addDays(DateUtil.current(), -30));
+
+		List<ApiRequestLog> list = this.apiRequestLogService.list(wrapper);
+		log.info("deleteExpireApiRequestLogs size>>>>{}", list.size());
+
+		for (ApiRequestLog log : list) {
+			this.apiRequestLogService.removeById(log.getId());
+		}
+	}
+
+}

+ 6 - 1
src/main/java/com/zhiqiyun/open/mvc/controller/EquipmentPassengerController.java

@@ -29,6 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -97,6 +98,8 @@ public class EquipmentPassengerController {
 	@PostMapping("/findDetail")
 	public Result findDetail(Long id) {
 
+		Date startTime = DateUtil.current();
+
 		Map<String, Object> dataMap = new HashMap<>();
 		QueryWrapper<EquipmentPassengerPeople> wrapper = new QueryWrapper<>();
 		wrapper.eq("equipment_id", id);
@@ -135,7 +138,7 @@ public class EquipmentPassengerController {
 		wrapper = new QueryWrapper<>();
 		wrapper.select("AVG(unix_timestamp(created_time)) t", "passenger_type");
 		wrapper.eq("equipment_id", id);
-		wrapper.inSql("face_id", "select face_id from equipment_passenger_people GROUP BY face_id HAVING count(face_id)> 1");
+//		wrapper.inSql("face_id", "select face_id from equipment_passenger_people GROUP BY face_id HAVING count(face_id)> 1");
 		wrapper.groupBy("passenger_type");
 		List<Map<String, Object>> listPassenger = this.equipmentPassengerPeopleService.listMaps(wrapper);
 
@@ -153,12 +156,14 @@ public class EquipmentPassengerController {
 			}
 		}
 
+		Date endTime = DateUtil.current();
 
 		dataMap.put("inCount", inCount);
 		dataMap.put("outCount", outCount);
 		dataMap.put("listGenders", listGenders);
 		dataMap.put("listFromSource", listFromSource);
 		dataMap.put("avgStayTime", avgOutTime - avgInTime);
+		dataMap.put("l", endTime.getTime() - startTime.getTime());
 		return Result.instance(Result.Code.SUCCESS).setData(dataMap);
 	}
 

BIN
src/main/resources/public/images/016527@2x.png


BIN
src/main/resources/public/images/016528@2x.png


BIN
src/main/resources/public/images/016529@2x.png


BIN
src/main/resources/public/images/016530@2x.png


BIN
src/main/resources/public/images/016535@2x.png


BIN
src/main/resources/public/images/016536@2x.png


BIN
src/main/resources/public/images/016537@2x.png


BIN
src/main/resources/public/images/16505@2x.png


BIN
src/main/resources/public/images/16506@2x.png


BIN
src/main/resources/public/images/16507@2x.png


BIN
src/main/resources/public/images/16508@2x.png


BIN
src/main/resources/public/images/16509@2x.png


BIN
src/main/resources/public/images/16510@2x.png


BIN
src/main/resources/public/images/16511@2x.png


BIN
src/main/resources/public/images/16512@2x.png


BIN
src/main/resources/public/images/16527@2x.png


BIN
src/main/resources/public/images/16528@2x.png


BIN
src/main/resources/public/images/16529@2x.png


BIN
src/main/resources/public/images/16530@2x.png


BIN
src/main/resources/public/images/16531@2x.png


BIN
src/main/resources/public/images/16536@2x.png


BIN
src/main/resources/public/images/16537@2x.png


BIN
src/main/resources/public/images/16538@2x.png


BIN
src/main/resources/public/images/16539@2x.png


BIN
src/main/resources/public/images/16540@2x.png


BIN
src/main/resources/public/images/16541@2x.png


BIN
src/main/resources/public/images/16542@2x.png


BIN
src/main/resources/public/images/16545@2x.png


BIN
src/main/resources/public/images/16546@2x.png


BIN
src/main/resources/public/images/16547@2x.png


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/index.html


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/css/app.cf69e2ce.css


+ 1 - 0
src/main/resources/public/static/css/chunk-5b1b9b36.8660dfad.css

@@ -0,0 +1 @@
+.dashboard-container[data-v-96282068]{margin:30px}.dashboard-text[data-v-96282068]{font-size:30px;line-height:46px}

ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/css/chunk-e4c676ba.8d79e416.css


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/app.fc28fb40.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-09cce97a.5bef96cb.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-13cffc08.197f4a87.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-13e06b60.fca77cad.js


+ 1 - 0
src/main/resources/public/static/js/chunk-2d2253e4.10745895.js

@@ -0,0 +1 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d2253e4"],{e421:function(e,a,t){"use strict";t.r(a);var l=function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("div",{staticClass:"app-container"},[t("el-form",{attrs:{model:e.queryForm,inline:"",size:"small"}},[t("el-form-item",{attrs:{label:"名称"}},[t("el-input",{attrs:{placeholder:"名称"},model:{value:e.queryForm.name,callback:function(a){e.$set(e.queryForm,"name",a)},expression:"queryForm.name"}})],1),t("el-form-item",{attrs:{label:"类型"}},[t("el-select",{attrs:{clearable:"",placeholder:"用户状态"},model:{value:e.queryForm.isEnable,callback:function(a){e.$set(e.queryForm,"isEnable",a)},expression:"queryForm.isEnable"}},[t("el-option",{attrs:{label:"是",value:"Y"}}),t("el-option",{attrs:{label:"否",value:"N"}})],1)],1)],1),t("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.isLoading,expression:"isLoading"}],attrs:{data:e.pageData.records,border:"",fit:"","highlight-current-row":""},on:{"selection-change":e.selectionChange}},[t("el-table-column",{attrs:{type:"selection",width:"55"}}),t("el-table-column",{attrs:{label:"名称",prop:"id",width:"150"}}),t("el-table-column",{attrs:{label:"地址",prop:"name"}}),t("el-table-column",{attrs:{label:"类型",prop:"publicKey",width:"150"}})],1),t("el-pagination",{staticClass:"pagination-container",attrs:{background:"",layout:"prev, pager, next",total:e.pageData.total,"page-size":e.pageData.pageSize},on:{"current-change":e.paginationChange}})],1)},n=[],o={components:{},data:function(){return{queryForm:{},pageData:{}}},computed:{},created:function(){},mounted:function(){},methods:{paginationChange:function(e){this.currentPage=e,this.fetchData()}}},r=o,i=t("2877"),s=Object(i["a"])(r,l,n,!1,null,null,null);a["default"]=s.exports}}]);

ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-5b1b9b36.abddd999.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-68cddace.d464afbb.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-68cddace.efa006ad.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-7959003c.951b7ed0.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-7959003c.99d4170b.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-8a3f30be.f672a2fa.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-a2cd7fc8.aadf0f26.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-b31b1b8a.2ab34aa2.js


ファイルの差分が大きいため隠しています
+ 0 - 0
src/main/resources/public/static/js/chunk-e4c676ba.f75dad08.js


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません