diff --git a/src/main/java/com/zhgd/mqtt/server/DispatchHandler.java b/src/main/java/com/zhgd/mqtt/server/DispatchHandler.java index dc28cca8d..892153e56 100644 --- a/src/main/java/com/zhgd/mqtt/server/DispatchHandler.java +++ b/src/main/java/com/zhgd/mqtt/server/DispatchHandler.java @@ -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()); diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java index c4c0bcaea..0bcc15423 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java @@ -45,6 +45,8 @@ public interface IProjectUfaceConfigService extends IService */ void deleteWorkerInfo(WorkerInfo workerInfo); + void deleteWorkerInfo(WorkerInfo workerInfo, String devSns); + /** * 更新人员权限 * 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 08336e8a5..d50d49401 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 @@ -172,14 +172,16 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl 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 list = ufaceDevMapper.selectUserUfaceDevList(param); if (list != null && list.size() > 0) { @@ -233,7 +235,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl l.getDevSn()).collect(Collectors.joining(","))); } else if (Objects.equals(ufaceConfig.getSupplierType(), ZYMQTT.getCode())) { - ZyMqttFaceDevUtil.deletePerson(workerInfo); + ZyMqttFaceDevUtil.deletePerson(workerInfo, null); xzHikvisionSyncMapper.delete(Wrappers.lambdaQuery() .eq(XzHikvisionSync::getType, 1) .eq(XzHikvisionSync::getWhoId, workerInfo.getId())); @@ -242,6 +244,14 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpllambdaQuery() + .eq(XzHikvisionSync::getType, 1) + .eq(XzHikvisionSync::getWhoId, workerInfo.getId())); + } + @Override public void updateWorkerInfo(WorkerInfo workerInfo, WorkerInfo oldWorkerInfo) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -263,14 +273,16 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl list = ufaceDevMapper.selectUserUfaceDevList(param); if (list != null && list.size() > 0) { @@ -325,7 +337,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpllambdaQuery() + .eq(XzHikvisionSync::getType, 1) + .eq(XzHikvisionSync::getWhoId, workerInfo.getId())); } } } @@ -522,6 +536,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpllambdaQuery() + .eq(XzHikvisionSync::getType, 1) + .eq(XzHikvisionSync::getWhoId, workerInfo.getId())); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerApiController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerApiController.java index 1d8b6327a..51168bacf 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerApiController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerApiController.java @@ -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 map) { + workerInfoService.deleteFaceAuth(map); + return Result.ok(); + } + @ApiOperation(value = "分页列表查询劳务人员", notes = "分页列表查询劳务人员", httpMethod = "POST") @ApiImplicitParams({ @ApiImplicitParam(name = "workerName", value = "姓名", paramType = "body", required = false, dataType = "String"), diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java index a4b950f7e..ebee662c4 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java @@ -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 batchEntry(@RequestBody Map 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 oldDevIds = new ArrayList<>(Arrays.asList(old.split(","))); + List 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); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/UfaceDevMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/UfaceDevMapper.xml index 70655e28a..5542e4e0f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/UfaceDevMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/UfaceDevMapper.xml @@ -77,12 +77,12 @@ else 2 end) device_state from uface_dev where project_sn = #{projectSn} - - - and FIND_IN_SET(id, #{devIds}) - - - + + + + + + and FIND_IN_SET(id, #{devIds}) diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java index 070cefd44..5f01b58fa 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java @@ -53,6 +53,13 @@ public interface IWorkerInfoService extends IService { */ void updateWorkerExit(Map map); + /** + * 批量删除人员权限 + * + * @param map + */ + void deleteFaceAuth(Map map); + /** * 根据项目sn批量删除人员 * @@ -76,6 +83,8 @@ public interface IWorkerInfoService extends IService { */ WorkerInfo editWorkerInfo(WorkerInfo workerInfo); + void batchEntry(Map map); + /** * 删除劳务人员信息 * 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 f5744eae3..94d07104d 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 @@ -461,6 +461,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl map) { + String workerIdStr = MapUtils.getString(map, "workerIdStr"); + String ufaceDevIds = MapUtils.getString(map, "ufaceDevIds"); + List info = workerInfoMapper.selectBatchIds(Arrays.asList(workerIdStr.split(","))); + for (WorkerInfo workerInfo : info) { + if (StringUtils.isNotBlank(workerInfo.getUfaceDevId())) { + String ufaceDevId = workerInfo.getUfaceDevId(); + List oldDevIds = new ArrayList<>(Arrays.asList(ufaceDevId.split(","))); + List delDevIds = new ArrayList<>(Arrays.asList(ufaceDevIds.split(","))); + Iterator 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 map) { + String workerIds = MapUtils.getString(map, "workerIds"); + String ufaceDevIds = MapUtils.getString(map, "ufaceDevIds"); + List workerInfoList = workerInfoService.listByIds(Arrays.asList(workerIds.split(","))); + for (WorkerInfo workerInfo : workerInfoList) { + workerInfo.setUfaceDevId(ufaceDevIds); + editWorkerInfo(workerInfo); + } + } + /** * 更新劳务人员总状态 * 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 3f09c3dad..7d6a2ed21 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 @@ -90,4 +90,6 @@ public interface IXzHikvisionSyncService extends IService { void mqttAck(String deviceSn, JSONArray workerIds, Integer isSuccess); void zyMqttAck(String deviceSn, String workerId, Integer isSuccess); + + void zyDelMqttAck(String deviceSn, String workerId); } 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 3a96cc8cd..feb1e90c2 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 @@ -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 ServiceImpllambdaQuery().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 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() + .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 sendAddDeleteDevSns = new ImmutablePair<>(devSns, notDevSns); - workerManufacturer.saveWorkerUFaceAuthToOneDev(workerInfo, sendAddDeleteDevSns); + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(UfaceDev::getProjectSn, projectSn); + List 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() - .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 qw = new QueryWrapper<>(); - qw.lambda().eq(UfaceDev::getProjectSn, projectSn); - List 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 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 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 syncList, WorkerInfo workerInfo, String deviceSn, Integer isSuccess) { XzHikvisionSync sync = new XzHikvisionSync(); sync.setProjectSn(workerInfo.getProjectSn()); diff --git a/src/main/java/com/zhgd/xmgl/task/WorkerTask.java b/src/main/java/com/zhgd/xmgl/task/WorkerTask.java index 905b3b904..ebba7066b 100644 --- a/src/main/java/com/zhgd/xmgl/task/WorkerTask.java +++ b/src/main/java/com/zhgd/xmgl/task/WorkerTask.java @@ -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 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()); - } - } - } +// @Scheduled(cron = "0 0/15 * * * ?") +// @SchedulerLock(name = "zyMqttIssuedWorkerInfo", lockAtMostFor = 1000 * 55, lockAtLeastFor = 1000 * 55) +// @RequestMapping("zyMqttIssuedWorkerInfo") +// public void zyMqttIssuedWorkerInfo() { +// List 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/ZyMqttFaceDevUtil.java b/src/main/java/com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java index 24e7c9703..54bbd921d 100644 --- a/src/main/java/com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/ZyMqttFaceDevUtil.java @@ -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 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 build(WorkerInfo workerInfo) {