From b05f69ebcaa880d76f2dd218f1ee9b4a93f6aa3e Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Thu, 31 Jul 2025 11:07:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E8=84=B8=E8=AE=BE=E5=A4=87=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhgd/mqtt/server/DispatchHandler.java | 55 +++++++++++++ .../java/com/zhgd/mqtt/server/MqttConfig.java | 28 +++---- .../entity/vo/DischargingPlatformAlarmVo.java | 2 + .../xml/DischargingPlatformAlarmMapper.xml | 1 + .../ProjectUfaceConfigSupplierTypeEnum.java | 6 +- .../impl/ProjectUfaceConfigServiceImpl.java | 11 ++- .../WorkerAttendancePresenceMapper.java | 2 +- .../xml/WorkerAttendancePresenceMapper.xml | 21 +++-- .../IWorkerAttendancePresenceService.java | 2 +- .../service/IWorkerAttendanceService.java | 4 + .../WorkerAttendancePresenceServiceImpl.java | 4 +- .../impl/WorkerAttendanceServiceImpl.java | 26 ++++++ .../service/impl/WorkerInfoServiceImpl.java | 2 +- .../xz/service/IXzHikvisionSyncService.java | 2 + .../impl/XzHikvisionSyncServiceImpl.java | 13 ++- .../java/com/zhgd/xmgl/task/WorkerTask.java | 29 +++++++ .../com/zhgd/xmgl/util/MqttFaceDevUtil.java | 2 + .../com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java | 82 +++++++++++++++++++ src/main/resources/application.properties | 6 +- 19 files changed, 263 insertions(+), 35 deletions(-) create mode 100644 src/main/java/com/zhgd/mqtt/server/DispatchHandler.java create mode 100644 src/main/java/com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java diff --git a/src/main/java/com/zhgd/mqtt/server/DispatchHandler.java b/src/main/java/com/zhgd/mqtt/server/DispatchHandler.java new file mode 100644 index 000000000..17bc7392b --- /dev/null +++ b/src/main/java/com/zhgd/mqtt/server/DispatchHandler.java @@ -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); + } + } +} diff --git a/src/main/java/com/zhgd/mqtt/server/MqttConfig.java b/src/main/java/com/zhgd/mqtt/server/MqttConfig.java index 9206b30c2..a29759ec7 100644 --- a/src/main/java/com/zhgd/mqtt/server/MqttConfig.java +++ b/src/main/java/com/zhgd/mqtt/server/MqttConfig.java @@ -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) { + } }; } } diff --git a/src/main/java/com/zhgd/xmgl/modules/discharging/entity/vo/DischargingPlatformAlarmVo.java b/src/main/java/com/zhgd/xmgl/modules/discharging/entity/vo/DischargingPlatformAlarmVo.java index 053906101..cad88de49 100644 --- a/src/main/java/com/zhgd/xmgl/modules/discharging/entity/vo/DischargingPlatformAlarmVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/discharging/entity/vo/DischargingPlatformAlarmVo.java @@ -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; } diff --git a/src/main/java/com/zhgd/xmgl/modules/discharging/mapper/xml/DischargingPlatformAlarmMapper.xml b/src/main/java/com/zhgd/xmgl/modules/discharging/mapper/xml/DischargingPlatformAlarmMapper.xml index c39a93cce..2e032bd05 100644 --- a/src/main/java/com/zhgd/xmgl/modules/discharging/mapper/xml/DischargingPlatformAlarmMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/discharging/mapper/xml/DischargingPlatformAlarmMapper.xml @@ -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 diff --git a/src/main/java/com/zhgd/xmgl/modules/project/enums/ProjectUfaceConfigSupplierTypeEnum.java b/src/main/java/com/zhgd/xmgl/modules/project/enums/ProjectUfaceConfigSupplierTypeEnum.java index 461aac93c..3157bfdbf 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/enums/ProjectUfaceConfigSupplierTypeEnum.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/enums/ProjectUfaceConfigSupplierTypeEnum.java @@ -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; diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java index 1711d4bd6..904b19195 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java @@ -230,7 +230,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl 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> getPresentWorkerIdListByRegion(@Param("regionId") Long regionId); + List> getPresentWorkerIdListByRegion(@Param("regionId") Long regionId, @Param("projectSn") String projectSn); /** * 查询一段时间的在场人数趋势 diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendancePresenceMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendancePresenceMapper.xml index debbda5c5..61b8bc3ed 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendancePresenceMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendancePresenceMapper.xml @@ -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 diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendancePresenceService.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendancePresenceService.java index e89033a01..533bd8b27 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendancePresenceService.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendancePresenceService.java @@ -38,5 +38,5 @@ public interface IWorkerAttendancePresenceService extends IService> getPresentByRegion(Map paramMap); - List> getPresentWorkerIdListByRegion(Long regionId); + List> getPresentWorkerIdListByRegion(Long regionId, String projectSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java index 31b9ae4dd..0c588ea88 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java @@ -312,4 +312,8 @@ public interface IWorkerAttendanceService extends IService { * @return */ List getPresentDayByMonth(Map paramMap); + + void mqttRec(String deviceSn, JSONObject obj); + + void zyMqttRec(JSONObject obj); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendancePresenceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendancePresenceServiceImpl.java index ba95fe334..ec3e8c4ca 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendancePresenceServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendancePresenceServiceImpl.java @@ -91,8 +91,8 @@ public class WorkerAttendancePresenceServiceImpl extends ServiceImpl> getPresentWorkerIdListByRegion(Long regionId) { - return workerAttendancePresenceMapper.getPresentWorkerIdListByRegion(regionId); + public List> getPresentWorkerIdListByRegion(Long regionId, String projectSn) { + return workerAttendancePresenceMapper.getPresentWorkerIdListByRegion(regionId, projectSn); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java index 04768d25d..8cba9c2ac 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java @@ -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.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 vos, SafetyPerformanceAnalysisVo vo) { Integer notPerformNum = 0; Integer inServiceNum = 0; diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index cba1221e4..96ca1f0d1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -307,7 +307,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl> 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 param : workerAttendList) { Object minTime = param.get("minTime"); if (minTime != null) { diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzHikvisionSyncService.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzHikvisionSyncService.java index 32af3d9e4..6abe09975 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzHikvisionSyncService.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzHikvisionSyncService.java @@ -70,4 +70,6 @@ public interface IXzHikvisionSyncService extends IService { void retry(Map paramMap) throws Exception; void mqttAck(String deviceSn, JSONArray workerIds, Integer isSuccess); + + void zyMqttAck(String deviceSn, String workerId, Integer isSuccess); } diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java index 3c673a702..fb01de573 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java @@ -273,6 +273,18 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl 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 syncList, WorkerInfo workerInfo, String deviceSn, Integer isSuccess) { XzHikvisionSync sync = new XzHikvisionSync(); sync.setProjectSn(workerInfo.getProjectSn()); @@ -285,6 +297,5 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl configList = projectUfaceConfigMapper.selectList(Wrappers.lambdaQuery() + .eq(ProjectUfaceConfig::getSupplierType, ZYMQTT.getCode()) + .eq(ProjectUfaceConfig::getIssueDev, 1)); + for (ProjectUfaceConfig projectUfaceConfig : configList) { + List list = xzHikvisionSyncService.list(Wrappers.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()); + } + } + } } diff --git a/src/main/java/com/zhgd/xmgl/util/MqttFaceDevUtil.java b/src/main/java/com/zhgd/xmgl/util/MqttFaceDevUtil.java index d5d17ac74..de19fa197 100644 --- a/src/main/java/com/zhgd/xmgl/util/MqttFaceDevUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/MqttFaceDevUtil.java @@ -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}") diff --git a/src/main/java/com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java b/src/main/java/com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java new file mode 100644 index 000000000..24e7c9703 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java @@ -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 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 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 build(WorkerInfo workerInfo) { + Map 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; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 2d6098885..d6977110f 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -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