人脸设备对接

This commit is contained in:
pengjie 2025-07-31 11:07:51 +08:00
parent e7eef4e308
commit b05f69ebca
19 changed files with 263 additions and 35 deletions

View 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);
}
}
}

View File

@ -3,9 +3,12 @@ package com.zhgd.mqtt.server;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.zhgd.mybatis.DataScopeHandler;
import com.zhgd.xmgl.constant.Cts; 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.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionSyncService; import com.zhgd.xmgl.modules.xz.service.IXzHikvisionSyncService;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -73,7 +76,7 @@ public class MqttConfig {
private String consumerDefaultTopic; private String consumerDefaultTopic;
@Resource @Resource
private IXzHikvisionSyncService xzHikvisionSyncService; private DispatchHandler dispatchHandler;
/** /**
* MQTT连接器选项 * MQTT连接器选项
@ -177,20 +180,15 @@ public class MqttConfig {
@ServiceActivator(inputChannel = CHANNEL_NAME_IN) @ServiceActivator(inputChannel = CHANNEL_NAME_IN)
public MessageHandler handler() { public MessageHandler handler() {
return message -> { return message -> {
String topic = message.getHeaders().get("mqtt_receivedTopic").toString(); try {
LOGGER.info("消息主题:{}", topic); String topic = message.getHeaders().get("mqtt_receivedTopic").toString();
Object payLoad = message.getPayload(); LOGGER.info("消息主题:{}", topic);
LOGGER.info("主题:{},消息接收到的数据:{}", message.getHeaders().get("mqtt_receivedTopic"),payLoad); Object payLoad = message.getPayload();
LOGGER.error("===================={}============", payLoad); LOGGER.info("主题:{},消息接收到的数据:{}", message.getHeaders().get("mqtt_receivedTopic"),payLoad);
// if (topic.contains("mqtt/face/")) { LOGGER.error("===================={}============", payLoad);
// JSONObject jsonObject = JSONObject.parseObject(payLoad.toString()); dispatchHandler.message(topic, payLoad);
// if (jsonObject.getString("code").equals("200")) { } catch (Exception e) {
// 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);
// }
// }
}; };
} }
} }

View File

@ -19,4 +19,6 @@ import java.util.Date;
public class DischargingPlatformAlarmVo extends DischargingPlatformCurrentData { public class DischargingPlatformAlarmVo extends DischargingPlatformCurrentData {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "卸料平台实时数据表外键")
private java.lang.Long currentdataId;
} }

View File

@ -18,6 +18,7 @@
,a.add_time alarm_time ,a.add_time alarm_time
,c.dev_name ,c.dev_name
,a.alarm_level ,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 ,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 from discharging_platform_alarm a
INNER JOIN discharging_platform_current_data b ON a.currentdata_id=b.id INNER JOIN discharging_platform_current_data b ON a.currentdata_id=b.id

View File

@ -40,7 +40,11 @@ public enum ProjectUfaceConfigSupplierTypeEnum {
/** /**
*海康门禁isc *海康门禁isc
*/ */
HIKVISION_ACCESS_CONTROL_ISC(9, "海康门禁isc"); HIKVISION_ACCESS_CONTROL_ISC(9, "海康门禁isc"),
/**
*正赢
*/
ZYMQTT(11, "正赢");
private final Integer code; private final Integer code;
private final String desc; private final String desc;

View File

@ -230,7 +230,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
//保存弹弓下发状态 //保存弹弓下发状态
dangongWorkerFaceStatusService.deleteStatus(workerInfo); dangongWorkerFaceStatusService.deleteStatus(workerInfo);
} else if (Objects.equals(ufaceConfig.getSupplierType(), MQTT.getCode())) { } 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())) { } else if (Objects.equals(ufaceConfig.getSupplierType(), MQTT.getCode())) {
//保存弹弓下发状态 //保存弹弓下发状态
MqttFaceDevUtil.addOrUpdatePerson(workerInfo, devBuilder.toString()); 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())) { } else if (Objects.equals(ufaceConfig.getSupplierType(), MQTT.getCode())) {
// mqtt下发人员 // mqtt下发人员
MqttFaceDevUtil.addOrUpdatePerson(workerInfo, devSns); MqttFaceDevUtil.addOrUpdatePerson(workerInfo, devSns);
} else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) {
// mqtt下发人员
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, devSns);
} }
} }

View File

@ -43,7 +43,7 @@ public interface WorkerAttendancePresenceMapper extends BaseMapper<WorkerAttenda
* *
* @return * @return
*/ */
List<Map<String, Object>> getPresentWorkerIdListByRegion(@Param("regionId") Long regionId); List<Map<String, Object>> getPresentWorkerIdListByRegion(@Param("regionId") Long regionId, @Param("projectSn") String projectSn);
/** /**
* 查询一段时间的在场人数趋势 * 查询一段时间的在场人数趋势

View File

@ -66,16 +66,19 @@
quality_region qr quality_region qr
join quality_region_to_uface_dev qrtud on qr.id = qrtud.quality_region_id 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 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 LEFT JOIN (
a.create_time = ( SELECT
SELECT MAX(create_time) t1.dev_sn,
FROM worker_attendance t1.person_sn,
WHERE person_sn = a.person_sn t1.project_sn
AND project_sn = a.project_sn FROM
AND pass_type = 1 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
join worker_attendance_presence wap on wap.person_sn = a.person_sn 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_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} WHERE qr.id=#{regionId}
GROUP BY wi.id GROUP BY wi.id
</select> </select>

View File

@ -38,5 +38,5 @@ public interface IWorkerAttendancePresenceService extends IService<WorkerAttenda
List<Map<String, Object>> getPresentByRegion(Map<String, Object> paramMap); 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);
} }

View File

@ -312,4 +312,8 @@ public interface IWorkerAttendanceService extends IService<WorkerAttendance> {
* @return * @return
*/ */
List<PresentDayByMonthVo> getPresentDayByMonth(Map<String, Object> paramMap); List<PresentDayByMonthVo> getPresentDayByMonth(Map<String, Object> paramMap);
void mqttRec(String deviceSn, JSONObject obj);
void zyMqttRec(JSONObject obj);
} }

