人脸设备对接
This commit is contained in:
parent
e7eef4e308
commit
b05f69ebca
55
src/main/java/com/zhgd/mqtt/server/DispatchHandler.java
Normal file
55
src/main/java/com/zhgd/mqtt/server/DispatchHandler.java
Normal file
@ -0,0 +1,55 @@
|
||||
package com.zhgd.mqtt.server;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
|
||||
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionSyncService;
|
||||
import net.sf.jsqlparser.statement.select.PlainSelect;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Component
|
||||
public class DispatchHandler {
|
||||
|
||||
@Resource
|
||||
private IXzHikvisionSyncService xzHikvisionSyncService;
|
||||
|
||||
@Resource
|
||||
private IWorkerAttendanceService workerAttendanceService;
|
||||
|
||||
public void message(String topic, Object payLoad) {
|
||||
// 下发人脸返回
|
||||
if (topic.contains("mqtt/face/") && topic.contains("/Ack")) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(payLoad.toString());
|
||||
if (jsonObject.getString("code").equals("200")) {
|
||||
JSONArray jsonArray = jsonObject.getJSONObject("info").getJSONArray("AddSucInfo");
|
||||
xzHikvisionSyncService.mqttAck(topic.split("/")[2], jsonArray, 1);
|
||||
JSONArray errorArray = jsonObject.getJSONObject("info").getJSONArray("AddErrInfo");
|
||||
xzHikvisionSyncService.mqttAck(topic.split("/")[2], errorArray, 0);
|
||||
}
|
||||
}
|
||||
// 人脸识别推送
|
||||
if (topic.contains("mqtt/face/") && topic.contains("/Rec")) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(payLoad.toString());
|
||||
workerAttendanceService.mqttRec(topic.split("/")[2], jsonObject);
|
||||
}
|
||||
|
||||
//正赢人脸下发返回
|
||||
if (topic.equals("face/createFace/response")) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(payLoad.toString());
|
||||
if (jsonObject.getString("code").equals("0")) {
|
||||
xzHikvisionSyncService.zyMqttAck(jsonObject.getString("sn"), jsonObject.getString("pers_id"), 1);
|
||||
} else {
|
||||
xzHikvisionSyncService.zyMqttAck(jsonObject.getString("sn"), jsonObject.getString("pers_id"), 0);
|
||||
}
|
||||
}
|
||||
// 正赢人脸识别推送
|
||||
if (topic.equals("face/response")) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(payLoad.toString());
|
||||
JSONObject body = jsonObject.getJSONObject("body");
|
||||
workerAttendanceService.zyMqttRec(body);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3,9 +3,12 @@ package com.zhgd.mqtt.server;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.zhgd.mybatis.DataScopeHandler;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
|
||||
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionSyncService;
|
||||
import lombok.Setter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
|
||||
import org.slf4j.Logger;
|
||||
@ -73,7 +76,7 @@ public class MqttConfig {
|
||||
private String consumerDefaultTopic;
|
||||
|
||||
@Resource
|
||||
private IXzHikvisionSyncService xzHikvisionSyncService;
|
||||
private DispatchHandler dispatchHandler;
|
||||
|
||||
/**
|
||||
* MQTT连接器选项
|
||||
@ -177,20 +180,15 @@ public class MqttConfig {
|
||||
@ServiceActivator(inputChannel = CHANNEL_NAME_IN)
|
||||
public MessageHandler handler() {
|
||||
return message -> {
|
||||
String topic = message.getHeaders().get("mqtt_receivedTopic").toString();
|
||||
LOGGER.info("消息主题:{}", topic);
|
||||
Object payLoad = message.getPayload();
|
||||
LOGGER.info("主题:{},消息接收到的数据:{}", message.getHeaders().get("mqtt_receivedTopic"),payLoad);
|
||||
LOGGER.error("===================={}============", payLoad);
|
||||
// if (topic.contains("mqtt/face/")) {
|
||||
// JSONObject jsonObject = JSONObject.parseObject(payLoad.toString());
|
||||
// if (jsonObject.getString("code").equals("200")) {
|
||||
// JSONArray jsonArray = jsonObject.getJSONObject("info").getJSONArray("AddSucInfo");
|
||||
// xzHikvisionSyncService.mqttAck(topic.split("/")[2], jsonArray, 1);
|
||||
// JSONArray errorArray = jsonObject.getJSONObject("info").getJSONArray("AddErrInfo");
|
||||
// xzHikvisionSyncService.mqttAck(topic.split("/")[2], errorArray, 0);
|
||||
// }
|
||||
// }
|
||||
try {
|
||||
String topic = message.getHeaders().get("mqtt_receivedTopic").toString();
|
||||
LOGGER.info("消息主题:{}", topic);
|
||||
Object payLoad = message.getPayload();
|
||||
LOGGER.info("主题:{},消息接收到的数据:{}", message.getHeaders().get("mqtt_receivedTopic"),payLoad);
|
||||
LOGGER.error("===================={}============", payLoad);
|
||||
dispatchHandler.message(topic, payLoad);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,4 +19,6 @@ import java.util.Date;
|
||||
public class DischargingPlatformAlarmVo extends DischargingPlatformCurrentData {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "卸料平台实时数据表外键")
|
||||
private java.lang.Long currentdataId;
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
,a.add_time alarm_time
|
||||
,c.dev_name
|
||||
,a.alarm_level
|
||||
,a.currentdata_id
|
||||
,CASE WHEN alarm_level=1 THEN 1 WHEN alarm_level=2 or alarm_level=3 THEN 2 ELSE 3 END as status
|
||||
from discharging_platform_alarm a
|
||||
INNER JOIN discharging_platform_current_data b ON a.currentdata_id=b.id
|
||||
|
||||
@ -40,7 +40,11 @@ public enum ProjectUfaceConfigSupplierTypeEnum {
|
||||
/**
|
||||
*海康门禁isc
|
||||
*/
|
||||
HIKVISION_ACCESS_CONTROL_ISC(9, "海康门禁isc");
|
||||
HIKVISION_ACCESS_CONTROL_ISC(9, "海康门禁isc"),
|
||||
/**
|
||||
*正赢
|
||||
*/
|
||||
ZYMQTT(11, "正赢");
|
||||
|
||||
private final Integer code;
|
||||
private final String desc;
|
||||
|
||||
@ -230,7 +230,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
//保存弹弓下发状态
|
||||
dangongWorkerFaceStatusService.deleteStatus(workerInfo);
|
||||
} else if (Objects.equals(ufaceConfig.getSupplierType(), MQTT.getCode())) {
|
||||
MqttFaceDevUtil.deletePerson(workerInfo, workerInfo.getUfaceDevId());
|
||||
MqttFaceDevUtil.deletePerson(workerInfo, list.stream().map(l -> l.getDevSn()).collect(Collectors.joining(",")));
|
||||
} else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) {
|
||||
ZyMqttFaceDevUtil.deletePerson(workerInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -316,6 +318,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
} else if (Objects.equals(ufaceConfig.getSupplierType(), MQTT.getCode())) {
|
||||
//保存弹弓下发状态
|
||||
MqttFaceDevUtil.addOrUpdatePerson(workerInfo, devBuilder.toString());
|
||||
} else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) {
|
||||
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
|
||||
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, devBuilder.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -508,6 +513,10 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
} else if (Objects.equals(ufaceConfig.getSupplierType(), MQTT.getCode())) {
|
||||
// mqtt下发人员
|
||||
MqttFaceDevUtil.addOrUpdatePerson(workerInfo, devSns);
|
||||
} else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) {
|
||||
// mqtt下发人员
|
||||
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
|
||||
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, devSns);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -43,7 +43,7 @@ public interface WorkerAttendancePresenceMapper extends BaseMapper<WorkerAttenda
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, Object>> getPresentWorkerIdListByRegion(@Param("regionId") Long regionId);
|
||||
List<Map<String, Object>> getPresentWorkerIdListByRegion(@Param("regionId") Long regionId, @Param("projectSn") String projectSn);
|
||||
|
||||
/**
|
||||
* 查询一段时间的在场人数趋势
|
||||
|
||||
@ -66,16 +66,19 @@
|
||||
quality_region qr
|
||||
join quality_region_to_uface_dev qrtud on qr.id = qrtud.quality_region_id
|
||||
join uface_dev ud on ud.id = qrtud.uface_dev_id
|
||||
JOIN worker_attendance a ON a.dev_sn=ud.dev_sn AND a.project_sn = ud.project_sn AND a.pass_type = 1 AND
|
||||
a.create_time = (
|
||||
SELECT MAX(create_time)
|
||||
FROM worker_attendance
|
||||
WHERE person_sn = a.person_sn
|
||||
AND project_sn = a.project_sn
|
||||
AND pass_type = 1
|
||||
)
|
||||
join worker_attendance_presence wap on wap.person_sn = a.person_sn
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
t1.dev_sn,
|
||||
t1.person_sn,
|
||||
t1.project_sn
|
||||
FROM
|
||||
worker_attendance t1
|
||||
JOIN ( SELECT person_sn, MAX( create_time ) create_time FROM worker_attendance WHERE pass_type = 1 AND project_sn = #{projectSn} GROUP BY person_sn ) t2
|
||||
ON t1.person_sn = t2.person_sn AND t1.create_time = t2.create_time
|
||||
) a ON a.dev_sn = ud.dev_sn
|
||||
AND a.project_sn = ud.project_sn
|
||||
join worker_info wi on wi.person_sn=a.person_sn
|
||||
join worker_attendance_presence wap on wap.person_sn = wi.person_sn
|
||||
WHERE qr.id=#{regionId}
|
||||
GROUP BY wi.id
|
||||
</select>
|
||||
|
||||
@ -38,5 +38,5 @@ public interface IWorkerAttendancePresenceService extends IService<WorkerAttenda
|
||||
|
||||
List<Map<String, Object>> getPresentByRegion(Map<String, Object> paramMap);
|
||||
|
||||
List<Map<String, Object>> getPresentWorkerIdListByRegion(Long regionId);
|
||||
List<Map<String, Object>> getPresentWorkerIdListByRegion(Long regionId, String projectSn);
|
||||
}
|
||||
|
||||
@ -312,4 +312,8 @@ public interface IWorkerAttendanceService extends IService<WorkerAttendance> {
|
||||
* @return
|
||||
*/
|
||||
List<PresentDayByMonthVo> getPresentDayByMonth(Map<String, Object> paramMap);
|
||||
|
||||
void mqttRec(String deviceSn, JSONObject obj);
|
||||
|
||||
void zyMqttRec(JSONObject obj);
|
||||
}
|
||||
|
||||
@ -91,8 +91,8 @@ public class WorkerAttendancePresenceServiceImpl extends ServiceImpl<WorkerAtten
|
||||
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getPresentWorkerIdListByRegion(Long regionId) {
|
||||
return workerAttendancePresenceMapper.getPresentWorkerIdListByRegion(regionId);
|
||||
public List<Map<String, Object>> getPresentWorkerIdListByRegion(Long regionId, String projectSn) {
|
||||
return workerAttendancePresenceMapper.getPresentWorkerIdListByRegion(regionId, projectSn);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1459,6 +1459,32 @@ status 状态码 String 1表示成功;其余表示失败
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mqttRec(String deviceSn, JSONObject obj) {
|
||||
JSONObject info = obj.getJSONObject("info");
|
||||
if (info.getString("VerifyStatus").equals("1")) {
|
||||
UploadAttendanceByDevDto dto = new UploadAttendanceByDevDto();
|
||||
dto.setDeviceId(deviceSn);
|
||||
dto.setBase64(info.getString("pic"));
|
||||
dto.setWorkerId(info.getString("customId"));
|
||||
dto.setTime(String.valueOf(DateUtil.parseDateTime(info.getString("time")).getTime()));
|
||||
dto.setDirection(info.getString("direction").equals("entr") ? "in" : "out");
|
||||
uploadAttendanceByDev(dto);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void zyMqttRec(JSONObject obj) {
|
||||
UfaceDev ufaceDev = ufaceDevMapper.selectOne(Wrappers.<UfaceDev>lambdaQuery().eq(UfaceDev::getDevSn, obj.getString("sn")));
|
||||
UploadAttendanceByDevDto dto = new UploadAttendanceByDevDto();
|
||||
dto.setDeviceId(obj.getString("sn"));
|
||||
dto.setBase64(obj.getString("img_data"));
|
||||
dto.setWorkerId(obj.getString("per_id"));
|
||||
dto.setTime(obj.getString("ext_sec") + "000");
|
||||
dto.setDirection(ufaceDev.getIsEnter() == 1 ? "in" : "out");
|
||||
uploadAttendanceByDev(dto);
|
||||
}
|
||||
|
||||
private void setTotalCount(List<SafetyPerformanceAnalysisVo> vos, SafetyPerformanceAnalysisVo vo) {
|
||||
Integer notPerformNum = 0;
|
||||
Integer inServiceNum = 0;
|
||||
|
||||
@ -307,7 +307,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
String regionIdForUface = MapUtils.getString(map, "regionIdForUface");
|
||||
List<Map<String, Object>> workerAttendList = new ArrayList<>();
|
||||
if (StrUtil.isNotBlank(regionIdForUface)) {
|
||||
workerAttendList = workerAttendancePresenceService.getPresentWorkerIdListByRegion(Long.valueOf(regionIdForUface));
|
||||
workerAttendList = workerAttendancePresenceService.getPresentWorkerIdListByRegion(Long.valueOf(regionIdForUface), MapUtils.getString(map, "projectSn"));
|
||||
for (Map<String, Object> param : workerAttendList) {
|
||||
Object minTime = param.get("minTime");
|
||||
if (minTime != null) {
|
||||
|
||||
@ -70,4 +70,6 @@ public interface IXzHikvisionSyncService extends IService<XzHikvisionSync> {
|
||||
void retry(Map<String, Object> paramMap) throws Exception;
|
||||
|
||||
void mqttAck(String deviceSn, JSONArray workerIds, Integer isSuccess);
|
||||
|
||||
void zyMqttAck(String deviceSn, String workerId, Integer isSuccess);
|
||||
}
|
||||
|
||||
@ -273,6 +273,18 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void zyMqttAck(String deviceSn, String workerId, Integer isSuccess) {
|
||||
List<XzHikvisionSync> syncList = new ArrayList<>();
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(workerId);
|
||||
if (workerInfo != null) {
|
||||
build(syncList, workerInfo, deviceSn, isSuccess);
|
||||
}
|
||||
if (syncList.size() > 0) {
|
||||
this.saveBatch(syncList);
|
||||
}
|
||||
}
|
||||
|
||||
private void build(List<XzHikvisionSync> syncList, WorkerInfo workerInfo, String deviceSn, Integer isSuccess) {
|
||||
XzHikvisionSync sync = new XzHikvisionSync();
|
||||
sync.setProjectSn(workerInfo.getProjectSn());
|
||||
@ -285,6 +297,5 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
sync.setUpdateDate(new Date());
|
||||
sync.setBigType(1);
|
||||
syncList.add(sync);
|
||||
syncList.add(sync);
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,6 +61,7 @@ import net.javacrumbs.shedlock.core.SchedulerLock;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -74,6 +75,7 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.zhgd.xmgl.modules.project.enums.ProjectUfaceConfigSupplierTypeEnum.MQTT;
|
||||
import static com.zhgd.xmgl.modules.project.enums.ProjectUfaceConfigSupplierTypeEnum.ZYMQTT;
|
||||
|
||||
/**
|
||||
* @program: wisdomSite
|
||||
@ -155,6 +157,9 @@ public class WorkerTask {
|
||||
@Autowired
|
||||
private ProjectUfaceConfigMapper projectUfaceConfigMapper;
|
||||
|
||||
@Value("${basePath}")
|
||||
private String basePath;
|
||||
|
||||
/**
|
||||
* 定时修改用户码状态
|
||||
*/
|
||||
@ -967,4 +972,28 @@ public class WorkerTask {
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 正赢 MQTT同步下发人员信息
|
||||
*/
|
||||
@Scheduled(cron = "0 0/15 * * * ?")
|
||||
@SchedulerLock(name = "zyMqttIssuedWorkerInfo", lockAtMostFor = 1000 * 55, lockAtLeastFor = 1000 * 55)
|
||||
@RequestMapping("zyMqttIssuedWorkerInfo")
|
||||
public void zyMqttIssuedWorkerInfo() {
|
||||
List<ProjectUfaceConfig> configList = projectUfaceConfigMapper.selectList(Wrappers.<ProjectUfaceConfig>lambdaQuery()
|
||||
.eq(ProjectUfaceConfig::getSupplierType, ZYMQTT.getCode())
|
||||
.eq(ProjectUfaceConfig::getIssueDev, 1));
|
||||
for (ProjectUfaceConfig projectUfaceConfig : configList) {
|
||||
List<XzHikvisionSync> list = xzHikvisionSyncService.list(Wrappers.<XzHikvisionSync>lambdaQuery()
|
||||
.eq(XzHikvisionSync::getProjectSn, projectUfaceConfig.getProjectSn())
|
||||
.eq(XzHikvisionSync::getIsSuccess, 0)
|
||||
.eq(XzHikvisionSync::getType, 1)
|
||||
.eq(XzHikvisionSync::getBigType, 1));
|
||||
for (XzHikvisionSync sync : list) {
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(sync.getWhoId());
|
||||
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
|
||||
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, sync.getDeviceSn());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@ -17,6 +18,7 @@ import java.util.*;
|
||||
* MQTT下发人员信息
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class MqttFaceDevUtil {
|
||||
|
||||
@Value("${basePath}")
|
||||
|
||||
82
src/main/java/com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java
Normal file
82
src/main/java/com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java
Normal file
@ -0,0 +1,82 @@
|
||||
package com.zhgd.xmgl.util;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zhgd.jeecg.common.util.SpringContextUtils;
|
||||
import com.zhgd.mqtt.server.IMqttSender;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 中水/正赢 MQTT下发人员信息
|
||||
*/
|
||||
@Slf4j
|
||||
public class ZyMqttFaceDevUtil {
|
||||
|
||||
/**
|
||||
* 添加修改人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param devSn
|
||||
*/
|
||||
public static void addOrUpdatePerson(WorkerInfo workerInfo, String devSn) {
|
||||
Map<String, Object> map = build(workerInfo);
|
||||
String payload = JSON.toJSONString(map);
|
||||
if (StrUtil.isNotBlank(devSn)) {
|
||||
String[] splitArr = StringUtils.split(devSn, ",");
|
||||
for (int i = 0; i < splitArr.length; i++) {
|
||||
String ds = splitArr[i];
|
||||
sendByDevSn(ds, payload);
|
||||
}
|
||||
} else {
|
||||
sendAll(payload);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除人员
|
||||
*
|
||||
* @param workerInfo
|
||||
*/
|
||||
public static void deletePerson(WorkerInfo workerInfo) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("client_id", "deleteFace");
|
||||
map.put("cmd", "delete_face");
|
||||
map.put("per_id", workerInfo.getId().toString());
|
||||
String payload = JSON.toJSONString(map);
|
||||
sendAll(payload);
|
||||
}
|
||||
|
||||
private static void sendByDevSn(String devSn, String payload) {
|
||||
String topic = "face/" + devSn + "/request";
|
||||
log.info("发送主题信息:{},主题为:{}", payload, topic);
|
||||
IMqttSender mqttSender = SpringContextUtils.getBean(IMqttSender.class);
|
||||
mqttSender.sendToMqtt(topic, 2, payload);
|
||||
}
|
||||
|
||||
private static void sendAll(String payload) {
|
||||
String topic = "face/request";
|
||||
log.info("发送主题信息:{},主题为:{}", payload, topic);
|
||||
IMqttSender mqttSender = SpringContextUtils.getBean(IMqttSender.class);
|
||||
mqttSender.sendToMqtt(topic, 2, payload);
|
||||
}
|
||||
|
||||
private static Map<String, Object> build(WorkerInfo workerInfo) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("client_id", "createFace");
|
||||
map.put("cmd", "update_face_ex");
|
||||
map.put("per_id", workerInfo.getId().toString());
|
||||
map.put("per_name", workerInfo.getWorkerName());
|
||||
map.put("img_data", Base64Util.getFileToBase64(workerInfo.getFieldAcquisitionUrl()));
|
||||
map.put("idcardper", workerInfo.getIdCard());
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@ -68,10 +68,10 @@ mqtt.password=public
|
||||
#mqtt.url=ws://139.159.226.224:8083/mqtt
|
||||
mqtt.url=tcp://jxj.zhgdyun.com:1883
|
||||
# 消费者和提供者对应的客户端id以及默认topic
|
||||
mqtt.producer.clientId=mqttProd
|
||||
mqtt.producer.clientId=mqttProd0729
|
||||
mqtt.producer.defaultTopic=topic1
|
||||
mqtt.consumer.clientId=mqttConsumer
|
||||
mqtt.consumer.defaultTopic=topic1,mqtt/face/+/Ack
|
||||
mqtt.consumer.clientId=mqttConsumer0729
|
||||
mqtt.consumer.defaultTopic=topic1,mqtt/face/+/Ack,mqtt/face/+/Rec,face/createFace/response,face/response
|
||||
#mqtt.consumer.defaultTopic=/P114101/202203010084
|
||||
#server.http2.enabled=true
|
||||
#server.ssl.key-store=classpath:www.cscec1b1.com.jks
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user