青海中水北方修改

This commit is contained in:
pengjie 2025-08-27 15:19:43 +08:00
parent 38c35543a0
commit 27182d10cc
12 changed files with 259 additions and 100 deletions

View File

@ -49,6 +49,13 @@ public class DispatchHandler {
xzHikvisionSyncService.zyMqttAck(jsonObject.getString("sn"), jsonObject.getString("pers_id"), 0); xzHikvisionSyncService.zyMqttAck(jsonObject.getString("sn"), jsonObject.getString("pers_id"), 0);
} }
} }
//正赢删除人脸下发返回
if (topic.equals("face/deleteFace/response")) {
JSONObject jsonObject = JSONObject.parseObject(payLoad.toString());
if (jsonObject.getString("code").equals("0")) {
xzHikvisionSyncService.zyDelMqttAck(jsonObject.getString("sn"), jsonObject.getString("pers_id"));
}
}
// 正赢人脸识别推送 // 正赢人脸识别推送
if (topic.equals("face/response")) { if (topic.equals("face/response")) {
JSONObject jsonObject = JSONObject.parseObject(payLoad.toString()); JSONObject jsonObject = JSONObject.parseObject(payLoad.toString());

View File

@ -45,6 +45,8 @@ public interface IProjectUfaceConfigService extends IService<ProjectUfaceConfig>
*/ */
void deleteWorkerInfo(WorkerInfo workerInfo); void deleteWorkerInfo(WorkerInfo workerInfo);
void deleteWorkerInfo(WorkerInfo workerInfo, String devSns);
/** /**
* 更新人员权限 * 更新人员权限
* *

View File

@ -172,14 +172,16 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
String ufaceDevId = workerInfo.getUfaceDevId(); String ufaceDevId = workerInfo.getUfaceDevId();
Map<String, Object> param = new HashMap<>(16); Map<String, Object> param = new HashMap<>(16);
param.put("projectSn", workerInfo.getProjectSn()); param.put("projectSn", workerInfo.getProjectSn());
String zero = "0"; // String zero = "0";
if (zero.equals(ufaceDevId)) { // if (zero.equals(ufaceDevId)) {
workerInfo.setUfaceDevId(null); // workerInfo.setUfaceDevId(null);
} // }
if (StringUtils.isNotEmpty(ufaceDevId)) { if (StringUtils.isNotEmpty(ufaceDevId)) {
param.put("registerType", workerInfo.getRegisterType()); param.put("registerType", workerInfo.getRegisterType());
param.put("accountType", workerInfo.getAccountType()); param.put("accountType", workerInfo.getAccountType());
param.put("devIds", ufaceDevId); param.put("devIds", ufaceDevId);
} else {
param.put("devIds", "0");
} }
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param); List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param);
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
@ -233,7 +235,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
} else if (Objects.equals(ufaceConfig.getSupplierType(), MQTT.getCode())) { } else if (Objects.equals(ufaceConfig.getSupplierType(), MQTT.getCode())) {
MqttFaceDevUtil.deletePerson(workerInfo, list.stream().map(l -> l.getDevSn()).collect(Collectors.joining(","))); MqttFaceDevUtil.deletePerson(workerInfo, list.stream().map(l -> l.getDevSn()).collect(Collectors.joining(",")));
} else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) { } else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) {
ZyMqttFaceDevUtil.deletePerson(workerInfo); ZyMqttFaceDevUtil.deletePerson(workerInfo, null);
xzHikvisionSyncMapper.delete(Wrappers.<XzHikvisionSync>lambdaQuery() xzHikvisionSyncMapper.delete(Wrappers.<XzHikvisionSync>lambdaQuery()
.eq(XzHikvisionSync::getType, 1) .eq(XzHikvisionSync::getType, 1)
.eq(XzHikvisionSync::getWhoId, workerInfo.getId())); .eq(XzHikvisionSync::getWhoId, workerInfo.getId()));
@ -242,6 +244,14 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
} }
} }
@Override
public void deleteWorkerInfo(WorkerInfo workerInfo, String devSns) {
ZyMqttFaceDevUtil.deletePerson(workerInfo, devSns);
xzHikvisionSyncMapper.delete(Wrappers.<XzHikvisionSync>lambdaQuery()
.eq(XzHikvisionSync::getType, 1)
.eq(XzHikvisionSync::getWhoId, workerInfo.getId()));
}
@Override @Override
public void updateWorkerInfo(WorkerInfo workerInfo, WorkerInfo oldWorkerInfo) { public void updateWorkerInfo(WorkerInfo workerInfo, WorkerInfo oldWorkerInfo) {
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>(); QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
@ -263,14 +273,16 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
hasDev = false; hasDev = false;
workerInfo.setUfaceDevId(oldWorkerInfo.getUfaceDevId()); workerInfo.setUfaceDevId(oldWorkerInfo.getUfaceDevId());
} }
String top = "0"; // String top = "0";
if (top.equals(workerInfo.getUfaceDevId())) { // if (top.equals(workerInfo.getUfaceDevId())) {
workerInfo.setUfaceDevId(null); // workerInfo.setUfaceDevId(null);
} // }
if (StringUtils.isNotEmpty(workerInfo.getUfaceDevId())) { if (StringUtils.isNotEmpty(workerInfo.getUfaceDevId())) {
param.put("registerType", workerInfo.getRegisterType()); param.put("registerType", workerInfo.getRegisterType());
param.put("accountType", 1); param.put("accountType", 1);
param.put("devIds", workerInfo.getUfaceDevId()); param.put("devIds", workerInfo.getUfaceDevId());
} else {
param.put("devIds", "0");
} }
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param); List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param);
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
@ -325,7 +337,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
} else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) { } else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) {
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl()); workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, devBuilder.toString()); ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, devBuilder.toString());
xzHikvisionSyncMapper.delete(Wrappers.<XzHikvisionSync>lambdaQuery()
.eq(XzHikvisionSync::getType, 1)
.eq(XzHikvisionSync::getWhoId, workerInfo.getId()));
} }
} }
} }
@ -522,6 +536,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
// mqtt下发人员 // mqtt下发人员
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl()); workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, devSns); ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, devSns);
xzHikvisionSyncMapper.delete(Wrappers.<XzHikvisionSync>lambdaQuery()
.eq(XzHikvisionSync::getType, 1)
.eq(XzHikvisionSync::getWhoId, workerInfo.getId()));
} }
} }

View File

@ -261,6 +261,19 @@ public class WorkerApiController {
return Result.ok(); return Result.ok();
} }
@ApiIdempotent
@OperLog(operModul = "劳务管理",operType = "批量修改劳务人员删除门禁权限",operDesc = "批量修改劳务人员删除门禁权限")
@ApiOperation(value = "劳务人员删除门禁权限", notes = "劳务人员删除门禁权限", httpMethod="POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "workerIdStr", value = "人员Id", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "ufaceDevIds", value = "设备Id", paramType = "body", required = true, dataType = "String")
})
@PostMapping(value = "/deleteFaceAuth")
public Result deleteFaceAuth(@RequestBody Map<String,Object> map) {
workerInfoService.deleteFaceAuth(map);
return Result.ok();
}
@ApiOperation(value = "分页列表查询劳务人员", notes = "分页列表查询劳务人员", httpMethod = "POST") @ApiOperation(value = "分页列表查询劳务人员", notes = "分页列表查询劳务人员", httpMethod = "POST")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "workerName", value = "姓名", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "workerName", value = "姓名", paramType = "body", required = false, dataType = "String"),

View File

@ -32,6 +32,7 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
@ -46,6 +47,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
@ -109,6 +111,25 @@ public class WorkerInfoController {
return Result.ok(); return Result.ok();
} }
/**
* 编辑
*
* @return
*/
@ApiIdempotent
@OperLog(operModul = "劳务管理", operType = "批量进场", operDesc = "批量进场")
@ApiOperation(value = "批量进场", notes = "批量进场", httpMethod = "PUT")
@ApiImplicitParams({
@ApiImplicitParam(name = "workerIds", value = "劳务人员IDs多个逗号分割", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "ufaceDevIds", value = "设备IDs多个逗号分割", paramType = "body", required = false, dataType = "String"),
})
@PutMapping(value = "/batchEntry")
public Result<WorkerInfo> batchEntry(@RequestBody Map<String, Object> map) {
workerInfoService.batchEntry(map);
return Result.ok();
}
@ApiIdempotent @ApiIdempotent
@OperLog(operModul = "劳务管理", operType = "编辑劳务人员", operDesc = "编辑劳务人员信息") @OperLog(operModul = "劳务管理", operType = "编辑劳务人员", operDesc = "编辑劳务人员信息")
@ApiOperation(value = "编辑劳务人员信息", notes = "编辑劳务人员信息", httpMethod = "PUT") @ApiOperation(value = "编辑劳务人员信息", notes = "编辑劳务人员信息", httpMethod = "PUT")
@ -911,7 +932,11 @@ public class WorkerInfoController {
); );
for (WorkerInfo workerInfo : workerInfos) { for (WorkerInfo workerInfo : workerInfos) {
workerInfo.setDevType(1); workerInfo.setDevType(1);
workerInfo.setUfaceDevId(ufaceDevId); String old = workerInfo.getUfaceDevId();
List<String> oldDevIds = new ArrayList<>(Arrays.asList(old.split(",")));
List<String> addDevIds = new ArrayList<>(Arrays.asList(ufaceDevId.split(",")));
oldDevIds.addAll(addDevIds);
workerInfo.setUfaceDevId(oldDevIds.stream().collect(Collectors.joining(",")));
} }
Long userId = SecurityUtils.getUser().getUserId(); Long userId = SecurityUtils.getUser().getUserId();
asyncWorker.batchBindDevForWorkers(workerInfos, userId); asyncWorker.batchBindDevForWorkers(workerInfos, userId);

View File

@ -77,14 +77,14 @@
else 2 end) device_state else 2 end) device_state
from uface_dev from uface_dev
where project_sn = #{projectSn} where project_sn = #{projectSn}
<if test="accountType == '1'.toString()"> <!-- <if test="accountType == '1'.toString() || accountType == '2'.toString()">-->
<!-- <if test="devIds != null and devIds != ''">-->
<!-- and FIND_IN_SET(id, #{devIds})-->
<!-- </if>-->
<!-- </if>-->
<if test="devIds != null and devIds != ''"> <if test="devIds != null and devIds != ''">
and FIND_IN_SET(id, #{devIds}) and FIND_IN_SET(id, #{devIds})
</if> </if>
</if>
<if test="accountType == '2'.toString()">
and FIND_IN_SET(id, #{devIds})
</if>
</select> </select>
<select id="selectUfaceDevBySn" resultType="com.zhgd.jeecg.common.mybatis.EntityMap"> <select id="selectUfaceDevBySn" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
select *, select *,

View File

@ -53,6 +53,13 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
*/ */
void updateWorkerExit(Map<String, Object> map); void updateWorkerExit(Map<String, Object> map);
/**
* 批量删除人员权限
*
* @param map
*/
void deleteFaceAuth(Map<String, Object> map);
/** /**
* 根据项目sn批量删除人员 * 根据项目sn批量删除人员
* *
@ -76,6 +83,8 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
*/ */
WorkerInfo editWorkerInfo(WorkerInfo workerInfo); WorkerInfo editWorkerInfo(WorkerInfo workerInfo);
void batchEntry(Map<String, Object> map);
/** /**
* 删除劳务人员信息 * 删除劳务人员信息
* *

View File

@ -461,6 +461,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
info.setExitDate(sdf.format(new Date())); info.setExitDate(sdf.format(new Date()));
info.setExitSafeScore(info.getSafeScore()); info.setExitSafeScore(info.getSafeScore());
info.setSafeScore(0D); info.setSafeScore(0D);
info.setUfaceDevId("0");
workerInfoMapper.updateById(info); workerInfoMapper.updateById(info);
projectUfaceConfigService.deleteWorkerInfo(info); projectUfaceConfigService.deleteWorkerInfo(info);
//上传住建 //上传住建
@ -476,6 +477,29 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
} }
} }
@Override
public void deleteFaceAuth(Map<String, Object> map) {
String workerIdStr = MapUtils.getString(map, "workerIdStr");
String ufaceDevIds = MapUtils.getString(map, "ufaceDevIds");
List<WorkerInfo> info = workerInfoMapper.selectBatchIds(Arrays.asList(workerIdStr.split(",")));
for (WorkerInfo workerInfo : info) {
if (StringUtils.isNotBlank(workerInfo.getUfaceDevId())) {
String ufaceDevId = workerInfo.getUfaceDevId();
List<String> oldDevIds = new ArrayList<>(Arrays.asList(ufaceDevId.split(",")));
List<String> delDevIds = new ArrayList<>(Arrays.asList(ufaceDevIds.split(",")));
Iterator<String> iterator = oldDevIds.iterator();
while (iterator.hasNext()) {
if (delDevIds.contains(iterator.next())) {
iterator.remove();
}
}
workerInfo.setUfaceDevId(oldDevIds.stream().collect(Collectors.joining(",")));
projectUfaceConfigService.deleteWorkerInfo(workerInfo, ufaceDevIds);
}
}
workerInfoService.updateBatchById(info);
}
/** /**
* 删除项目下所有人员 * 删除项目下所有人员
* *
@ -682,6 +706,16 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
return workerInfo; return workerInfo;
} }
public void batchEntry(Map<String, Object> map) {
String workerIds = MapUtils.getString(map, "workerIds");
String ufaceDevIds = MapUtils.getString(map, "ufaceDevIds");
List<WorkerInfo> workerInfoList = workerInfoService.listByIds(Arrays.asList(workerIds.split(",")));
for (WorkerInfo workerInfo : workerInfoList) {
workerInfo.setUfaceDevId(ufaceDevIds);
editWorkerInfo(workerInfo);
}
}
/** /**
* 更新劳务人员总状态 * 更新劳务人员总状态
* *

View File

@ -90,4 +90,6 @@ public interface IXzHikvisionSyncService extends IService<XzHikvisionSync> {
void mqttAck(String deviceSn, JSONArray workerIds, Integer isSuccess); void mqttAck(String deviceSn, JSONArray workerIds, Integer isSuccess);
void zyMqttAck(String deviceSn, String workerId, Integer isSuccess); void zyMqttAck(String deviceSn, String workerId, Integer isSuccess);
void zyDelMqttAck(String deviceSn, String workerId);
} }

View File

@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
@ -39,11 +40,13 @@ import com.zhgd.xmgl.modules.xz.service.IXzHikvisionSyncService;
import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil; import com.zhgd.xmgl.util.RefUtil;
import com.zhgd.xmgl.util.ThreadLocalUtil; import com.zhgd.xmgl.util.ThreadLocalUtil;
import com.zhgd.xmgl.util.ZyMqttFaceDevUtil;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@ -94,6 +97,9 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
@Qualifier("doubleCarbonExecutor") @Qualifier("doubleCarbonExecutor")
private ThreadPoolTaskExecutor threadPoolTaskExecutor; private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@Value("${basePath}")
private String basePath;
public static void main(String[] args) { public static void main(String[] args) {
Date val = new Date(); Date val = new Date();
ThreadLocalUtil.addInKey("now", val); ThreadLocalUtil.addInKey("now", val);
@ -269,6 +275,13 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
asyncHikvision.deleteCarInfoAndSetBlackForHikvision(carInfo, false); asyncHikvision.deleteCarInfoAndSetBlackForHikvision(carInfo, false);
} }
} }
} else {
ProjectUfaceConfig ufaceConfig = projectUfaceConfigService.getOne(Wrappers.<ProjectUfaceConfig>lambdaQuery().eq(ProjectUfaceConfig::getProjectSn, xzHikvisionSync.getProjectSn()));
if (ufaceConfig.getSupplierType() == 11) {
WorkerInfo workerInfo = workerInfoMapper.selectById(whoId);
// mqtt下发人员
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, xzHikvisionSync.getDeviceSn());
} else { } else {
//人员 //人员
WorkerManufacturer workerManufacturer = workerManufacturerFactory.getWorkerManufacturer(xzHikvisionSync.getProjectSn()); WorkerManufacturer workerManufacturer = workerManufacturerFactory.getWorkerManufacturer(xzHikvisionSync.getProjectSn());
@ -339,6 +352,7 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
} }
} }
} }
}
@Override @Override
public void mqttAck(String deviceSn, JSONArray ackInfo, Integer isSuccess) { public void mqttAck(String deviceSn, JSONArray ackInfo, Integer isSuccess) {
@ -370,6 +384,34 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
hikvisionCall.updateTotalStatus(workerInfo.getProjectSn(), workerInfo.getId(), 1); hikvisionCall.updateTotalStatus(workerInfo.getProjectSn(), workerInfo.getId(), 1);
} }
@Async("doubleCarbonExecutor")
@Override
public void zyDelMqttAck(String deviceSn, String workerId) {
List<XzHikvisionSync> syncList = new ArrayList<>();
WorkerInfo workerInfo = workerInfoMapper.selectById(workerId);
if (workerInfo != null) {
delBuild(syncList, workerInfo, deviceSn);
}
if (syncList.size() > 0) {
this.saveBatch(syncList);
}
hikvisionCall.updateTotalStatus(workerInfo.getProjectSn(), workerInfo.getId(), 1);
}
private void delBuild(List<XzHikvisionSync> syncList, WorkerInfo workerInfo, String deviceSn) {
XzHikvisionSync sync = new XzHikvisionSync();
sync.setProjectSn(workerInfo.getProjectSn());
sync.setType(1);
sync.setOperate(3);
sync.setDeviceSn(deviceSn);
sync.setWhoId(workerInfo.getId());
sync.setIsSuccess(1);
sync.setCreateDate(new Date());
sync.setUpdateDate(new Date());
sync.setBigType(1);
syncList.add(sync);
}
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());

View File

@ -992,26 +992,26 @@ public class WorkerTask {
/** /**
* 正赢 MQTT同步下发人员信息 * 正赢 MQTT同步下发人员信息
*/ */
@Scheduled(cron = "0 0/15 * * * ?") // @Scheduled(cron = "0 0/15 * * * ?")
@SchedulerLock(name = "zyMqttIssuedWorkerInfo", lockAtMostFor = 1000 * 55, lockAtLeastFor = 1000 * 55) // @SchedulerLock(name = "zyMqttIssuedWorkerInfo", lockAtMostFor = 1000 * 55, lockAtLeastFor = 1000 * 55)
@RequestMapping("zyMqttIssuedWorkerInfo") // @RequestMapping("zyMqttIssuedWorkerInfo")
public void zyMqttIssuedWorkerInfo() { // public void zyMqttIssuedWorkerInfo() {
List<ProjectUfaceConfig> configList = projectUfaceConfigMapper.selectList(Wrappers.<ProjectUfaceConfig>lambdaQuery() // List<ProjectUfaceConfig> configList = projectUfaceConfigMapper.selectList(Wrappers.<ProjectUfaceConfig>lambdaQuery()
.eq(ProjectUfaceConfig::getSupplierType, ZYMQTT.getCode()) // .eq(ProjectUfaceConfig::getSupplierType, ZYMQTT.getCode())
.eq(ProjectUfaceConfig::getIssueDev, 1)); // .eq(ProjectUfaceConfig::getIssueDev, 1));
for (ProjectUfaceConfig projectUfaceConfig : configList) { // for (ProjectUfaceConfig projectUfaceConfig : configList) {
List<XzHikvisionSync> list = xzHikvisionSyncService.list(Wrappers.<XzHikvisionSync>lambdaQuery() // List<XzHikvisionSync> list = xzHikvisionSyncService.list(Wrappers.<XzHikvisionSync>lambdaQuery()
.eq(XzHikvisionSync::getProjectSn, projectUfaceConfig.getProjectSn()) // .eq(XzHikvisionSync::getProjectSn, projectUfaceConfig.getProjectSn())
.eq(XzHikvisionSync::getIsSuccess, 0) // .eq(XzHikvisionSync::getIsSuccess, 0)
.eq(XzHikvisionSync::getType, 1) // .eq(XzHikvisionSync::getType, 1)
.eq(XzHikvisionSync::getBigType, 1)); // .eq(XzHikvisionSync::getBigType, 1));
for (XzHikvisionSync sync : list) { // for (XzHikvisionSync sync : list) {
WorkerInfo workerInfo = workerInfoMapper.selectById(sync.getWhoId()); // WorkerInfo workerInfo = workerInfoMapper.selectById(sync.getWhoId());
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl()); // workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, sync.getDeviceSn()); // ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, sync.getDeviceSn());
} // }
} // }
} // }
/** /**
* 更新人员自动退场 * 更新人员自动退场

View File

@ -37,7 +37,7 @@ public class ZyMqttFaceDevUtil {
sendByDevSn(ds, payload); sendByDevSn(ds, payload);
} }
} else { } else {
sendAll(payload); // sendAll(payload);
} }
} }
@ -46,27 +46,35 @@ public class ZyMqttFaceDevUtil {
* *
* @param workerInfo * @param workerInfo
*/ */
public static void deletePerson(WorkerInfo workerInfo) { public static void deletePerson(WorkerInfo workerInfo, String devSn) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("client_id", "deleteFace"); map.put("client_id", "deleteFace");
map.put("cmd", "delete_face"); map.put("cmd", "delete_face");
map.put("per_id", workerInfo.getId().toString()); map.put("per_id", workerInfo.getId().toString());
String payload = JSON.toJSONString(map); 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); sendAll(payload);
} }
}
private static void sendByDevSn(String devSn, String payload) { private static void sendByDevSn(String devSn, String payload) {
String topic = "face/" + devSn + "/request"; String topic = "face/" + devSn + "/request";
log.info("发送主题信息:{},主题为:{}", payload, topic); log.info("发送主题信息:{},主题为:{}", payload, topic);
IMqttSender mqttSender = SpringContextUtils.getBean(IMqttSender.class); IMqttSender mqttSender = SpringContextUtils.getBean(IMqttSender.class);
mqttSender.sendToMqtt(topic, 2, payload); mqttSender.sendToMqtt(topic, 0, payload);
} }
private static void sendAll(String payload) { private static void sendAll(String payload) {
String topic = "face/request"; String topic = "face/request";
log.info("发送主题信息:{},主题为:{}", payload, topic); log.info("发送主题信息:{},主题为:{}", payload, topic);
IMqttSender mqttSender = SpringContextUtils.getBean(IMqttSender.class); IMqttSender mqttSender = SpringContextUtils.getBean(IMqttSender.class);
mqttSender.sendToMqtt(topic, 2, payload); mqttSender.sendToMqtt(topic, 0, payload);
} }
private static Map<String, Object> build(WorkerInfo workerInfo) { private static Map<String, Object> build(WorkerInfo workerInfo) {