View File

@ -91,8 +91,8 @@ public class WorkerAttendancePresenceServiceImpl extends ServiceImpl<WorkerAtten
@Override @Override
public List<Map<String, Object>> getPresentWorkerIdListByRegion(Long regionId) { public List<Map<String, Object>> getPresentWorkerIdListByRegion(Long regionId, String projectSn) {
return workerAttendancePresenceMapper.getPresentWorkerIdListByRegion(regionId); return workerAttendancePresenceMapper.getPresentWorkerIdListByRegion(regionId, projectSn);
} }
} }

View File

@ -1459,6 +1459,32 @@ status 状态码 String 1表示成功其余表示失败
return list; 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) { private void setTotalCount(List<SafetyPerformanceAnalysisVo> vos, SafetyPerformanceAnalysisVo vo) {
Integer notPerformNum = 0; Integer notPerformNum = 0;
Integer inServiceNum = 0; Integer inServiceNum = 0;

View File

@ -307,7 +307,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
String regionIdForUface = MapUtils.getString(map, "regionIdForUface"); String regionIdForUface = MapUtils.getString(map, "regionIdForUface");
List<Map<String, Object>> workerAttendList = new ArrayList<>(); List<Map<String, Object>> workerAttendList = new ArrayList<>();
if (StrUtil.isNotBlank(regionIdForUface)) { 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) { for (Map<String, Object> param : workerAttendList) {
Object minTime = param.get("minTime"); Object minTime = param.get("minTime");
if (minTime != null) { if (minTime != null) {

View File

@ -70,4 +70,6 @@ public interface IXzHikvisionSyncService extends IService<XzHikvisionSync> {
void retry(Map<String, Object> paramMap) throws Exception; void retry(Map<String, Object> paramMap) throws Exception;
void mqttAck(String deviceSn, JSONArray workerIds, Integer isSuccess); void mqttAck(String deviceSn, JSONArray workerIds, Integer isSuccess);
void zyMqttAck(String deviceSn, String workerId, Integer isSuccess);
} }

View File

@ -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) { private void build(List<XzHikvisionSync> syncList, WorkerInfo workerInfo, String deviceSn, Integer isSuccess) {
XzHikvisionSync sync = new XzHikvisionSync(); XzHikvisionSync sync = new XzHikvisionSync();
sync.setProjectSn(workerInfo.getProjectSn()); sync.setProjectSn(workerInfo.getProjectSn());
@ -285,6 +297,5 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
sync.setUpdateDate(new Date()); sync.setUpdateDate(new Date());
sync.setBigType(1); sync.setBigType(1);
syncList.add(sync); syncList.add(sync);
syncList.add(sync);
} }
} }

View File

@ -61,6 +61,7 @@ import net.javacrumbs.shedlock.core.SchedulerLock;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -74,6 +75,7 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.zhgd.xmgl.modules.project.enums.ProjectUfaceConfigSupplierTypeEnum.MQTT; import static com.zhgd.xmgl.modules.project.enums.ProjectUfaceConfigSupplierTypeEnum.MQTT;
import static com.zhgd.xmgl.modules.project.enums.ProjectUfaceConfigSupplierTypeEnum.ZYMQTT;
/** /**
* @program: wisdomSite * @program: wisdomSite
@ -155,6 +157,9 @@ public class WorkerTask {
@Autowired @Autowired
private ProjectUfaceConfigMapper projectUfaceConfigMapper; 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());
}
}
}
} }

View File

@ -10,6 +10,7 @@ import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.*; import java.util.*;
@ -17,6 +18,7 @@ import java.util.*;
* MQTT下发人员信息 * MQTT下发人员信息
*/ */
@Slf4j @Slf4j
@Component
public class MqttFaceDevUtil { public class MqttFaceDevUtil {
@Value("${basePath}") @Value("${basePath}")

View 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;
}
}

View File

@ -68,10 +68,10 @@ mqtt.password=public
#mqtt.url=ws://139.159.226.224:8083/mqtt #mqtt.url=ws://139.159.226.224:8083/mqtt
mqtt.url=tcp://jxj.zhgdyun.com:1883 mqtt.url=tcp://jxj.zhgdyun.com:1883
# 消费者和提供者对应的客户端id以及默认topic # 消费者和提供者对应的客户端id以及默认topic
mqtt.producer.clientId=mqttProd mqtt.producer.clientId=mqttProd0729
mqtt.producer.defaultTopic=topic1 mqtt.producer.defaultTopic=topic1
mqtt.consumer.clientId=mqttConsumer mqtt.consumer.clientId=mqttConsumer0729
mqtt.consumer.defaultTopic=topic1,mqtt/face/+/Ack mqtt.consumer.defaultTopic=topic1,mqtt/face/+/Ack,mqtt/face/+/Rec,face/createFace/response,face/response
#mqtt.consumer.defaultTopic=/P114101/202203010084 #mqtt.consumer.defaultTopic=/P114101/202203010084
#server.http2.enabled=true #server.http2.enabled=true
#server.ssl.key-store=classpath:www.cscec1b1.com.jks #server.ssl.key-store=classpath:www.cscec1b1.com.jks