青海中水北方修改
This commit is contained in:
parent
38c35543a0
commit
27182d10cc
@ -49,6 +49,13 @@ public class DispatchHandler {
|
||||
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")) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(payLoad.toString());
|
||||
|
||||
@ -45,6 +45,8 @@ public interface IProjectUfaceConfigService extends IService<ProjectUfaceConfig>
|
||||
*/
|
||||
void deleteWorkerInfo(WorkerInfo workerInfo);
|
||||
|
||||
void deleteWorkerInfo(WorkerInfo workerInfo, String devSns);
|
||||
|
||||
/**
|
||||
* 更新人员权限
|
||||
*
|
||||
|
||||
@ -172,14 +172,16 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
String ufaceDevId = workerInfo.getUfaceDevId();
|
||||
Map<String, Object> param = new HashMap<>(16);
|
||||
param.put("projectSn", workerInfo.getProjectSn());
|
||||
String zero = "0";
|
||||
if (zero.equals(ufaceDevId)) {
|
||||
workerInfo.setUfaceDevId(null);
|
||||
}
|
||||
// String zero = "0";
|
||||
// if (zero.equals(ufaceDevId)) {
|
||||
// workerInfo.setUfaceDevId(null);
|
||||
// }
|
||||
if (StringUtils.isNotEmpty(ufaceDevId)) {
|
||||
param.put("registerType", workerInfo.getRegisterType());
|
||||
param.put("accountType", workerInfo.getAccountType());
|
||||
param.put("devIds", ufaceDevId);
|
||||
} else {
|
||||
param.put("devIds", "0");
|
||||
}
|
||||
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param);
|
||||
if (list != null && list.size() > 0) {
|
||||
@ -233,7 +235,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
} else if (Objects.equals(ufaceConfig.getSupplierType(), MQTT.getCode())) {
|
||||
MqttFaceDevUtil.deletePerson(workerInfo, list.stream().map(l -> l.getDevSn()).collect(Collectors.joining(",")));
|
||||
} else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) {
|
||||
ZyMqttFaceDevUtil.deletePerson(workerInfo);
|
||||
ZyMqttFaceDevUtil.deletePerson(workerInfo, null);
|
||||
xzHikvisionSyncMapper.delete(Wrappers.<XzHikvisionSync>lambdaQuery()
|
||||
.eq(XzHikvisionSync::getType, 1)
|
||||
.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
|
||||
public void updateWorkerInfo(WorkerInfo workerInfo, WorkerInfo oldWorkerInfo) {
|
||||
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
|
||||
@ -263,14 +273,16 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
hasDev = false;
|
||||
workerInfo.setUfaceDevId(oldWorkerInfo.getUfaceDevId());
|
||||
}
|
||||
String top = "0";
|
||||
if (top.equals(workerInfo.getUfaceDevId())) {
|
||||
workerInfo.setUfaceDevId(null);
|
||||
}
|
||||
// String top = "0";
|
||||
// if (top.equals(workerInfo.getUfaceDevId())) {
|
||||
// workerInfo.setUfaceDevId(null);
|
||||
// }
|
||||
if (StringUtils.isNotEmpty(workerInfo.getUfaceDevId())) {
|
||||
param.put("registerType", workerInfo.getRegisterType());
|
||||
param.put("accountType", 1);
|
||||
param.put("devIds", workerInfo.getUfaceDevId());
|
||||
} else {
|
||||
param.put("devIds", "0");
|
||||
}
|
||||
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param);
|
||||
if (list != null && list.size() > 0) {
|
||||
@ -325,7 +337,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
} else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) {
|
||||
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
|
||||
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下发人员
|
||||
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
|
||||
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, devSns);
|
||||
xzHikvisionSyncMapper.delete(Wrappers.<XzHikvisionSync>lambdaQuery()
|
||||
.eq(XzHikvisionSync::getType, 1)
|
||||
.eq(XzHikvisionSync::getWhoId, workerInfo.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -261,6 +261,19 @@ public class WorkerApiController {
|
||||
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")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "workerName", value = "姓名", paramType = "body", required = false, dataType = "String"),
|
||||
|
||||
@ -32,6 +32,7 @@ import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import org.apache.poi.xssf.usermodel.XSSFRow;
|
||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||
@ -46,6 +47,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
@ -109,6 +111,25 @@ public class WorkerInfoController {
|
||||
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
|
||||
@OperLog(operModul = "劳务管理", operType = "编辑劳务人员", operDesc = "编辑劳务人员信息")
|
||||
@ApiOperation(value = "编辑劳务人员信息", notes = "编辑劳务人员信息", httpMethod = "PUT")
|
||||
@ -911,7 +932,11 @@ public class WorkerInfoController {
|
||||
);
|
||||
for (WorkerInfo workerInfo : workerInfos) {
|
||||
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();
|
||||
asyncWorker.batchBindDevForWorkers(workerInfos, userId);
|
||||
|
||||
@ -77,12 +77,12 @@
|
||||
else 2 end) device_state
|
||||
from uface_dev
|
||||
where project_sn = #{projectSn}
|
||||
<if test="accountType == '1'.toString()">
|
||||
<if test="devIds != null and devIds != ''">
|
||||
and FIND_IN_SET(id, #{devIds})
|
||||
</if>
|
||||
</if>
|
||||
<if test="accountType == '2'.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 != ''">
|
||||
and FIND_IN_SET(id, #{devIds})
|
||||
</if>
|
||||
</select>
|
||||
|
||||
@ -53,6 +53,13 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
|
||||
*/
|
||||
void updateWorkerExit(Map<String, Object> map);
|
||||
|
||||
/**
|
||||
* 批量删除人员权限
|
||||
*
|
||||
* @param map
|
||||
*/
|
||||
void deleteFaceAuth(Map<String, Object> map);
|
||||
|
||||
/**
|
||||
* 根据项目sn批量删除人员
|
||||
*
|
||||
@ -76,6 +83,8 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
|
||||
*/
|
||||
WorkerInfo editWorkerInfo(WorkerInfo workerInfo);
|
||||
|
||||
void batchEntry(Map<String, Object> map);
|
||||
|
||||
/**
|
||||
* 删除劳务人员信息
|
||||
*
|
||||
|
||||
@ -461,6 +461,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
info.setExitDate(sdf.format(new Date()));
|
||||
info.setExitSafeScore(info.getSafeScore());
|
||||
info.setSafeScore(0D);
|
||||
info.setUfaceDevId("0");
|
||||
workerInfoMapper.updateById(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;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新劳务人员总状态
|
||||
*
|
||||
|
||||
@ -90,4 +90,6 @@ public interface IXzHikvisionSyncService extends IService<XzHikvisionSync> {
|
||||
void mqttAck(String deviceSn, JSONArray workerIds, Integer isSuccess);
|
||||
|
||||
void zyMqttAck(String deviceSn, String workerId, Integer isSuccess);
|
||||
|
||||
void zyDelMqttAck(String deviceSn, String workerId);
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
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.service.impl.ServiceImpl;
|
||||
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.RefUtil;
|
||||
import com.zhgd.xmgl.util.ThreadLocalUtil;
|
||||
import com.zhgd.xmgl.util.ZyMqttFaceDevUtil;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
@ -94,6 +97,9 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
@Qualifier("doubleCarbonExecutor")
|
||||
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
||||
|
||||
@Value("${basePath}")
|
||||
private String basePath;
|
||||
|
||||
public static void main(String[] args) {
|
||||
Date val = new Date();
|
||||
ThreadLocalUtil.addInKey("now", val);
|
||||
@ -270,71 +276,79 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//人员
|
||||
WorkerManufacturer workerManufacturer = workerManufacturerFactory.getWorkerManufacturer(xzHikvisionSync.getProjectSn());
|
||||
if (workerManufacturer != null) {
|
||||
ProjectUfaceConfig ufaceConfig = projectUfaceConfigService.getOne(Wrappers.<ProjectUfaceConfig>lambdaQuery().eq(ProjectUfaceConfig::getProjectSn, xzHikvisionSync.getProjectSn()));
|
||||
if (ufaceConfig.getSupplierType() == 11) {
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(whoId);
|
||||
if (workerInfo == null) {
|
||||
return;
|
||||
}
|
||||
CompletableFuture.runAsync(() -> {
|
||||
// mqtt下发人员
|
||||
workerInfo.setFieldAcquisitionUrl(basePath + "/" + workerInfo.getFieldAcquisitionUrl());
|
||||
ZyMqttFaceDevUtil.addOrUpdatePerson(workerInfo, xzHikvisionSync.getDeviceSn());
|
||||
} else {
|
||||
//人员
|
||||
WorkerManufacturer workerManufacturer = workerManufacturerFactory.getWorkerManufacturer(xzHikvisionSync.getProjectSn());
|
||||
if (workerManufacturer != null) {
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(whoId);
|
||||
if (workerInfo == null) {
|
||||
return;
|
||||
}
|
||||
CompletableFuture.runAsync(() -> {
|
||||
if (Objects.equals(xzHikvisionSync.getType(), XzHikvisionSyncTypeEnum.PERSON.getValue())) {
|
||||
if (saveOperate) {
|
||||
workerManufacturer.saveWorker(workerInfo);
|
||||
} else {
|
||||
workerManufacturer.deleteWorker(workerInfo);
|
||||
}
|
||||
} else if (Objects.equals(xzHikvisionSync.getType(), XzHikvisionSyncTypeEnum.PIC.getValue())) {
|
||||
if (saveOperate) {
|
||||
workerManufacturer.saveWorkerFace(workerInfo);
|
||||
} else {
|
||||
workerManufacturer.deleteWorker(workerInfo);
|
||||
}
|
||||
} else if (Objects.equals(xzHikvisionSync.getType(), XzHikvisionSyncTypeEnum.AUTH.getValue())) {
|
||||
String devSns = null;
|
||||
String notDevSns = null;
|
||||
if (saveOperate) {
|
||||
devSns = xzHikvisionSync.getDeviceSn();
|
||||
} else {
|
||||
notDevSns = xzHikvisionSync.getDeviceSn();
|
||||
}
|
||||
Pair<String, String> sendAddDeleteDevSns = new ImmutablePair<>(devSns, notDevSns);
|
||||
workerManufacturer.saveWorkerUFaceAuthToOneDev(workerInfo, sendAddDeleteDevSns);
|
||||
}
|
||||
}, threadPoolTaskExecutor);
|
||||
} else {
|
||||
//海康的
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(whoId);
|
||||
String projectSn = workerInfo.getProjectSn();
|
||||
Project p = projectMapper.selectOne(new LambdaQueryWrapper<Project>()
|
||||
.eq(Project::getProjectSn, projectSn)
|
||||
.eq(Project::getSyncHikvision, 1)
|
||||
);
|
||||
if (p == null) {
|
||||
return;
|
||||
}
|
||||
if (Objects.equals(xzHikvisionSync.getType(), XzHikvisionSyncTypeEnum.PERSON.getValue())) {
|
||||
if (saveOperate) {
|
||||
workerManufacturer.saveWorker(workerInfo);
|
||||
} else {
|
||||
workerManufacturer.deleteWorker(workerInfo);
|
||||
if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.ADD.getValue())) {
|
||||
asyncHikvision.addWorker(workerInfo, true, true);
|
||||
} else if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.UPDATE.getValue())) {
|
||||
asyncHikvision.editWorker(workerInfo, true, true);
|
||||
} else if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.DELETE.getValue())) {
|
||||
asyncHikvision.deleteWorkerForHikvision(String.valueOf(workerInfo.getId()), workerInfo);
|
||||
}
|
||||
} else if (Objects.equals(xzHikvisionSync.getType(), XzHikvisionSyncTypeEnum.PIC.getValue())) {
|
||||
if (saveOperate) {
|
||||
workerManufacturer.saveWorkerFace(workerInfo);
|
||||
} else {
|
||||
workerManufacturer.deleteWorker(workerInfo);
|
||||
if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.ADD.getValue())) {
|
||||
asyncHikvision.addWorker(workerInfo, false, true);
|
||||
} else if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.UPDATE.getValue())) {
|
||||
asyncHikvision.editWorker(workerInfo, false, true);
|
||||
} else if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.DELETE.getValue())) {
|
||||
asyncHikvision.deleteWorkerForHikvision(String.valueOf(workerInfo.getId()), workerInfo);
|
||||
}
|
||||
} else if (Objects.equals(xzHikvisionSync.getType(), XzHikvisionSyncTypeEnum.AUTH.getValue())) {
|
||||
String devSns = null;
|
||||
String notDevSns = null;
|
||||
if (saveOperate) {
|
||||
devSns = xzHikvisionSync.getDeviceSn();
|
||||
} else {
|
||||
notDevSns = xzHikvisionSync.getDeviceSn();
|
||||
}
|
||||
Pair<String, String> sendAddDeleteDevSns = new ImmutablePair<>(devSns, notDevSns);
|
||||
workerManufacturer.saveWorkerUFaceAuthToOneDev(workerInfo, sendAddDeleteDevSns);
|
||||
QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(UfaceDev::getProjectSn, projectSn);
|
||||
List<UfaceDev> ufaceDevs = ufaceDevMapper.selectList(qw);
|
||||
ThreadLocalUtil.addInKey(Cts.TL_HK_SYNC_ID, id);
|
||||
projectUfaceConfigService.buildAndSendOneWorkerAndDevForHk(ufaceDevs, workerInfo, xzHikvisionSync.getOperate(), xzHikvisionSync.getDeviceSn(), projectSn, true);
|
||||
}
|
||||
}, threadPoolTaskExecutor);
|
||||
} else {
|
||||
//海康的
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(whoId);
|
||||
String projectSn = workerInfo.getProjectSn();
|
||||
Project p = projectMapper.selectOne(new LambdaQueryWrapper<Project>()
|
||||
.eq(Project::getProjectSn, projectSn)
|
||||
.eq(Project::getSyncHikvision, 1)
|
||||
);
|
||||
if (p == null) {
|
||||
return;
|
||||
}
|
||||
if (Objects.equals(xzHikvisionSync.getType(), XzHikvisionSyncTypeEnum.PERSON.getValue())) {
|
||||
if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.ADD.getValue())) {
|
||||
asyncHikvision.addWorker(workerInfo, true, true);
|
||||
} else if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.UPDATE.getValue())) {
|
||||
asyncHikvision.editWorker(workerInfo, true, true);
|
||||
} else if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.DELETE.getValue())) {
|
||||
asyncHikvision.deleteWorkerForHikvision(String.valueOf(workerInfo.getId()), workerInfo);
|
||||
}
|
||||
} else if (Objects.equals(xzHikvisionSync.getType(), XzHikvisionSyncTypeEnum.PIC.getValue())) {
|
||||
if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.ADD.getValue())) {
|
||||
asyncHikvision.addWorker(workerInfo, false, true);
|
||||
} else if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.UPDATE.getValue())) {
|
||||
asyncHikvision.editWorker(workerInfo, false, true);
|
||||
} else if (Objects.equals(xzHikvisionSync.getOperate(), XzHikvisionSyncOperateEnum.DELETE.getValue())) {
|
||||
asyncHikvision.deleteWorkerForHikvision(String.valueOf(workerInfo.getId()), workerInfo);
|
||||
}
|
||||
} else if (Objects.equals(xzHikvisionSync.getType(), XzHikvisionSyncTypeEnum.AUTH.getValue())) {
|
||||
QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(UfaceDev::getProjectSn, projectSn);
|
||||
List<UfaceDev> ufaceDevs = ufaceDevMapper.selectList(qw);
|
||||
ThreadLocalUtil.addInKey(Cts.TL_HK_SYNC_ID, id);
|
||||
projectUfaceConfigService.buildAndSendOneWorkerAndDevForHk(ufaceDevs, workerInfo, xzHikvisionSync.getOperate(), xzHikvisionSync.getDeviceSn(), projectSn, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -370,6 +384,34 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
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) {
|
||||
XzHikvisionSync sync = new XzHikvisionSync();
|
||||
sync.setProjectSn(workerInfo.getProjectSn());
|
||||
|
||||
@ -992,26 +992,26 @@ 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
// @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());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 更新人员自动退场
|
||||
|
||||
@ -37,7 +37,7 @@ public class ZyMqttFaceDevUtil {
|
||||
sendByDevSn(ds, payload);
|
||||
}
|
||||
} else {
|
||||
sendAll(payload);
|
||||
// sendAll(payload);
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,27 +46,35 @@ public class ZyMqttFaceDevUtil {
|
||||
*
|
||||
* @param workerInfo
|
||||
*/
|
||||
public static void deletePerson(WorkerInfo workerInfo) {
|
||||
public static void deletePerson(WorkerInfo workerInfo, String devSn) {
|
||||
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);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
mqttSender.sendToMqtt(topic, 0, 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);
|
||||
mqttSender.sendToMqtt(topic, 0, payload);
|
||||
}
|
||||
|
||||
private static Map<String, Object> build(WorkerInfo workerInfo) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user