Commit 723f86a1 authored by 赵啸非's avatar 赵啸非

添加服务追踪

parent b7f0da7c
package com.mortals.xhx.busiz.web; package com.mortals.xhx.busiz.web;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
...@@ -17,11 +21,15 @@ import com.mortals.xhx.module.hik.person.model.req.person.PersonReq; ...@@ -17,11 +21,15 @@ import com.mortals.xhx.module.hik.person.model.req.person.PersonReq;
import com.mortals.xhx.module.hik.person.model.rsp.org.OrgDataInfo; import com.mortals.xhx.module.hik.person.model.rsp.org.OrgDataInfo;
import com.mortals.xhx.module.hik.person.model.rsp.person.PersonDataInfo; import com.mortals.xhx.module.hik.person.model.rsp.person.PersonDataInfo;
import com.mortals.xhx.module.hik.person.service.IHikPersonService; import com.mortals.xhx.module.hik.person.service.IHikPersonService;
import com.mortals.xhx.module.realtime.model.RealtimeDataflowStatEntity;
import com.mortals.xhx.module.realtime.model.RealtimeDataflowStatQuery;
import com.mortals.xhx.module.realtime.service.RealtimeDataflowStatService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A; import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -44,14 +52,16 @@ public class TestController { ...@@ -44,14 +52,16 @@ public class TestController {
private IHikEventService hikEventService; private IHikEventService hikEventService;
@Autowired @Autowired
private FacePlanService facePlanService; private FacePlanService facePlanService;
@Autowired
private RealtimeDataflowStatService realtimeDataflowStatService;
@GetMapping("webservice") @GetMapping("webservice")
public String webservice() { public String webservice() {
log.info("测试"); log.info("测试");
return "ok"; return "ok";
} }
@PostMapping("getPersonList") @PostMapping("getPersonList")
public String getPersonList(@RequestBody PersonReq personReq) { public String getPersonList(@RequestBody PersonReq personReq) {
Rest<PersonDataInfo> personList = hikPersonService.getPersonList(personReq); Rest<PersonDataInfo> personList = hikPersonService.getPersonList(personReq);
...@@ -84,71 +94,83 @@ public class TestController { ...@@ -84,71 +94,83 @@ public class TestController {
} }
@PostMapping("mockStatData")
public String mockStatData() {
ArrayList<RealtimeDataflowStatEntity> statEntities = new ArrayList<>();
//模拟构造过去人流数据
DateTime startDateTime = DateUtil.parseDate("2023-03-01");
DateTime endDateTime = DateUtil.parseDate("2023-05-10");
Integer subDay = Integer.parseInt(String.valueOf(DateUtil.betweenDay(startDateTime, endDateTime, false)));
for (int i = 0; i <= subDay; i++) {
DateTime date = DateUtil.offsetDay(startDateTime, i);
boolean weekend = DateUtil.isWeekend(date);
if (weekend) {
//周末 默认数据
for (int j = 0; j <= 23; j++) {
RealtimeDataflowStatEntity statEntity = new RealtimeDataflowStatEntity();
statEntity.initAttrValue();
statEntity.setSiteId(1L);
statEntity.setSiteName("宜宾市民中心");
int year = DateUtil.year(date);
int month = DateUtil.month(date) + 1;
int day = DateUtil.dayOfMonth(date);
statEntity.setYear(year);
statEntity.setMonth(month);
statEntity.setDay(day);
statEntity.setHour(j);
statEntity.setCreateUserId(1L);
statEntity.setCreateTime(DateUtil.offsetHour(date, j));
statEntities.add(statEntity);
}
} else {
for (int j = 0; j <= 23; j++) {
RealtimeDataflowStatEntity statEntity = new RealtimeDataflowStatEntity();
statEntity.initAttrValue();
statEntity.setSiteId(1L);
statEntity.setSiteName("宜宾市民中心");
if(j>8&&j<18){
//随机500~1200人
int total = RandomUtil.randomInt(400, 1200);
statEntity.setPersonSum(total);
int strangeNum = RandomUtil.randomInt(380, total);
statEntity.setRecoginzeSum(total - strangeNum);
statEntity.setStrangerSum(strangeNum);
}
int year = DateUtil.year(date);
int month = DateUtil.month(date) + 1;
int day = DateUtil.dayOfMonth(date);
statEntity.setYear(year);
statEntity.setMonth(month);
statEntity.setDay(day);
statEntity.setHour(j);
statEntity.setCreateUserId(1L);
statEntity.setCreateTime(DateUtil.offsetHour(date, j));
statEntities.add(statEntity);
}
}
}
log.info("新增数量:{}", statEntities.size());
realtimeDataflowStatService.save(statEntities);
return "ok";
}
public static void main(String[] args) { public static void main(String[] args) {
DoorEventReq doorEventReq = new DoorEventReq(); DateTime startDateTime = DateUtil.parseDate("2023-03-01");
DateTime endDateTime = DateUtil.parseDate("2023-05-10");
doorEventReq.setStartTime(new Date()); long subDay = DateUtil.betweenDay(startDateTime, endDateTime, false);
System.out.println(JSON.toJSONString(doorEventReq));
String json="{\"startTime\":\"2023-04-13T10:48:22+08:00\"}"; System.out.println(subDay);
DoorEventReq doorEventReq1 = JSON.parseObject(json, DoorEventReq.class);
System.out.println(DateUtils.convertTime2Str(doorEventReq1.getStartTime().getTime(),DateUtils.P_yyyy_MM_dd_HH_mm_ss));
String respJson="{\n" +
" \"code\": \"0\",\n" +
" \"msg\": \"success\",\n" +
" \"data\": {\n" +
" \"pageSize\": 1,\n" +
" \"list\": [\n" +
" {\n" +
" \"eventId\": \"0f3ba98192f02d7f186b9eb33314ef44\",\n" +
" \"eventName\": \"acs.acs.eventType.successFace\",\n" +
" \"eventTime\": \"2023-04-12T11:59:37+08:00\",\n" +
" \"personId\": \"31757ce46e09418ca926094f58935897\",\n" +
" \"cardNo\": \"9990000008\",\n" +
" \"personName\": \"何肃桃\",\n" +
" \"orgIndexCode\": \"36553719-e462-498a-9664-cc7fdaf9c421\",\n" +
" \"orgName\": \"默认组织/宜宾市民中心/1A公安大厅/市交警支队\",\n" +
" \"doorName\": \"公安大厅1A_门_1\",\n" +
" \"doorIndexCode\": \"38419b11af544d45a664dd27db15d8f2\",\n" +
" \"doorRegionIndexCode\": \"bd1e680d-662f-45b3-a798-8bae7cd194e6\",\n" +
" \"picUri\": null,\n" +
" \"svrIndexCode\": null,\n" +
" \"eventType\": 196893,\n" +
" \"inAndOutType\": 1,\n" +
" \"readerDevIndexCode\": \"fc6bc97929bb449e9c2fa91dbd6b1d01\",\n" +
" \"readerDevName\": \"读卡器_1\",\n" +
" \"devIndexCode\": \"73f5f57cb4cd486fba06e817c7555dd8\",\n" +
" \"devName\": \"公安大厅1A\",\n" +
" \"identityCardUri\": null,\n" +
" \"receiveTime\": \"2023-04-12T11:59:39.727+08:00\",\n" +
" \"jobNo\": \"8\",\n" +
" \"studentId\": null,\n" +
" \"certNo\": \"8\"\n" +
" }\n" +
" ],\n" +
" \"total\": 3903,\n" +
" \"totalPage\": 3903,\n" +
" \"pageNo\": 1\n" +
" }\n" +
"}";
Rest<DoorEventDataInfo> rest = JSON.parseObject(respJson, new TypeReference<Rest<DoorEventDataInfo>>() {
});
System.out.println(rest.getData().getTotal());
System.out.println(rest.getData().getList().get(0).getPersonName());
System.out.println(DateUtil.offsetDay(startDateTime, 40).toDateStr());
} }
......
...@@ -71,7 +71,7 @@ public class RealTimePeopleStatTaskImpl implements ITaskExcuteService { ...@@ -71,7 +71,7 @@ public class RealTimePeopleStatTaskImpl implements ITaskExcuteService {
Long recognizeCount = total - strangerCount; Long recognizeCount = total - strangerCount;
Date date = new Date(); Date date = new Date();
int year = DateUtil.year(date); int year = DateUtil.year(date);
int month = DateUtil.month(date); int month = DateUtil.month(date)+1;
int day = DateUtil.dayOfMonth(date); int day = DateUtil.dayOfMonth(date);
int hour = DateUtil.hour(date, true); int hour = DateUtil.hour(date, true);
...@@ -107,40 +107,6 @@ public class RealTimePeopleStatTaskImpl implements ITaskExcuteService { ...@@ -107,40 +107,6 @@ public class RealTimePeopleStatTaskImpl implements ITaskExcuteService {
} }
private void donwnloadSnap() {
//下载最近一天的抓拍数据
RealtimeDataflowQuery realtimeDataflowQuery = new RealtimeDataflowQuery();
realtimeDataflowQuery.setDetectTimeStart(DateUtil.yesterday().toStringDefaultTimeZone());
realtimeDataflowQuery.setDetectTimeEnd(DateUtil.formatDateTime(new Date()));
//realtimeDataflowQuery.setPicture("");
List<RealtimeDataflowEntity> updateList = realtimeDataflowService.find(realtimeDataflowQuery).stream()
.filter(f -> ObjectUtils.isEmpty(f.getPicture()) && !ObjectUtils.isEmpty(f.getPicUri()))
.map(item -> {
ImgReq imgReq = new ImgReq();
imgReq.setUrl(item.getPicUri());
Rest<String> rest = faceService.downloadPicture(imgReq);
if (YesNoEnum.YES.getValue() == rest.getCode()) {
byte[] bytes = Base64.decode(rest.getData());
if (!ObjectUtils.isEmpty(bytes)) {
InputStream inputStream = new ByteArrayInputStream(bytes);
MultipartFile file = ServletUtils.getMultipartFile(inputStream, "snap.jpg");
String filePath = uploadService.saveFileUpload(file, "file/fileupload/snap/" + DateUtil.today(), null);
item.setPicture(filePath);
item.setUpdateTime(new Date());
item.setUpdateUserId(1L);
item.setUpdateUserName("system");
return item;
}
}
return null;
}).filter(f -> f != null).collect(toList());
log.info("更新列表:{}", updateList.size());
if (!ObjectUtils.isEmpty(updateList)) {
realtimeDataflowService.update(updateList, null);
}
}
@Override @Override
public void stopTask(ITask task) throws AppException { public void stopTask(ITask task) throws AppException {
......
...@@ -74,11 +74,11 @@ public class RealtimeDataflowStatEntity extends RealtimeDataflowStatVo { ...@@ -74,11 +74,11 @@ public class RealtimeDataflowStatEntity extends RealtimeDataflowStatVo {
this.siteName = ""; this.siteName = "";
this.personSum = null; this.personSum = 0;
this.strangerSum = null; this.strangerSum = 0;
this.recoginzeSum = null; this.recoginzeSum = 0;
this.year = null; this.year = null;
......
...@@ -47,3 +47,10 @@ Content-Type: application/json ...@@ -47,3 +47,10 @@ Content-Type: application/json
{ {
} }
###查询摄像头列表
POST {{baseUrl}}/test/mockStatData
Content-Type: application/json
{
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment