Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
refined-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
refined-platform
Commits
df191e8b
Commit
df191e8b
authored
May 09, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加服务追踪
parent
f1787db6
Changes
22
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
815 additions
and
304 deletions
+815
-304
refined-manager-ui/admin/src/views/realtime/dataflow/list.vue
...ned-manager-ui/admin/src/views/realtime/dataflow/list.vue
+2
-2
refined-manager/src/main/java/com/mortals/xhx/common/code/DaySelectEnum.java
.../main/java/com/mortals/xhx/common/code/DaySelectEnum.java
+64
-0
refined-manager/src/main/java/com/mortals/xhx/common/code/TimeUnitEnum.java
...c/main/java/com/mortals/xhx/common/code/TimeUnitEnum.java
+62
-0
refined-manager/src/main/java/com/mortals/xhx/common/key/Constant.java
...er/src/main/java/com/mortals/xhx/common/key/Constant.java
+12
-0
refined-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/SubEventStartedService.java
...xhx/daemon/applicationservice/SubEventStartedService.java
+9
-71
refined-manager/src/main/java/com/mortals/xhx/daemon/task/CreateAppointPersonToHikBlackPlanByDayTaskImpl.java
.../task/CreateAppointPersonToHikBlackPlanByDayTaskImpl.java
+223
-0
refined-manager/src/main/java/com/mortals/xhx/daemon/task/CreateBlackPlanToHikByDayTaskImpl.java
...ls/xhx/daemon/task/CreateBlackPlanToHikByDayTaskImpl.java
+3
-37
refined-manager/src/main/java/com/mortals/xhx/daemon/task/RealTimePeopleStatTaskImpl.java
...m/mortals/xhx/daemon/task/RealTimePeopleStatTaskImpl.java
+1
-3
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncAppointWaitAndFinTaskImpl.java
...ortals/xhx/daemon/task/SyncAppointWaitAndFinTaskImpl.java
+2
-0
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncAppointmentPersonTaskImpl.java
...ortals/xhx/daemon/task/SyncAppointmentPersonTaskImpl.java
+7
-1
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncRegisterUserPicTaskImpl.java
.../mortals/xhx/daemon/task/SyncRegisterUserPicTaskImpl.java
+0
-3
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncRegisterUserTaskImpl.java
...com/mortals/xhx/daemon/task/SyncRegisterUserTaskImpl.java
+0
-8
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserToHikTaskImpl.java
...va/com/mortals/xhx/daemon/task/SyncUserToHikTaskImpl.java
+0
-6
refined-manager/src/main/java/com/mortals/xhx/module/face/service/FacePlanService.java
.../com/mortals/xhx/module/face/service/FacePlanService.java
+10
-1
refined-manager/src/main/java/com/mortals/xhx/module/face/service/impl/FacePlanServiceImpl.java
...als/xhx/module/face/service/impl/FacePlanServiceImpl.java
+236
-142
refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikFaceServiceImpl.java
.../xhx/module/hik/face/service/impl/HikFaceServiceImpl.java
+15
-14
refined-manager/src/main/java/com/mortals/xhx/module/realtime/dao/RealtimeDataflowStatDao.java
...tals/xhx/module/realtime/dao/RealtimeDataflowStatDao.java
+5
-0
refined-manager/src/main/java/com/mortals/xhx/module/realtime/dao/ibatis/RealtimeDataflowStatDaoImpl.java
...dule/realtime/dao/ibatis/RealtimeDataflowStatDaoImpl.java
+14
-1
refined-manager/src/main/java/com/mortals/xhx/module/realtime/model/vo/RealtimeDataflowStatVo.java
.../xhx/module/realtime/model/vo/RealtimeDataflowStatVo.java
+2
-0
refined-manager/src/main/java/com/mortals/xhx/module/realtime/service/RealtimeDataflowStatService.java
.../module/realtime/service/RealtimeDataflowStatService.java
+17
-8
refined-manager/src/main/java/com/mortals/xhx/module/realtime/service/impl/RealtimeDataflowStatServiceImpl.java
...ealtime/service/impl/RealtimeDataflowStatServiceImpl.java
+95
-7
refined-manager/src/main/resources/sqlmap/module/realtime/RealtimeDataflowStatMapperExt.xml
.../sqlmap/module/realtime/RealtimeDataflowStatMapperExt.xml
+36
-0
No files found.
refined-manager-ui/admin/src/views/realtime/dataflow/list.vue
View file @
df191e8b
...
...
@@ -74,7 +74,7 @@
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
/* {type: "selection", width: 60},*/
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
姓名
"
,
prop
:
"
name
"
},
...
...
refined-manager/src/main/java/com/mortals/xhx/common/code/DaySelectEnum.java
0 → 100644
View file @
df191e8b
package
com.mortals.xhx.common.code
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
public
enum
DaySelectEnum
{
今天
(
0
,
"今天"
),
近七天
(
1
,
"近七天"
),
近三十天
(
2
,
"近三十天"
),
近三月
(
3
,
"近三月"
),
今年
(
4
,
"今年"
);
private
Integer
value
;
private
String
desc
;
DaySelectEnum
(
Integer
value
,
String
desc
)
{
this
.
value
=
value
;
this
.
desc
=
desc
;
}
public
Integer
getValue
()
{
return
this
.
value
;
}
public
String
getDesc
()
{
return
this
.
desc
;
}
public
static
DaySelectEnum
getByValue
(
Integer
value
)
{
for
(
DaySelectEnum
alarmLevelEnum
:
DaySelectEnum
.
values
())
{
if
(
alarmLevelEnum
.
getValue
()
==
value
)
{
return
alarmLevelEnum
;
}
}
return
null
;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public
static
Map
<
String
,
String
>
getEnumMap
(
Integer
...
eItem
)
{
Map
<
String
,
String
>
resultMap
=
new
LinkedHashMap
<>();
for
(
DaySelectEnum
item
:
DaySelectEnum
.
values
())
{
try
{
boolean
hasE
=
false
;
for
(
Integer
e
:
eItem
)
{
if
(
item
.
getValue
()
==
e
)
{
hasE
=
true
;
break
;
}
}
if
(!
hasE
)
{
resultMap
.
put
(
item
.
getValue
()
+
""
,
item
.
getDesc
());
}
}
catch
(
Exception
ex
)
{
}
}
return
resultMap
;
}
}
\ No newline at end of file
refined-manager/src/main/java/com/mortals/xhx/common/code/TimeUnitEnum.java
0 → 100644
View file @
df191e8b
package
com.mortals.xhx.common.code
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
public
enum
TimeUnitEnum
{
/** 小时 */
HOUR
(
0
,
"小时"
),
/** 日 */
DAY
(
1
,
"每日"
),
/** 月 */
MONTH
(
2
,
"月"
),
/** 年 */
YEAR
(
3
,
"年"
);
private
int
value
;
private
String
desc
;
TimeUnitEnum
(
int
value
,
String
desc
)
{
this
.
value
=
value
;
this
.
desc
=
desc
;
}
public
int
getValue
()
{
return
this
.
value
;
}
public
String
getDesc
()
{
return
desc
;
}
public
static
TimeUnitEnum
getByValue
(
int
value
)
{
for
(
TimeUnitEnum
yesNo
:
TimeUnitEnum
.
values
())
{
if
(
yesNo
.
getValue
()
==
value
)
{
return
yesNo
;
}
}
return
null
;
}
public
static
Map
<
String
,
String
>
getEnumMap
(
int
...
eItem
)
{
Map
<
String
,
String
>
resultMap
=
new
LinkedHashMap
<
String
,
String
>();
for
(
TimeUnitEnum
item
:
TimeUnitEnum
.
values
())
{
try
{
boolean
hasE
=
false
;
for
(
int
e
:
eItem
){
if
(
item
.
getValue
()==
e
){
hasE
=
true
;
break
;
}
}
if
(!
hasE
){
resultMap
.
put
(
item
.
getValue
()+
""
,
item
.
getDesc
());
}
}
catch
(
Exception
ex
){
}
}
return
resultMap
;
}
}
refined-manager/src/main/java/com/mortals/xhx/common/key/Constant.java
View file @
df191e8b
...
...
@@ -97,6 +97,18 @@ public final class Constant {
public
final
static
String
STRANGER_PLAN
=
"stranger_plan"
;
public
final
static
String
STRANGER_PLAN_DESC
=
"陌生人监控计划"
;
/**
* 预约监控计划
*/
public
final
static
String
APPOINTMENT_PLAN
=
"appointment_plan"
;
public
final
static
String
APPOINTMENT_PLAN_DESC
=
"预约人监控计划"
;
/**
* 预约人员分组
*/
public
final
static
String
APPOINTMENT_GROUP
=
"appointment_group"
;
/**
* 预约监控计划前缀
*/
...
...
refined-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/SubEventStartedService.java
View file @
df191e8b
...
...
@@ -38,7 +38,11 @@ import java.util.stream.Collectors;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
ParamKey
.
PARAM_FACE_GROUP
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
ParamKey
.
PARAM_FACE_GROUP_REGISTER
;
/**
* 初始化部分计划数据等
* @author:
* @date: 2023/5/9 10:01
*/
@Component
@Slf4j
public
class
SubEventStartedService
implements
IApplicationStartedService
{
...
...
@@ -77,10 +81,8 @@ public class SubEventStartedService implements IApplicationStartedService {
log
.
info
(
"get events resp==>{}"
,
JSON
.
toJSONString
(
events
));
//查询本地指定人脸分组 如果没有则添加 并更新
String
groupStr
=
GlobalSysInfo
.
getParamValue
(
PARAM_FACE_GROUP
,
PARAM_FACE_GROUP_REGISTER
);
String
groupStr
=
GlobalSysInfo
.
getParamValue
(
PARAM_FACE_GROUP
,
"face_group_register,appointment_group"
);
List
<
String
>
groupList
=
StrUtil
.
split
(
groupStr
,
","
.
charAt
(
0
));
for
(
String
group
:
groupList
)
{
FaceGroupEntity
faceGroupEntity
=
faceGroupService
.
selectOne
(
new
FaceGroupQuery
().
name
(
group
));
if
(
ObjectUtils
.
isEmpty
(
faceGroupEntity
))
{
...
...
@@ -104,73 +106,9 @@ public class SubEventStartedService implements IApplicationStartedService {
}
//创建陌生人计划
// facePlanService.createStrangerPlanByDay();
// ImgReq imgReq = new ImgReq();
///imgReq.setUrl("http://10.12.82.102:80/picture/Streaming/tracks/703/?name=ch00007_00000004885023469721600008659&size=8659");
// Rest<String> stringRest = hikFaceService.downloadPicture(imgReq);
//log.info(stringRest.getData());
//删除重点人员计划
/* PlanRecognListReq planRecognBlackListReq = new PlanRecognListReq();
Rest<List<PlanRecognInfo>> planRecognBlackRest = hikPlanService.findPlanRecognBlackList(planRecognBlackListReq);
if (planRecognBlackRest.getCode() == YesNoEnum.YES.getValue()) {
List<PlanRecognInfo> delPlanList = planRecognBlackRest.getData();
if (!ObjectUtils.isEmpty(delPlanList)) {
//删除计划
PlanRecognReq planRecognBlackReq = new PlanRecognReq();
planRecognBlackReq.setRecognitionResourceIndexCodes(delPlanList.stream().map(i -> i.getIndexCode()).collect(Collectors.toList()));
Rest<Boolean> delRest = hikPlanService.planRecognBlackDel(planRecognBlackReq);
if (delRest.getCode() == YesNoEnum.YES.getValue() && delRest.getData()) {
log.info("预约计划删除成功!");
}
}
}*/
//删除创建陌生人员识别计划,todo
// String planBlackName = GlobalSysInfo.getParamValue(ParamKey.PARAM_FACE_PLAN_BLACK, "取号监控");
/*
int threshold = GlobalSysInfo.getParamIntValue(ParamKey.PARAM_FACE_THRESHOLD, 80);
FacePlanEntity facePlanEntity = facePlanService.selectOne(new FacePlanQuery().name(planBlackName));
if (ObjectUtils.isEmpty(facePlanEntity)) {
//初始化新增取号监控识别计划
PlanRecognReq planRecognBlackReq = new PlanRecognReq();
planRecognBlackReq.setName(planBlackName);
planRecognBlackReq.setDescription(planBlackName);
planRecognBlackReq.setThreshold(threshold);
//设置人脸分组
FaceGroupEntity faceGroupEntity = faceGroupService.selectOne(new FaceGroupQuery().name("注册群众"));
List<String> faceGroupIndexCodes = new ArrayList<>();
faceGroupIndexCodes.add(faceGroupEntity.getIndexCode());
planRecognBlackReq.setFaceGroupIndexCodes(faceGroupIndexCodes);
//设置监控点
List<String> cameraIndexCodes = deviceService.find(new DeviceQuery()).stream().map(DeviceEntity::getDeviceCode).collect(Collectors.toList());
planRecognBlackReq.setCameraIndexCodes(cameraIndexCodes);
//设置识别方式
planRecognBlackReq.setRecognitionResourceType(RecognitionResourceEnum.COMPARISON.getValue());
//设置时间段 默认全天候
Rest<String> planRecognBlackAddRest = hikPlanService.planRecognBlackAdd(planRecognBlackReq);
if (planRecognBlackAddRest.getCode() == YesNoEnum.YES.getValue()) {
FacePlanEntity planEntity = new FacePlanEntity();
planEntity.initAttrValue();
planEntity.setIndexCode(planRecognBlackAddRest.getData());
planEntity.setName(planBlackName);
planEntity.setDescription(planBlackName);
planEntity.setCreateTime(new Date());
planEntity.setCreateUserId(1L);
planEntity.setCreateUserName("admin");
facePlanService.save(planEntity);
}
}
*/
//创建陌生人员识别计划
facePlanService
.
createStrangerPlan
();
//创建预约人监控计划
facePlanService
.
createAppointmentPlan
();
}
...
...
refined-manager/src/main/java/com/mortals/xhx/daemon/task/CreateAppointPersonToHikBlackPlanByDayTaskImpl.java
0 → 100644
View file @
df191e8b
package
com.mortals.xhx.daemon.task
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.service.ITask
;
import
com.mortals.framework.service.ITaskExcuteService
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.xhx.base.system.upload.service.UploadService
;
import
com.mortals.xhx.module.appointment.service.AppointmentConfigService
;
import
com.mortals.xhx.module.appointment.service.AppointmentConfigTimesService
;
import
com.mortals.xhx.module.appointment.service.AppointmentPersonService
;
import
com.mortals.xhx.module.device.service.DeviceService
;
import
com.mortals.xhx.module.face.service.FaceGroupPersonService
;
import
com.mortals.xhx.module.face.service.FaceGroupService
;
import
com.mortals.xhx.module.face.service.FacePlanService
;
import
com.mortals.xhx.module.hik.face.service.IHikFaceService
;
import
com.mortals.xhx.module.hik.face.service.IHikPlanService
;
import
com.mortals.xhx.module.person.service.PersonService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* 创建每日预约人群,并添加的预约人脸组中
* 执行时间需晚于预约人群同步时间
* @author:
* @date: 2023/5/9 13:44
*/
@Slf4j
//@Service("CreateAppointPersonToHikBlackPlanByDay")
public
class
CreateAppointPersonToHikBlackPlanByDayTaskImpl
implements
ITaskExcuteService
{
@Autowired
private
PersonService
personService
;
@Autowired
private
IHikFaceService
hikFaceService
;
@Autowired
private
IHikPlanService
hikPlanService
;
@Autowired
private
DeviceService
deviceService
;
@Autowired
private
FacePlanService
facePlanService
;
@Autowired
private
UploadService
uploadService
;
@Autowired
private
FaceGroupService
faceGroupService
;
@Autowired
private
FaceGroupPersonService
faceGroupPersonService
;
@Autowired
private
AppointmentPersonService
appointmentPersonService
;
@Autowired
private
AppointmentConfigService
appointmentConfigService
;
@Autowired
private
AppointmentConfigTimesService
appointmentConfigTimesService
;
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
log
.
info
(
"创建每日预约人群任务"
);
facePlanService
.
createAppointmentPersonByDay
();
log
.
info
(
"创建每日预约人群完成"
);
}
private
void
createAppointmentPersonByDay
()
{
facePlanService
.
createAppointmentPersonByDay
();
/* PlanRecognListReq planRecognBlackListReq = new PlanRecognListReq();
Rest<List<PlanRecognInfo>> planRecognBlackRest = hikPlanService.findPlanRecognBlackList(planRecognBlackListReq);
if (planRecognBlackRest.getCode() == YesNoEnum.YES.getValue()) {
List<PlanRecognInfo> delPlanList = planRecognBlackRest.getData().stream().map(i -> {
if (StrUtil.startWith(i.getName(), Constant.APPOINTMENT_PLAN_PREFIX) && !i.getName().equals(Constant.APPOINTMENT_GROUP_PREFIX + DateUtils.getCurrStrDate())) {
return i;
}
return null;
}).filter(f -> f != null).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(delPlanList)) {
//删除计划
PlanRecognReq planRecognBlackReq = new PlanRecognReq();
planRecognBlackReq.setRecognitionResourceIndexCodes(delPlanList.stream().map(i -> i.getIndexCode()).collect(Collectors.toList()));
Rest<Boolean> delRest = hikPlanService.planRecognBlackDel(planRecognBlackReq);
if (delRest.getCode() == YesNoEnum.YES.getValue() && delRest.getData()) {
log.info("预约计划删除成功!");
}
}
}
log.info("每日创建预约人员监控计划");
//获取当天预约
AppointmentPersonQuery appointmentPersonQuery = new AppointmentPersonQuery();
appointmentPersonQuery.setAppointmentStartTimeStart(DateUtils.getCurrStrDate());
appointmentPersonQuery.setAppointmentStartTimeEnd(DateUtils.getCurrStrDate());
List<AppointmentPersonEntity> appointmentPersonEntities = appointmentPersonService.find(appointmentPersonQuery);
if (!ObjectUtils.isEmpty(appointmentPersonEntities)) {
//创建人脸分组
String group = Constant.APPOINTMENT_GROUP_PREFIX + DateUtils.getCurrStrDate();
FaceGroupEntity faceGroup = faceGroupService.selectOne(new FaceGroupQuery().name(group));
if (ObjectUtils.isEmpty(faceGroup)) {
//创建分组
log.info("创建人脸分组...");
FaceGroupReq faceGroupReq = new FaceGroupReq();
faceGroupReq.setName(group);
faceGroupReq.setDescription(group);
Rest<FaceGroupEntity> rest = faceGroupService.saveFaceGroupToHik(faceGroupReq);
if (rest.getCode() == YesNoEnum.YES.getValue()) {
FaceGroupEntity newFaceGroupEntity = rest.getData();
//创建人脸tohik
for (AppointmentPersonEntity appointmentPersonEntity : appointmentPersonEntities) {
PersonEntity personEntity = personService.getCache(appointmentPersonEntity.getPersonId().toString());
if (ObjectUtils.isEmpty(personEntity)) {
log.info("注册人员未空,persionId:{}", appointmentPersonEntity.getPersonId());
continue;
}
//查询图片并转成base64
if (!ObjectUtils.isEmpty(personEntity.getPhoto())) {
String filePath = uploadService.getFilePath(personEntity.getPhoto());
byte[] bytes = FileUtil.readBytes(filePath);
if (bytes.length > 0) {
String picBase64Data = Base64.encode(bytes);
FaceReq faceReq = new FaceReq();
FaceInfo faceInfo = new FaceInfo();
faceInfo.setName(personEntity.getName());
faceInfo.setSex(personEntity.getGender() == GenderEnum.男.getValue() ? "1" : "2");
faceInfo.setCertificateType("111");
faceInfo.setCertificateNum(personEntity.getIdCard());
faceReq.setFaceInfo(faceInfo);
FacePic facePic = new FacePic();
facePic.setFaceBinaryData(picBase64Data);
faceReq.setFacePic(facePic);
faceReq.setFaceGroupIndexCode(faceGroup.getIndexCode());
Rest<FaceDataInfo> faceDataInfoRest = hikFaceService.faceSingleAdd(faceReq);
if (faceDataInfoRest.getCode() == YesNoEnum.YES.getValue()) {
//人脸添加成功,保存人脸组
FaceGroupPersonEntity faceGroupPersonEntity = new FaceGroupPersonEntity();
faceGroupPersonEntity.initAttrValue();
faceGroupPersonEntity.setFaceGroupId(newFaceGroupEntity.getId());
faceGroupPersonEntity.setIndexCode(faceDataInfoRest.getData().getIndexCode());
faceGroupPersonEntity.setCreateTime(new Date());
faceGroupPersonEntity.setCreateUserId(1L);
faceGroupPersonService.save(faceGroupPersonEntity);
} else {
log.info("添加人脸异常=>{}", faceDataInfoRest.getMsg());
}
} else {
log.info("图片数据为空,filePath=>{}", filePath);
}
} else {
log.info("人员图片photo为空,person=>{}", personEntity.getName());
}
}
log.info("添加当天预约监控计划");
String appointPlanName = Constant.APPOINTMENT_GROUP_PREFIX + DateUtils.getCurrStrDate();
int threshold = GlobalSysInfo.getParamIntValue(ParamKey.PARAM_FACE_THRESHOLD, 80);
//初始化新增取号监控识别计划
PlanRecognReq planRecognBlackReq = new PlanRecognReq();
planRecognBlackReq.setName(appointPlanName);
planRecognBlackReq.setDescription(appointPlanName);
planRecognBlackReq.setThreshold(threshold);
//设置人脸分组
List<String> faceGroupIndexCodes = new ArrayList<>();
faceGroupIndexCodes.add(newFaceGroupEntity.getIndexCode());
planRecognBlackReq.setFaceGroupIndexCodes(faceGroupIndexCodes);
//设置监控点
List<String> cameraIndexCodes = deviceService.find(new DeviceQuery()).stream().map(DeviceEntity::getDeviceCode).collect(Collectors.toList());
planRecognBlackReq.setCameraIndexCodes(cameraIndexCodes);
//设置识别方式
planRecognBlackReq.setRecognitionResourceType(RecognitionResourceEnum.FACE_RECOGNITION_SERVER.getValue());
//设置时间段 默认全天候
AppointmentConfigEntity appointmentConfigEntity = appointmentConfigService.selectOne(new AppointmentConfigQuery());
if (!ObjectUtils.isEmpty(appointmentConfigEntity)) {
List<AppointmentConfigTimesEntity> timesEntities = appointmentConfigTimesService.find(new AppointmentConfigTimesQuery().aotoCheckCfgId(appointmentConfigEntity.getId()));
if (!ObjectUtils.isEmpty(timesEntities)) {
List<TimeBlockListItem> timeBlockList = new ArrayList<>();
TimeBlockListItem timeBlockListItem = new TimeBlockListItem();
//周一至周日
timeBlockListItem.setDayOfWeek("1-7");
List<TimeRangeItem> timeRange = new ArrayList<>();
for (AppointmentConfigTimesEntity timesEntity : timesEntities) {
TimeRangeItem timeRangeItem = new TimeRangeItem();
String startTimeStr = DateUtils.convertTime2Str(timesEntity.getServiceTimeStart().getTime(), "HH:ss");
String endTimeStr = DateUtils.convertTime2Str(timesEntity.getServiceTimeEnd().getTime(), "HH:ss");
timeRangeItem.setStartTime(startTimeStr);
timeRangeItem.setEndTime(endTimeStr);
timeRange.add(timeRangeItem);
}
timeBlockListItem.setTimeRange(timeRange);
timeBlockList.add(timeBlockListItem);
planRecognBlackReq.setTimeBlockList(timeBlockList);
}
}
Rest<String> planRecognBlackAddRest = hikPlanService.planRecognBlackAdd(planRecognBlackReq);
if (planRecognBlackAddRest.getCode() == YesNoEnum.YES.getValue()) {
FacePlanEntity planEntity = new FacePlanEntity();
planEntity.initAttrValue();
planEntity.setIndexCode(planRecognBlackAddRest.getData());
planEntity.setName(appointPlanName);
planEntity.setDescription(appointPlanName);
planEntity.setCreateTime(new Date());
planEntity.setCreateUserId(1L);
planEntity.setCreateUserName("admin");
facePlanService.save(planEntity);
}
} else {
log.info("人员分组创建失败=>{}", rest.getMsg());
}
} else {
log.info("当天人员分组以存在,人员分组名称=>{}", group);
}
} else {
log.info("当天无预约人员,不创建监控计划=>{}", DateUtils.getCurrStrDate());
}*/
}
@Override
public
void
stopTask
(
ITask
task
)
throws
AppException
{
}
}
refined-manager/src/main/java/com/mortals/xhx/daemon/task/CreateBlackPlanToHikByDayTaskImpl.java
View file @
df191e8b
package
com.mortals.xhx.daemon.task
;
import
cn.hutool.core.codec.Base64
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.mortals.framework.ap.GlobalSysInfo
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.service.ITask
;
import
com.mortals.framework.service.ITaskExcuteService
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.xhx.base.system.upload.service.UploadService
;
import
com.mortals.xhx.common.code.GenderEnum
;
import
com.mortals.xhx.common.code.RecognitionResourceEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.common.key.Constant
;
import
com.mortals.xhx.common.key.ParamKey
;
import
com.mortals.xhx.module.appointment.model.*
;
import
com.mortals.xhx.module.appointment.service.AppointmentConfigService
;
import
com.mortals.xhx.module.appointment.service.AppointmentConfigTimesService
;
import
com.mortals.xhx.module.appointment.service.AppointmentPersonService
;
import
com.mortals.xhx.module.device.model.DeviceEntity
;
import
com.mortals.xhx.module.device.model.DeviceQuery
;
import
com.mortals.xhx.module.device.service.DeviceService
;
import
com.mortals.xhx.module.face.model.*
;
import
com.mortals.xhx.module.face.service.FaceGroupPersonService
;
import
com.mortals.xhx.module.face.service.FaceGroupService
;
import
com.mortals.xhx.module.face.service.FacePlanService
;
import
com.mortals.xhx.module.hik.face.model.req.face.FaceInfo
;
import
com.mortals.xhx.module.hik.face.model.req.face.FacePic
;
import
com.mortals.xhx.module.hik.face.model.req.face.FaceReq
;
import
com.mortals.xhx.module.hik.face.model.req.group.FaceGroupReq
;
import
com.mortals.xhx.module.hik.face.model.req.plan.PlanRecognListReq
;
import
com.mortals.xhx.module.hik.face.model.req.plan.PlanRecognReq
;
import
com.mortals.xhx.module.hik.face.model.req.plan.TimeBlockListItem
;
import
com.mortals.xhx.module.hik.face.model.req.plan.TimeRangeItem
;
import
com.mortals.xhx.module.hik.face.model.rsp.face.FaceDataInfo
;
import
com.mortals.xhx.module.hik.face.model.rsp.plan.PlanRecognInfo
;
import
com.mortals.xhx.module.hik.face.service.IHikFaceService
;
import
com.mortals.xhx.module.hik.face.service.IHikPlanService
;
import
com.mortals.xhx.module.person.model.PersonEntity
;
import
com.mortals.xhx.module.person.service.PersonService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
ParamKey
.
PARAM_FACE_GROUP_REGISTER
;
/**
* 每日创建预约人员监控计划
...
...
@@ -62,7 +28,7 @@ import static com.mortals.xhx.common.key.ParamKey.PARAM_FACE_GROUP_REGISTER;
* @date: 2023/4/17 17:52
*/
@Slf4j
@Service
(
"CreateBlackPlanToHikByDayTask"
)
//
@Service("CreateBlackPlanToHikByDayTask")
public
class
CreateBlackPlanToHikByDayTaskImpl
implements
ITaskExcuteService
{
@Autowired
...
...
@@ -98,7 +64,7 @@ public class CreateBlackPlanToHikByDayTaskImpl implements ITaskExcuteService {
log
.
info
(
"{}=>创建陌生人计划任务完成"
,
DateUtils
.
getCurrStrDate
());
log
.
info
(
"{}=>创建预约计划任务"
,
DateUtils
.
getCurrStrDate
());
facePlanService
.
createAppointmentP
la
nByDay
();
facePlanService
.
createAppointmentP
erso
nByDay
();
//createAppointmentPlanByDay();
log
.
info
(
"{}=>创建预约计划任务完成"
,
DateUtils
.
getCurrStrDate
());
}
...
...
@@ -198,7 +164,7 @@ public class CreateBlackPlanToHikByDayTaskImpl implements ITaskExcuteService {
private
void
createAppointmentPlanByDay
()
{
facePlanService
.
createAppointmentP
la
nByDay
();
facePlanService
.
createAppointmentP
erso
nByDay
();
/* PlanRecognListReq planRecognBlackListReq = new PlanRecognListReq();
Rest<List<PlanRecognInfo>> planRecognBlackRest = hikPlanService.findPlanRecognBlackList(planRecognBlackListReq);
...
...
refined-manager/src/main/java/com/mortals/xhx/daemon/task/RealTimePeopleStatTaskImpl.java
View file @
df191e8b
...
...
@@ -49,11 +49,9 @@ public class RealTimePeopleStatTaskImpl implements ITaskExcuteService {
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
statPeople
();
donwnloadSnap
();
}
private
void
statPeople
()
{
...
...
@@ -67,7 +65,7 @@ public class RealTimePeopleStatTaskImpl implements ITaskExcuteService {
realtimeDataflowQuery
.
setCreateTimeStart
(
startTimeStr
);
realtimeDataflowQuery
.
setCreateTimeEnd
(
endTimeStr
);
List
<
RealtimeDataflowEntity
>
realtimeDataflowEntities
=
realtimeDataflowService
.
find
(
realtimeDataflowQuery
,
null
);
if
(
ObjectUtils
.
isEmpty
(
realtimeDataflowEntities
))
{
if
(
!
ObjectUtils
.
isEmpty
(
realtimeDataflowEntities
))
{
Long
strangerCount
=
realtimeDataflowEntities
.
parallelStream
().
filter
(
f
->
ObjectUtils
.
isEmpty
(
f
.
getIdNumber
())).
count
();
int
total
=
realtimeDataflowEntities
.
size
();
Long
recognizeCount
=
total
-
strangerCount
;
...
...
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncAppointWaitAndFinTaskImpl.java
View file @
df191e8b
...
...
@@ -114,6 +114,7 @@ public class SyncAppointWaitAndFinTaskImpl implements ITaskExcuteService {
}
cacheService
.
select
(
database
);
//
if
(!
ObjectUtils
.
isEmpty
(
waitPersonInfos
))
{
log
.
info
(
"waitPersonInfos:{}"
,
JSON
.
toJSONString
(
waitPersonInfos
));
List
<
CareRecordsEntity
>
recordsEntityList
=
waitPersonInfos
.
stream
().
map
(
item
->
{
CareRecordsEntity
careRecordsEntity
=
new
CareRecordsEntity
();
careRecordsEntity
.
initAttrValue
();
...
...
@@ -141,6 +142,7 @@ public class SyncAppointWaitAndFinTaskImpl implements ITaskExcuteService {
}
}
if
(!
ObjectUtils
.
isEmpty
(
finPersonInfos
))
{
log
.
info
(
"finPersonInfos:{}"
,
JSON
.
toJSONString
(
finPersonInfos
));
List
<
Long
>
waitIdList
=
finPersonInfos
.
stream
().
map
(
item
->
item
.
getWaitId
()).
collect
(
Collectors
.
toList
());
Map
<
Long
,
FinPersonInfo
>
waitMap
=
finPersonInfos
.
stream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getWaitId
(),
y
->
y
,
(
o
,
n
)
->
n
));
...
...
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncAppointmentPersonTaskImpl.java
View file @
df191e8b
...
...
@@ -18,6 +18,7 @@ import com.mortals.xhx.common.code.YesNoEnum;
import
com.mortals.xhx.module.appointment.model.AppointmentPersonEntity
;
import
com.mortals.xhx.module.appointment.model.AppointmentPersonQuery
;
import
com.mortals.xhx.module.appointment.service.AppointmentPersonService
;
import
com.mortals.xhx.module.face.service.FacePlanService
;
import
com.mortals.xhx.module.person.model.PersonEntity
;
import
com.mortals.xhx.module.person.model.PersonQuery
;
import
com.mortals.xhx.module.person.service.PersonService
;
...
...
@@ -54,6 +55,8 @@ public class SyncAppointmentPersonTaskImpl implements ITaskExcuteService {
private
PersonService
personService
;
@Autowired
private
AppointmentPersonService
appointmentPersonService
;
@Autowired
private
FacePlanService
facePlanService
;
@Value
(
"${php.host:''}"
)
...
...
@@ -66,8 +69,11 @@ public class SyncAppointmentPersonTaskImpl implements ITaskExcuteService {
syncAppointmentPerson
();
log
.
info
(
"同步今天预约用户任务完成"
);
}
log
.
info
(
"创建每日预约人群任务"
);
facePlanService
.
createAppointmentPersonByDay
();
log
.
info
(
"创建每日预约人群完成"
);
}
private
void
syncAppointmentPerson
()
{
//根据数量查询
...
...
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncRegisterUserPicTaskImpl.java
View file @
df191e8b
...
...
@@ -63,7 +63,6 @@ public class SyncRegisterUserPicTaskImpl implements ITaskExcuteService {
private
void
syncRegisterUsersPhotos
()
{
String
url
=
host
.
endsWith
(
"/"
)
?
host
:
host
+
"/"
;
List
<
PersonEntity
>
collect
=
personService
.
find
(
new
PersonQuery
()).
stream
()
.
filter
(
item
->
ObjectUtils
.
isEmpty
(
item
.
getPhoto
()))
.
filter
(
item
->
!
ObjectUtils
.
isEmpty
(
item
.
getSourcePhotoUri
())).
collect
(
Collectors
.
toList
());
...
...
@@ -84,11 +83,9 @@ public class SyncRegisterUserPicTaskImpl implements ITaskExcuteService {
List
<
PersonEntity
>
hikPerson
=
personService
.
find
(
new
PersonQuery
().
source
(
SourceEnum
.
海康系统
.
getValue
())).
stream
().
filter
(
f
->
ObjectUtils
.
isEmpty
(
f
.
getPhoto
())).
collect
(
Collectors
.
toList
());
for
(
PersonEntity
person
:
hikPerson
)
{
ImgReq
imgReq
=
new
ImgReq
();
imgReq
.
setSvrIndexCode
(
person
.
getServerIndexCode
());
imgReq
.
setPicUri
(
person
.
getPicUrl
());
try
{
InputStream
inputStream
=
hikFaceService
.
callPostImgs
(
imgReq
);
if
(!
ObjectUtils
.
isEmpty
(
inputStream
))
{
...
...
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncRegisterUserTaskImpl.java
View file @
df191e8b
...
...
@@ -88,7 +88,6 @@ public class SyncRegisterUserTaskImpl implements ITaskExcuteService {
private
void
syncRegisterUsers
()
{
//查询本地最大id
int
count
=
0
;
List
<
PersonEntity
>
max
=
personService
.
getDao
().
getMax
();
if
(!
ObjectUtils
.
isEmpty
(
max
)){
...
...
@@ -200,13 +199,6 @@ public class SyncRegisterUserTaskImpl implements ITaskExcuteService {
}
// Map<String, Integer> params = new HashMap<>();
// params.put("page",1);
// params.put("size",1);
//
// HttpUtil.doGet(url,params)
}
private
void
syncRegisterUsersPhotos
()
{
...
...
refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserToHikTaskImpl.java
View file @
df191e8b
...
...
@@ -107,17 +107,11 @@ public class SyncUserToHikTaskImpl implements ITaskExcuteService {
faceGroupPersonEntity
.
setCreateTime
(
new
Date
());
faceGroupPersonEntity
.
setCreateUserId
(
1L
);
faceGroupPersonService
.
save
(
faceGroupPersonEntity
);
//faceGroupPersonService;
}
//log.info("picBase64Data=>{}", picBase64Data);
}
}
// FileUtil.read
}
}
}
...
...
refined-manager/src/main/java/com/mortals/xhx/module/face/service/FacePlanService.java
View file @
df191e8b
...
...
@@ -17,13 +17,22 @@ import java.util.List;
*/
public
interface
FacePlanService
extends
ICRUDService
<
FacePlanEntity
,
Long
>
{
/**
* 创建陌生人监控计划
*/
Rest
<
List
<
PlanRecognInfo
>>
createStrangerPlan
();
/**
* 创建陌生人监控计划
*/
Rest
<
List
<
PlanRecognInfo
>>
createStrangerPlanByDay
();
/**
* 每日创建预约人员监控计划
*/
void
createAppointmentPersonByDay
();
/**
* 创建预约人员监控计划
*/
void
createAppointmentPlanByDay
();
Rest
<
String
>
createAppointmentPlan
();
}
\ No newline at end of file
refined-manager/src/main/java/com/mortals/xhx/module/face/service/impl/FacePlanServiceImpl.java
View file @
df191e8b
...
...
@@ -4,6 +4,7 @@ import cn.hutool.core.codec.Base64;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.mortals.framework.ap.GlobalSysInfo
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.util.DateUtils
;
...
...
@@ -52,6 +53,7 @@ import java.util.Date;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
Constant
.*;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
ParamKey
.
PARAM_FACE_GROUP_REGISTER
;
/**
...
...
@@ -89,8 +91,108 @@ public class FacePlanServiceImpl extends AbstractCRUDServiceImpl<FacePlanDao, Fa
@Autowired
private
AppointmentConfigTimesService
appointmentConfigTimesService
;
@Override
public
Rest
<
List
<
PlanRecognInfo
>>
createStrangerPlan
()
{
//初始化创建陌生人计划,如果已经有了则不添加
int
threshold
=
GlobalSysInfo
.
getParamIntValue
(
ParamKey
.
PARAM_FACE_THRESHOLD
,
80
);
//创建或者更新
PlanRecognListReq
planRecognListReq
=
new
PlanRecognListReq
();
Rest
<
List
<
PlanRecognInfo
>>
planRecognWhiteListRest
=
hikPlanService
.
findPlanRecognWhiteList
(
planRecognListReq
);
if
(
planRecognWhiteListRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
PlanRecognInfo
planRecognWhiteInfo
=
planRecognWhiteListRest
.
getData
().
stream
().
map
(
i
->
{
i
.
getName
();
if
(
i
.
getName
().
equals
(
Constant
.
STRANGER_PLAN
))
{
return
i
;
}
return
null
;
}).
filter
(
f
->
f
!=
null
).
findFirst
().
orElseGet
(()
->
null
);
//初始化新增取号监控识别计划
PlanRecognReq
planRecognWhiteReq
=
new
PlanRecognReq
();
planRecognWhiteReq
.
setName
(
Constant
.
STRANGER_PLAN
);
planRecognWhiteReq
.
setDescription
(
Constant
.
STRANGER_PLAN_DESC
);
planRecognWhiteReq
.
setThreshold
(
threshold
);
//设置人脸分组
FaceGroupEntity
faceGroupEntity
=
faceGroupService
.
selectOne
(
new
FaceGroupQuery
().
name
(
PARAM_FACE_GROUP_REGISTER
));
if
(
ObjectUtils
.
isEmpty
(
faceGroupEntity
))
{
log
.
info
(
"人脸组不存在!"
);
return
Rest
.
fail
();
}
List
<
String
>
faceGroupIndexCodes
=
new
ArrayList
<>();
faceGroupIndexCodes
.
add
(
faceGroupEntity
.
getIndexCode
());
planRecognWhiteReq
.
setFaceGroupIndexCodes
(
faceGroupIndexCodes
);
//设置监控点
List
<
String
>
cameraIndexCodes
=
deviceService
.
find
(
new
DeviceQuery
()).
stream
().
map
(
DeviceEntity:
:
getDeviceCode
).
distinct
().
collect
(
Collectors
.
toList
());
planRecognWhiteReq
.
setCameraIndexCodes
(
cameraIndexCodes
);
//设置识别方式
planRecognWhiteReq
.
setRecognitionResourceType
(
RecognitionResourceEnum
.
SUPER_BRAIN
.
getValue
());
ResourceReq
resourceReq
=
new
ResourceReq
();
resourceReq
.
setRecognitionResourceType
(
RecognitionResourceEnum
.
SUPER_BRAIN
.
getValue
());
Rest
<
List
<
ResourceDataInfo
>>
resourceRecognition
=
hikFaceService
.
getResourceRecognition
(
resourceReq
);
if
(
resourceRecognition
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
()
&&
!
ObjectUtils
.
isEmpty
(
resourceRecognition
.
getData
()))
{
ArrayList
<
String
>
recognitionResourceIndexCodes
=
new
ArrayList
<>();
recognitionResourceIndexCodes
.
add
(
resourceRecognition
.
getData
().
get
(
0
).
getIndexCode
());
planRecognWhiteReq
.
setRecognitionResourceIndexCodes
(
recognitionResourceIndexCodes
);
}
if
(
ObjectUtils
.
isEmpty
(
planRecognWhiteInfo
))
{
Rest
<
String
>
planRecognWhiteAddRest
=
hikPlanService
.
planRecognWhiteAdd
(
planRecognWhiteReq
);
if
(
planRecognWhiteAddRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
FacePlanEntity
planEntity
=
new
FacePlanEntity
();
planEntity
.
initAttrValue
();
planEntity
.
setIndexCode
(
planRecognWhiteAddRest
.
getData
());
planEntity
.
setFaceGroupIndexCodes
(
faceGroupEntity
.
getIndexCode
());
planEntity
.
setCameraIndexCodes
(
planRecognWhiteReq
.
getCameraIndexCodes
().
stream
().
collect
(
Collectors
.
joining
(
","
)));
planEntity
.
setRecognitionResourceIndexCodes
(
planRecognWhiteReq
.
getRecognitionResourceIndexCodes
().
stream
().
collect
(
Collectors
.
joining
(
","
)));
planEntity
.
setRecognitionResourceType
(
RecognitionResourceEnum
.
SUPER_BRAIN
.
getDesc
());
planEntity
.
setThreshold
(
threshold
);
planEntity
.
setStatus
(
PlanStatusEnum
.
RUNNING
.
getValue
());
planEntity
.
setStartTime
(
new
Date
());
planEntity
.
setName
(
Constant
.
STRANGER_PLAN
);
planEntity
.
setDescription
(
Constant
.
STRANGER_PLAN_DESC
);
planEntity
.
setCreateTime
(
new
Date
());
planEntity
.
setCreateUserId
(
1L
);
planEntity
.
setCreateUserName
(
"admin"
);
facePlanService
.
save
(
planEntity
);
}
}
else
{
//判断计划运行状态
/* if (PlanStatusEnum.FAIL.getValue().equals(planRecognWhiteInfo.getStatus())) {
//计划下发识别,重新下发当前计划
// facePlanService.re
PlanRecognReq planRecognReq = new PlanRecognReq();
planRecognReq.setIndexCode(planRecognWhiteInfo.getIndexCode());
Rest<Boolean> booleanRest = hikPlanService.planRecognWhiteReStart(planRecognReq);
if (YesNoEnum.YES.getValue() == booleanRest.getCode()) {
return Rest.ok(booleanRest.getMsg());
} else {
return Rest.fail(booleanRest.getMsg());
}
} else if (PlanStatusEnum.RUNNING.getValue().equals(planRecognWhiteInfo.getStatus())) {
return Rest.ok(PlanStatusEnum.RUNNING.getDesc());
}*/
//更新计划
/* planRecognWhiteReq.setIndexCode(planRecognWhiteInfo.getIndexCode());
Rest<Boolean> planRecognWhiteUpdateRest = hikPlanService.planRecognWhiteUpdate(planRecognWhiteReq);
if (planRecognWhiteUpdateRest.getCode() == YesNoEnum.YES.getValue() && planRecognWhiteUpdateRest.getData()) {
FacePlanEntity whitePlan = facePlanService.selectOne(new FacePlanQuery().indexCode(planRecognWhiteInfo.getIndexCode()));
if (!ObjectUtils.isEmpty(whitePlan)) {
whitePlan.setUpdateTime(new Date());
whitePlan.setUpdateUserId(1L);
whitePlan.setUpdateUserName("system");
facePlanService.update(whitePlan);
}
}*/
}
}
return
planRecognWhiteListRest
;
}
@Override
public
Rest
<
List
<
PlanRecognInfo
>>
createStrangerPlanByDay
()
{
//初始化创建陌生人计划,如果已经有了则不添加
int
threshold
=
GlobalSysInfo
.
getParamIntValue
(
ParamKey
.
PARAM_FACE_THRESHOLD
,
80
);
//创建或者更新
PlanRecognListReq
planRecognListReq
=
new
PlanRecognListReq
();
...
...
@@ -106,7 +208,7 @@ public class FacePlanServiceImpl extends AbstractCRUDServiceImpl<FacePlanDao, Fa
//初始化新增取号监控识别计划
PlanRecognReq
planRecognWhiteReq
=
new
PlanRecognReq
();
planRecognWhiteReq
.
setName
(
Constant
.
STRANGER_PLAN
);
planRecognWhiteReq
.
setDescription
(
Constant
.
STRANGER_PLAN
);
planRecognWhiteReq
.
setDescription
(
Constant
.
STRANGER_PLAN
_DESC
);
planRecognWhiteReq
.
setThreshold
(
threshold
);
//设置人脸分组
FaceGroupEntity
faceGroupEntity
=
faceGroupService
.
selectOne
(
new
FaceGroupQuery
().
name
(
PARAM_FACE_GROUP_REGISTER
));
...
...
@@ -171,7 +273,7 @@ public class FacePlanServiceImpl extends AbstractCRUDServiceImpl<FacePlanDao, Fa
}
}
else
{
//判断计划运行状态
if
(
PlanStatusEnum
.
FAIL
.
getValue
().
equals
(
planRecognWhiteInfo
.
getStatus
()))
{
/*
if (PlanStatusEnum.FAIL.getValue().equals(planRecognWhiteInfo.getStatus())) {
//计划下发识别,重新下发当前计划
// facePlanService.re
PlanRecognReq planRecognReq = new PlanRecognReq();
...
...
@@ -184,9 +286,9 @@ public class FacePlanServiceImpl extends AbstractCRUDServiceImpl<FacePlanDao, Fa
}
} else if (PlanStatusEnum.RUNNING.getValue().equals(planRecognWhiteInfo.getStatus())) {
return Rest.ok(PlanStatusEnum.RUNNING.getDesc());
}
}
*/
//更新计划
planRecognWhiteReq
.
setIndexCode
(
planRecognWhiteInfo
.
getIndexCode
());
/*
planRecognWhiteReq.setIndexCode(planRecognWhiteInfo.getIndexCode());
Rest<Boolean> planRecognWhiteUpdateRest = hikPlanService.planRecognWhiteUpdate(planRecognWhiteReq);
if (planRecognWhiteUpdateRest.getCode() == YesNoEnum.YES.getValue() && planRecognWhiteUpdateRest.getData()) {
FacePlanEntity whitePlan = facePlanService.selectOne(new FacePlanQuery().indexCode(planRecognWhiteInfo.getIndexCode()));
...
...
@@ -197,7 +299,7 @@ public class FacePlanServiceImpl extends AbstractCRUDServiceImpl<FacePlanDao, Fa
facePlanService.update(whitePlan);
}
}
}
*/
}
}
...
...
@@ -206,50 +308,37 @@ public class FacePlanServiceImpl extends AbstractCRUDServiceImpl<FacePlanDao, Fa
}
@Override
public
void
createAppointmentPlanByDay
()
{
PlanRecognListReq
planRecognBlackListReq
=
new
PlanRecognListReq
();
Rest
<
List
<
PlanRecognInfo
>>
planRecognBlackRest
=
hikPlanService
.
findPlanRecognBlackList
(
planRecognBlackListReq
);
if
(
planRecognBlackRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
List
<
PlanRecognInfo
>
delPlanList
=
planRecognBlackRest
.
getData
().
stream
().
map
(
i
->
{
if
(
StrUtil
.
startWith
(
i
.
getName
(),
Constant
.
APPOINTMENT_PLAN_PREFIX
)
&&
!
i
.
getName
().
equals
(
Constant
.
APPOINTMENT_GROUP_PREFIX
+
DateUtils
.
getCurrStrDate
()))
{
return
i
;
}
return
null
;
}).
filter
(
f
->
f
!=
null
).
collect
(
Collectors
.
toList
());
if
(!
ObjectUtils
.
isEmpty
(
delPlanList
))
{
//删除计划
PlanRecognReq
planRecognBlackReq
=
new
PlanRecognReq
();
planRecognBlackReq
.
setRecognitionResourceIndexCodes
(
delPlanList
.
stream
().
map
(
i
->
i
.
getIndexCode
()).
collect
(
Collectors
.
toList
()));
Rest
<
Boolean
>
delRest
=
hikPlanService
.
planRecognBlackDel
(
planRecognBlackReq
);
if
(
delRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
()
&&
delRest
.
getData
())
{
log
.
info
(
"预约计划删除成功!"
);
}
}
}
log
.
info
(
"每日创建预约人员监控计划"
);
public
void
createAppointmentPersonByDay
()
{
//创建当前的预约人群人像 并同步到海康人脸库
//获取当天预约
AppointmentPersonQuery
appointmentPersonQuery
=
new
AppointmentPersonQuery
();
appointmentPersonQuery
.
setAppointmentStartTimeStart
(
DateUtils
.
getCurrStrDate
());
appointmentPersonQuery
.
setAppointmentStartTimeEnd
(
DateUtils
.
getCurrStrDate
());
List
<
AppointmentPersonEntity
>
appointmentPersonEntities
=
appointmentPersonService
.
find
(
appointmentPersonQuery
);
if
(!
ObjectUtils
.
isEmpty
(
appointmentPersonEntities
))
{
//创建人脸分组
String
group
=
Constant
.
APPOINTMENT_GROUP_PREFIX
+
DateUtils
.
getCurrStrDate
();
FaceGroupEntity
faceGroup
=
faceGroupService
.
selectOne
(
new
FaceGroupQuery
().
name
(
group
));
if
(
ObjectUtils
.
isEmpty
(
faceGroup
))
{
//创建分组
log
.
info
(
"创建人脸分组..."
);
FaceGroupReq
faceGroupReq
=
new
FaceGroupReq
();
faceGroupReq
.
setName
(
group
);
faceGroupReq
.
setDescription
(
group
);
Rest
<
FaceGroupEntity
>
rest
=
faceGroupService
.
saveFaceGroupToHik
(
faceGroupReq
);
if
(
rest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
FaceGroupEntity
newFaceGroupEntity
=
rest
.
getData
();
//将人脸同步添加到海康人脸库中,如果已经添加过的 则不添加
FaceGroupEntity
faceGroup
=
faceGroupService
.
selectOne
(
new
FaceGroupQuery
().
name
(
APPOINTMENT_GROUP
));
if
(!
ObjectUtils
.
isEmpty
(
faceGroup
))
{
//删除本地和远端人脸库,重新添加 todo
List
<
FaceGroupPersonEntity
>
delFacePerson
=
faceGroupPersonService
.
find
(
new
FaceGroupPersonQuery
().
faceGroupId
(
faceGroup
.
getId
()));
if
(!
ObjectUtils
.
isEmpty
(
delFacePerson
)){
FaceReq
faceRequest
=
new
FaceReq
();
faceRequest
.
setFaceGroupIndexCode
(
faceGroup
.
getIndexCode
());
faceRequest
.
setIndexCodes
(
delFacePerson
.
stream
().
map
(
i
->
i
.
getIndexCode
()).
collect
(
Collectors
.
toList
()));
Rest
<
Boolean
>
delRest
=
hikFaceService
.
faceSingleDel
(
faceRequest
);
if
(
delRest
.
getCode
()==
YesNoEnum
.
YES
.
getValue
()&&
delRest
.
getData
())
{
faceGroupPersonService
.
remove
(
delFacePerson
.
stream
().
map
(
i
->
i
.
getId
()).
toArray
(
Long
[]::
new
),
null
);
}
else
{
log
.
info
(
"人脸删除失败==》{}"
,
JSON
.
toJSONString
(
delRest
));
return
;
}
}
//创建人脸tohik
for
(
AppointmentPersonEntity
appointmentPersonEntity
:
appointmentPersonEntities
)
{
PersonEntity
personEntity
=
personService
.
getCache
(
appointmentPersonEntity
.
getPersonId
().
toString
());
if
(
ObjectUtils
.
isEmpty
(
personEntity
))
{
log
.
info
(
"注册人员未
空,persionId:{}"
,
appointmentPersonEntity
.
getPersonId
());
log
.
info
(
"注册人员不能为
空,persionId:{}"
,
appointmentPersonEntity
.
getPersonId
());
continue
;
}
//查询图片并转成base64
...
...
@@ -274,7 +363,7 @@ public class FacePlanServiceImpl extends AbstractCRUDServiceImpl<FacePlanDao, Fa
//人脸添加成功,保存人脸组
FaceGroupPersonEntity
faceGroupPersonEntity
=
new
FaceGroupPersonEntity
();
faceGroupPersonEntity
.
initAttrValue
();
faceGroupPersonEntity
.
setFaceGroupId
(
newFaceGroupEntity
.
getId
());
faceGroupPersonEntity
.
setFaceGroupId
(
faceGroup
.
getId
());
faceGroupPersonEntity
.
setIndexCode
(
faceDataInfoRest
.
getData
().
getIndexCode
());
faceGroupPersonEntity
.
setCreateTime
(
new
Date
());
faceGroupPersonEntity
.
setCreateUserId
(
1L
);
...
...
@@ -289,25 +378,42 @@ public class FacePlanServiceImpl extends AbstractCRUDServiceImpl<FacePlanDao, Fa
log
.
info
(
"人员图片photo为空,person=>{}"
,
personEntity
.
getName
());
}
}
}
log
.
info
(
"添加当天预约监控计划"
);
String
appointPlanName
=
Constant
.
APPOINTMENT_GROUP_PREFIX
+
DateUtils
.
getCurrStrDate
();
}
}
@Override
public
Rest
<
String
>
createAppointmentPlan
()
{
PlanRecognListReq
planRecognBlackListReq
=
new
PlanRecognListReq
();
planRecognBlackListReq
.
setName
(
APPOINTMENT_PLAN
);
Rest
<
List
<
PlanRecognInfo
>>
planRecognBlackRest
=
hikPlanService
.
findPlanRecognBlackList
(
planRecognBlackListReq
);
if
(
planRecognBlackRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
if
(
ObjectUtils
.
isEmpty
(
planRecognBlackRest
.
getData
()))
{
//新建
int
threshold
=
GlobalSysInfo
.
getParamIntValue
(
ParamKey
.
PARAM_FACE_THRESHOLD
,
80
);
//初始化新增取号监控识别计划
PlanRecognReq
planRecognBlackReq
=
new
PlanRecognReq
();
planRecognBlackReq
.
setName
(
appointPlanName
);
planRecognBlackReq
.
setDescription
(
appointPlanName
);
planRecognBlackReq
.
setName
(
Constant
.
APPOINTMENT_PLAN
);
planRecognBlackReq
.
setDescription
(
Constant
.
APPOINTMENT_PLAN_DESC
);
planRecognBlackReq
.
setThreshold
(
threshold
);
//设置人脸分组
FaceGroupEntity
faceGroupEntity
=
faceGroupService
.
selectOne
(
new
FaceGroupQuery
().
name
(
APPOINTMENT_GROUP
));
if
(
ObjectUtils
.
isEmpty
(
faceGroupEntity
))
{
log
.
info
(
"人脸组不存在!"
);
return
Rest
.
fail
();
}
List
<
String
>
faceGroupIndexCodes
=
new
ArrayList
<>();
faceGroupIndexCodes
.
add
(
newF
aceGroupEntity
.
getIndexCode
());
faceGroupIndexCodes
.
add
(
f
aceGroupEntity
.
getIndexCode
());
planRecognBlackReq
.
setFaceGroupIndexCodes
(
faceGroupIndexCodes
);
//设置监控点
List
<
String
>
cameraIndexCodes
=
deviceService
.
find
(
new
DeviceQuery
()).
stream
().
map
(
DeviceEntity:
:
getDeviceCode
).
collect
(
Collectors
.
toList
());
List
<
String
>
cameraIndexCodes
=
deviceService
.
find
(
new
DeviceQuery
()).
stream
().
map
(
DeviceEntity:
:
getDeviceCode
).
distinct
().
collect
(
Collectors
.
toList
());
planRecognBlackReq
.
setCameraIndexCodes
(
cameraIndexCodes
);
//设置识别方式
planRecognBlackReq
.
setRecognitionResourceType
(
RecognitionResourceEnum
.
SUPER_BRAIN
.
getValue
());
//设置识别资源
ResourceReq
resourceReq
=
new
ResourceReq
();
resourceReq
.
setRecognitionResourceType
(
RecognitionResourceEnum
.
SUPER_BRAIN
.
getValue
());
Rest
<
List
<
ResourceDataInfo
>>
resourceRecognition
=
hikFaceService
.
getResourceRecognition
(
resourceReq
);
...
...
@@ -317,51 +423,39 @@ public class FacePlanServiceImpl extends AbstractCRUDServiceImpl<FacePlanDao, Fa
planRecognBlackReq
.
setRecognitionResourceIndexCodes
(
recognitionResourceIndexCodes
);
}
//设置时间段 默认全天候
AppointmentConfigEntity
appointmentConfigEntity
=
appointmentConfigService
.
selectOne
(
new
AppointmentConfigQuery
());
if
(!
ObjectUtils
.
isEmpty
(
appointmentConfigEntity
))
{
List
<
AppointmentConfigTimesEntity
>
timesEntities
=
appointmentConfigTimesService
.
find
(
new
AppointmentConfigTimesQuery
().
aotoCheckCfgId
(
appointmentConfigEntity
.
getId
()));
if
(!
ObjectUtils
.
isEmpty
(
timesEntities
))
{
List
<
TimeBlockListItem
>
timeBlockList
=
new
ArrayList
<>();
TimeBlockListItem
timeBlockListItem
=
new
TimeBlockListItem
();
//周一至周日
timeBlockListItem
.
setDayOfWeek
(
"1-7"
);
List
<
TimeRangeItem
>
timeRange
=
new
ArrayList
<>();
for
(
AppointmentConfigTimesEntity
timesEntity
:
timesEntities
)
{
TimeRangeItem
timeRangeItem
=
new
TimeRangeItem
();
String
startTimeStr
=
DateUtils
.
convertTime2Str
(
timesEntity
.
getServiceTimeStart
().
getTime
(),
"HH:ss"
);
String
endTimeStr
=
DateUtils
.
convertTime2Str
(
timesEntity
.
getServiceTimeEnd
().
getTime
(),
"HH:ss"
);
timeRangeItem
.
setStartTime
(
startTimeStr
);
timeRangeItem
.
setEndTime
(
endTimeStr
);
timeRange
.
add
(
timeRangeItem
);
}
timeBlockListItem
.
setTimeRange
(
timeRange
);
timeBlockList
.
add
(
timeBlockListItem
);
planRecognBlackReq
.
setTimeBlockList
(
timeBlockList
);
}
}
Rest
<
String
>
planRecognBlackAddRest
=
hikPlanService
.
planRecognBlackAdd
(
planRecognBlackReq
);
if
(
planRecognBlackAddRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
FacePlanEntity
planEntity
=
new
FacePlanEntity
();
planEntity
.
initAttrValue
();
planEntity
.
setIndexCode
(
planRecognBlackAddRest
.
getData
());
planEntity
.
setName
(
appointPlanName
);
planEntity
.
setDescription
(
appointPlanName
);
planEntity
.
setFaceGroupIndexCodes
(
faceGroupEntity
.
getIndexCode
());
planEntity
.
setCameraIndexCodes
(
planRecognBlackReq
.
getCameraIndexCodes
().
stream
().
collect
(
Collectors
.
joining
(
","
)));
planEntity
.
setRecognitionResourceIndexCodes
(
planRecognBlackReq
.
getRecognitionResourceIndexCodes
().
stream
().
collect
(
Collectors
.
joining
(
","
)));
planEntity
.
setRecognitionResourceType
(
RecognitionResourceEnum
.
SUPER_BRAIN
.
getDesc
());
planEntity
.
setThreshold
(
threshold
);
planEntity
.
setStatus
(
PlanStatusEnum
.
RUNNING
.
getValue
());
planEntity
.
setStartTime
(
new
Date
());
planEntity
.
setName
(
APPOINTMENT_PLAN
);
planEntity
.
setDescription
(
APPOINTMENT_PLAN_DESC
);
planEntity
.
setCreateTime
(
new
Date
());
planEntity
.
setCreateUserId
(
1L
);
planEntity
.
setCreateUserName
(
"admin"
);
facePlanService
.
save
(
planEntity
);
}
}
else
{
log
.
info
(
"
人员分组创建失败=>{}"
,
r
est
.
getMsg
());
log
.
info
(
"
预约监控计划创建失败=>{}"
,
planRecognBlackAddR
est
.
getMsg
());
}
}
else
{
log
.
info
(
"当天人员分组以存在,人员分组名称=>{}"
,
group
);
log
.
info
(
"预约监控计划已经存在=>{}"
,
JSON
.
toJSONString
(
planRecognBlackRest
.
getData
()));
//判断状态 如果失败 则重新下发
}
}
else
{
log
.
info
(
"
当天无预约人员,不创建监控计划=>{}"
,
DateUtils
.
getCurrStrDate
());
log
.
info
(
"
预约查找计划异常=>{}"
,
planRecognBlackRest
.
getMsg
());
}
return
Rest
.
ok
();
}
}
\ No newline at end of file
refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikFaceServiceImpl.java
View file @
df191e8b
...
...
@@ -111,16 +111,17 @@ public class HikFaceServiceImpl extends AbstractHikService implements IHikFaceSe
@Override
public
Rest
<
Boolean
>
faceSingleDel
(
FaceReq
faceReq
)
{
ArtemisConfig
config
=
getArtemisConfig
();
String
getCamsApi
=
ARTEMIS_PATH
+
"/api/
resource/v1/face/single/delete
"
;
String
getCamsApi
=
ARTEMIS_PATH
+
"/api/
frs/v1/face/deletion
"
;
path
.
put
(
protocol
,
getCamsApi
);
try
{
log
.
info
(
"face single delete req=>{}"
,
JSON
.
toJSONString
(
faceReq
));
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
faceReq
),
null
,
null
,
"application/json"
);
Rest
<
Boolean
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
Rest
<
Boolean
>>()
{
HikApiRest
<
Boolean
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApi
Rest
<
Boolean
>>()
{
});
if
(
rest
.
getCode
()
==
0
)
{
if
(
"0"
.
equals
(
rest
.
getCode
())
)
{
return
Rest
.
ok
(
rest
.
getData
());
}
else
{
log
.
info
(
"face single error resp=>{}"
,
respJson
);
log
.
info
(
"face single
delete
error resp=>{}"
,
respJson
);
return
Rest
.
fail
(
rest
.
getMsg
());
}
}
catch
(
Exception
e
)
{
...
...
@@ -136,9 +137,9 @@ public class HikFaceServiceImpl extends AbstractHikService implements IHikFaceSe
path
.
put
(
protocol
,
getCamsApi
);
try
{
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
faceGroupReq
),
null
,
null
,
"application/json"
);
Rest
<
List
<
FaceGroupDataInfo
>>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
Rest
<
List
<
FaceGroupDataInfo
>>>()
{
HikApiRest
<
List
<
FaceGroupDataInfo
>>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApi
Rest
<
List
<
FaceGroupDataInfo
>>>()
{
});
if
(
rest
.
getCode
()
==
0
)
{
if
(
"0"
.
equals
(
rest
.
getCode
())
)
{
return
Rest
.
ok
(
rest
.
getData
());
}
else
{
log
.
info
(
"face group list error resp=>{}"
,
respJson
);
...
...
@@ -160,9 +161,9 @@ public class HikFaceServiceImpl extends AbstractHikService implements IHikFaceSe
log
.
info
(
"face single req=>{}"
,
JSON
.
toJSONString
(
faceGroupReq
));
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
faceGroupReq
),
null
,
null
,
"application/json"
);
log
.
info
(
"face single resp=>{}"
,
respJson
);
Rest
<
FaceGroupDataInfo
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
Rest
<
FaceGroupDataInfo
>>()
{
HikApiRest
<
FaceGroupDataInfo
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApi
Rest
<
FaceGroupDataInfo
>>()
{
});
if
(
rest
.
getCode
()
==
0
)
{
if
(
"0"
.
equals
(
rest
.
getCode
())
)
{
return
Rest
.
ok
(
rest
.
getData
());
}
else
{
return
Rest
.
fail
(
rest
.
getMsg
());
...
...
@@ -180,9 +181,9 @@ public class HikFaceServiceImpl extends AbstractHikService implements IHikFaceSe
path
.
put
(
protocol
,
getCamsApi
);
try
{
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
faceGroupReq
),
null
,
null
,
"application/json"
);
Rest
<
Boolean
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
Rest
<
Boolean
>>()
{
HikApiRest
<
Boolean
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApi
Rest
<
Boolean
>>()
{
});
if
(
rest
.
getCode
()
==
0
)
{
if
(
"0"
.
equals
(
rest
.
getCode
())
)
{
return
Rest
.
ok
(
rest
.
getData
());
}
else
{
log
.
info
(
"face single error resp=>{}"
,
respJson
);
...
...
@@ -207,9 +208,9 @@ public class HikFaceServiceImpl extends AbstractHikService implements IHikFaceSe
path
.
put
(
protocol
,
getCamsApi
);
try
{
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
recognReq
),
null
,
null
,
"application/json"
);
Rest
<
List
<
ResRecognDataInfo
>>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
Rest
<
List
<
ResRecognDataInfo
>>>()
{
HikApiRest
<
List
<
ResRecognDataInfo
>>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApi
Rest
<
List
<
ResRecognDataInfo
>>>()
{
});
if
(
rest
.
getCode
()
==
0
)
{
if
(
"0"
.
equals
(
rest
.
getCode
())
)
{
return
Rest
.
ok
(
rest
.
getData
());
}
else
{
log
.
info
(
"face res list error resp=>{}"
,
respJson
);
...
...
@@ -250,9 +251,9 @@ public class HikFaceServiceImpl extends AbstractHikService implements IHikFaceSe
path
.
put
(
protocol
,
getCamsApi
);
try
{
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
recognReq
),
null
,
null
,
"application/json"
);
Rest
<
List
<
ResourceDataInfo
>>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
Rest
<
List
<
ResourceDataInfo
>>>()
{
HikApiRest
<
List
<
ResourceDataInfo
>>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApi
Rest
<
List
<
ResourceDataInfo
>>>()
{
});
if
(
rest
.
getCode
()
==
0
)
{
if
(
"0"
.
equals
(
rest
.
getCode
())
)
{
return
Rest
.
ok
(
rest
.
getData
());
}
else
{
log
.
info
(
"resource recognition list error resp=>{}"
,
respJson
);
...
...
refined-manager/src/main/java/com/mortals/xhx/module/realtime/dao/RealtimeDataflowStatDao.java
View file @
df191e8b
package
com.mortals.xhx.module.realtime.dao
;
import
com.mortals.framework.dao.ICRUDDao
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.xhx.module.realtime.model.RealtimeDataflowStatEntity
;
import
com.mortals.xhx.module.realtime.model.RealtimeDataflowStatQuery
;
import
java.util.List
;
/**
* 人员流量统计Dao
...
...
@@ -13,5 +16,7 @@ import java.util.List;
public
interface
RealtimeDataflowStatDao
extends
ICRUDDao
<
RealtimeDataflowStatEntity
,
Long
>{
String
SQLID_GET_STATLIST
=
"getStatList"
;
List
<
RealtimeDataflowStatEntity
>
getStatList
(
RealtimeDataflowStatQuery
query
,
PageInfo
pageInfo
);
}
refined-manager/src/main/java/com/mortals/xhx/module/realtime/dao/ibatis/RealtimeDataflowStatDaoImpl.java
View file @
df191e8b
package
com.mortals.xhx.module.realtime.dao.ibatis
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.ParamDto
;
import
com.mortals.xhx.module.realtime.model.RealtimeDataflowStatQuery
;
import
org.apache.ibatis.session.RowBounds
;
import
org.springframework.stereotype.Repository
;
import
com.mortals.xhx.module.realtime.dao.RealtimeDataflowStatDao
;
import
com.mortals.xhx.module.realtime.model.RealtimeDataflowStatEntity
;
...
...
@@ -17,5 +21,14 @@ import java.util.List;
public
class
RealtimeDataflowStatDaoImpl
extends
BaseCRUDDaoMybatis
<
RealtimeDataflowStatEntity
,
Long
>
implements
RealtimeDataflowStatDao
{
@Override
public
List
<
RealtimeDataflowStatEntity
>
getStatList
(
RealtimeDataflowStatQuery
query
,
PageInfo
pageInfo
)
{
ParamDto
queryParam
=
super
.
getQueryParam
(
query
);
if
(
pageInfo
.
getPrePageResult
()
==
-
1
)
{
return
getSqlSession
().
selectList
(
SQLID_GET_STATLIST
,
queryParam
);
}
else
{
RowBounds
rowBounds
=
new
RowBounds
(
pageInfo
.
getBeginIndex
(),
pageInfo
.
getPrePageResult
());
return
getSqlSession
().
selectList
(
SQLID_GET_STATLIST
,
queryParam
,
rowBounds
);
}
}
}
refined-manager/src/main/java/com/mortals/xhx/module/realtime/model/vo/RealtimeDataflowStatVo.java
View file @
df191e8b
...
...
@@ -31,4 +31,6 @@ public class RealtimeDataflowStatVo extends BaseEntityLong {
private
Integer
recoginzeSum
;
private
Integer
selected
;
}
\ No newline at end of file
refined-manager/src/main/java/com/mortals/xhx/module/realtime/service/RealtimeDataflowStatService.java
View file @
df191e8b
package
com.mortals.xhx.module.realtime.service
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.xhx.module.realtime.model.RealtimeDataflowStatEntity
;
import
java.util.List
;
/**
* RealtimeDataflowStatService
*
* 人员流量统计 service接口
*
* @author zxfei
* @date 2023-04-19
*/
public
interface
RealtimeDataflowStatService
extends
ICRUDService
<
RealtimeDataflowStatEntity
,
Long
>{
* RealtimeDataflowStatService
* <p>
* 人员流量统计 service接口
*
* @author zxfei
* @date 2023-04-19
*/
public
interface
RealtimeDataflowStatService
extends
ICRUDService
<
RealtimeDataflowStatEntity
,
Long
>
{
List
<
RealtimeDataflowStatEntity
>
getBillInfos
(
Long
siteId
,
Integer
datePattern
,
PageInfo
pageInfo
,
Context
context
);
}
\ No newline at end of file
refined-manager/src/main/java/com/mortals/xhx/module/realtime/service/impl/RealtimeDataflowStatServiceImpl.java
View file @
df191e8b
package
com.mortals.xhx.module.realtime.service.impl
;
import
com.mortals.framework.model.OrderCol
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.Result
;
import
com.mortals.xhx.common.code.DaySelectEnum
;
import
com.mortals.xhx.common.code.TimeUnitEnum
;
import
com.mortals.xhx.module.realtime.model.RealtimeDataflowStatQuery
;
import
org.springframework.stereotype.Service
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.exception.AppException
;
...
...
@@ -6,14 +13,95 @@ import com.mortals.framework.model.Context;
import
com.mortals.xhx.module.realtime.dao.RealtimeDataflowStatDao
;
import
com.mortals.xhx.module.realtime.model.RealtimeDataflowStatEntity
;
import
com.mortals.xhx.module.realtime.service.RealtimeDataflowStatService
;
import
org.springframework.util.ObjectUtils
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* RealtimeDataflowStatService
* 人员流量统计 service实现
*
* @author zxfei
* @date 2023-04-19
*/
* RealtimeDataflowStatService
* 人员流量统计 service实现
*
* @author zxfei
* @date 2023-04-19
*/
@Service
(
"realtimeDataflowStatService"
)
public
class
RealtimeDataflowStatServiceImpl
extends
AbstractCRUDServiceImpl
<
RealtimeDataflowStatDao
,
RealtimeDataflowStatEntity
,
Long
>
implements
RealtimeDataflowStatService
{
@Override
public
Result
<
RealtimeDataflowStatEntity
>
find
(
RealtimeDataflowStatEntity
query
,
PageInfo
pageInfo
,
Context
context
)
throws
AppException
{
Result
<
RealtimeDataflowStatEntity
>
statEntityResult
=
new
Result
<>();
if
(!
ObjectUtils
.
isEmpty
(
query
.
getSelected
()))
{
PageInfo
page
=
new
PageInfo
();
List
<
RealtimeDataflowStatEntity
>
billInfos
;
//转换日期
switch
(
DaySelectEnum
.
getByValue
(
query
.
getSelected
()))
{
case
今天:
page
.
setPrePageResult
(
1
);
billInfos
=
this
.
getBillInfos
(
query
.
getSiteId
(),
TimeUnitEnum
.
DAY
.
getValue
(),
page
,
context
);
statEntityResult
.
setList
(
billInfos
);
statEntityResult
.
setPageInfo
(
page
);
break
;
case
近七天:
page
.
setPrePageResult
(
7
);
billInfos
=
this
.
getBillInfos
(
query
.
getSiteId
(),
TimeUnitEnum
.
DAY
.
getValue
(),
page
,
context
);
statEntityResult
.
setList
(
billInfos
);
statEntityResult
.
setPageInfo
(
page
);
break
;
case
近三十天:
page
.
setPrePageResult
(
30
);
billInfos
=
this
.
getBillInfos
(
query
.
getSiteId
(),
TimeUnitEnum
.
DAY
.
getValue
(),
page
,
context
);
statEntityResult
.
setList
(
billInfos
);
statEntityResult
.
setPageInfo
(
page
);
break
;
case
近三月:
page
.
setPrePageResult
(
3
);
billInfos
=
this
.
getBillInfos
(
query
.
getSiteId
(),
TimeUnitEnum
.
MONTH
.
getValue
(),
page
,
context
);
statEntityResult
.
setList
(
billInfos
);
statEntityResult
.
setPageInfo
(
page
);
break
;
case
今年:
page
.
setPrePageResult
(
1
);
billInfos
=
this
.
getBillInfos
(
query
.
getSiteId
(),
TimeUnitEnum
.
YEAR
.
getValue
(),
page
,
context
);
statEntityResult
.
setList
(
billInfos
);
statEntityResult
.
setPageInfo
(
page
);
break
;
default
:
break
;
}
return
statEntityResult
;
}
else
{
return
super
.
find
(
query
,
pageInfo
,
context
);
}
}
@Override
public
List
<
RealtimeDataflowStatEntity
>
getBillInfos
(
Long
siteId
,
Integer
datePattern
,
PageInfo
pageInfo
,
Context
context
)
{
List
<
RealtimeDataflowStatEntity
>
statList
;
RealtimeDataflowStatQuery
query
=
new
RealtimeDataflowStatQuery
();
query
.
setSiteId
(
siteId
);
if
(
datePattern
==
TimeUnitEnum
.
HOUR
.
getValue
())
{
query
.
setGroupList
(
Arrays
.
asList
(
"hour"
));
query
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"hour"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"createTime"
)));
statList
=
this
.
getDao
().
getStatList
(
query
,
pageInfo
);
}
else
if
(
datePattern
==
TimeUnitEnum
.
DAY
.
getValue
())
{
query
.
setGroupList
(
Arrays
.
asList
(
"day"
));
query
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"day"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"createTime"
)));
statList
=
this
.
getDao
().
getStatList
(
query
,
pageInfo
);
}
else
if
(
datePattern
==
TimeUnitEnum
.
MONTH
.
getValue
())
{
query
.
setGroupList
(
Arrays
.
asList
(
"month"
));
query
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"month"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"createTime"
)));
statList
=
this
.
getDao
().
getStatList
(
query
,
pageInfo
);
}
else
if
(
datePattern
==
TimeUnitEnum
.
YEAR
.
getValue
())
{
query
.
setGroupList
(
Arrays
.
asList
(
"year"
));
query
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"year"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"createTime"
)));
statList
=
this
.
getDao
().
getStatList
(
query
,
pageInfo
);
}
else
{
throw
new
AppException
(
"不支持当前日期格式查询统计!"
);
}
return
statList
;
}
}
\ No newline at end of file
refined-manager/src/main/resources/sqlmap/module/realtime/RealtimeDataflowStatMapperExt.xml
0 → 100644
View file @
df191e8b
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper
namespace=
"com.mortals.xhx.module.realtime.dao.ibatis.RealtimeDataflowStatDaoImpl"
>
<!-- 获取统计列表 -->
<select
id=
"getStatList"
parameterType=
"paramDto"
resultMap=
"RealtimeDataflowStatEntity-Map"
>
select
<!-- 获取分组字段 -->
<if
test=
"groupList != null and !groupList.isEmpty()"
>
<foreach
collection=
"groupList"
open=
""
close=
""
index=
"index"
item=
"item"
>
${item},
</foreach>
</if>
id,
siteId,
siteName,
createTime,
year,
month,
day,
hour,
sum(IFNULL(a.personSum, 0)) personSum,
sum(IFNULL(a.strangerSum, 0)) strangerSum,
sum(IFNULL(a.recoginzeSum,0)) recoginzeSum
from mortals_xhx_realtime_dataflow_stat as a
<trim
suffixOverrides=
"where"
suffix=
""
>
where
<trim
prefixOverrides=
"and"
prefix=
""
>
<include
refid=
"_condition_"
/>
</trim>
</trim>
<include
refid=
"_group_by_"
/>
<include
refid=
"_orderCols_"
/>
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment