海康下发修改
This commit is contained in:
parent
576f600850
commit
9677938533
@ -496,7 +496,7 @@ public class AsyncHikvision {
|
|||||||
* @param allDevList
|
* @param allDevList
|
||||||
* @param workerList 下发的人员
|
* @param workerList 下发的人员
|
||||||
* @param workerAndDevSnList 构建的下发的人员和设备的关系
|
* @param workerAndDevSnList 构建的下发的人员和设备的关系
|
||||||
* @param userId
|
* @param userId 批量下发的通知的人
|
||||||
* @param checkEditWorkers
|
* @param checkEditWorkers
|
||||||
* @param sendNotice
|
* @param sendNotice
|
||||||
*/
|
*/
|
||||||
@ -507,11 +507,17 @@ public class AsyncHikvision {
|
|||||||
ProjectInfoExtVo project = projectService.getProjectInfoBySn(projectSn);
|
ProjectInfoExtVo project = projectService.getProjectInfoBySn(projectSn);
|
||||||
//判断人员的图片存在isc
|
//判断人员的图片存在isc
|
||||||
Map<String, WorkerInfo> workerIdMap = workerList.stream().collect(Collectors.toMap(workerInfo -> workerInfo.getId() + "", Function.identity()));
|
Map<String, WorkerInfo> workerIdMap = workerList.stream().collect(Collectors.toMap(workerInfo -> workerInfo.getId() + "", Function.identity()));
|
||||||
|
ArrayList<Future> futures = new ArrayList<>();
|
||||||
if (checkEditWorkers) {
|
if (checkEditWorkers) {
|
||||||
ArrayList<WorkerInfo> needEditWorkers = getNeedEditWorkers(workerList, project, workerIdMap);
|
ArrayList<WorkerInfo> needEditWorkers = getNeedEditWorkers(workerList, project, workerIdMap);
|
||||||
if (CollUtil.isNotEmpty(needEditWorkers)) {
|
if (CollUtil.isNotEmpty(needEditWorkers)) {
|
||||||
for (WorkerInfo workerInfo : needEditWorkers) {
|
for (WorkerInfo workerInfo : needEditWorkers) {
|
||||||
workerInfoService.editWorkerForSendBatchAuth(workerInfo);
|
Future future = workerInfoService.editWorkerAsyncForSendBatchAuth(workerInfo);
|
||||||
|
futures.add(future);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Future future : futures) {
|
||||||
|
while (!future.isDone()) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -529,9 +535,9 @@ public class AsyncHikvision {
|
|||||||
o1.putAll(o2);
|
o1.putAll(o2);
|
||||||
return o1;
|
return o1;
|
||||||
}));
|
}));
|
||||||
ArrayList<Future> futures = new ArrayList<>();
|
futures = new ArrayList<>();
|
||||||
for (Map.Entry<String, List<JSONObject>> entry : devSnToJoMap.entrySet()) {
|
for (Map.Entry<String, List<JSONObject>> entry : devSnToJoMap.entrySet()) {
|
||||||
Future future = asyncHikvision.sendBatchWorkersForOneDevAsync(workerIdMap, devSnMap, project, devSnToIscDevSnMap, iscDevSnToMyMap, entry, projectSn, sendNotice);
|
Future future = asyncHikvision.sendBatchWorkersForOneDevAsync(workerIdMap, devSnMap, project, devSnToIscDevSnMap, entry, projectSn, sendNotice, workerList);
|
||||||
futures.add(future);
|
futures.add(future);
|
||||||
}
|
}
|
||||||
for (Future future : futures) {
|
for (Future future : futures) {
|
||||||
@ -559,6 +565,31 @@ public class AsyncHikvision {
|
|||||||
log.error("批量下发权限失败:", e);
|
log.error("批量下发权限失败:", e);
|
||||||
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, workerList, 1, 1);
|
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, workerList, 1, 1);
|
||||||
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, workerList, 1, 3);
|
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, workerList, 1, 3);
|
||||||
|
sendExcNotice(e, workerList, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送异常通知
|
||||||
|
*
|
||||||
|
* @param e
|
||||||
|
* @param workerList
|
||||||
|
* @param dev
|
||||||
|
*/
|
||||||
|
private void sendExcNotice(Exception e, List<WorkerInfo> workerList, UfaceDev dev) {
|
||||||
|
String exc;
|
||||||
|
if (HttpUtils.isTimeOut(e)) {
|
||||||
|
exc = ",网络异常";
|
||||||
|
} else {
|
||||||
|
exc = ",下发异常";
|
||||||
|
}
|
||||||
|
List<WorkerInfo> failWorkers = workerList.stream().filter(workerInfo -> !Objects.equals(workerInfo.getSendSuccessStatus(), 1)).collect(Collectors.toList());
|
||||||
|
for (WorkerInfo workerInfo : failWorkers) {
|
||||||
|
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
|
||||||
|
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(),
|
||||||
|
StrUtil.format("{}{}设备下发权限失败{}", workerInfo.getWorkerName(), dev != null ? dev.getDevName() : "有些", exc),
|
||||||
|
"人员下发设备提醒", "1");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -597,12 +628,14 @@ public class AsyncHikvision {
|
|||||||
* @param devSnMap
|
* @param devSnMap
|
||||||
* @param project
|
* @param project
|
||||||
* @param devSnToIscDevSnMap
|
* @param devSnToIscDevSnMap
|
||||||
* @param iscDevSnToMyMap
|
|
||||||
* @param devSnToJoEntry
|
* @param devSnToJoEntry
|
||||||
* @param sendNotice
|
* @param sendNotice
|
||||||
|
* @param workerList
|
||||||
*/
|
*/
|
||||||
@Async("workerAuthHkExecutor")
|
@Async("workerAuthHkExecutor")
|
||||||
public Future sendBatchWorkersForOneDevAsync(Map<String, WorkerInfo> workerIdMap, Map<String, UfaceDev> devSnMap, ProjectInfoExtVo project, Map<String, JSONObject> devSnToIscDevSnMap, Map<String, Map<String, JSONObject>> iscDevSnToMyMap, Map.Entry<String, List<JSONObject>> devSnToJoEntry, String projectSn, boolean sendNotice) {
|
public Future sendBatchWorkersForOneDevAsync(Map<String, WorkerInfo> workerIdMap, Map<String, UfaceDev> devSnMap, ProjectInfoExtVo project, Map<String, JSONObject> devSnToIscDevSnMap, Map.Entry<String, List<JSONObject>> devSnToJoEntry, String projectSn, boolean sendNotice, List<WorkerInfo> workerList) {
|
||||||
|
String devSn = devSnToJoEntry.getKey();
|
||||||
|
UfaceDev dev = devSnMap.get(devSn);
|
||||||
try {
|
try {
|
||||||
//【添加权限配置】(人员列表,设备列表),这个接口只要没报错,你就直接去下一步就行了。
|
//【添加权限配置】(人员列表,设备列表),这个接口只要没报错,你就直接去下一步就行了。
|
||||||
List<String> addAuthWorkerIds = devSnToJoEntry.getValue().stream().filter(jo -> jo.getBoolean(Cts.IS_ADD_AUTH)).map(jsonObject -> jsonObject.getString("workerId")).collect(Collectors.toList());
|
List<String> addAuthWorkerIds = devSnToJoEntry.getValue().stream().filter(jo -> jo.getBoolean(Cts.IS_ADD_AUTH)).map(jsonObject -> jsonObject.getString("workerId")).collect(Collectors.toList());
|
||||||
@ -619,7 +652,6 @@ public class AsyncHikvision {
|
|||||||
JSONObject aaRJo = HikvisionUtil.deleteAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, deleteAuthWorkerIds, devSnToIscDevSnMap));
|
JSONObject aaRJo = HikvisionUtil.deleteAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, deleteAuthWorkerIds, devSnToIscDevSnMap));
|
||||||
HikvisionUtil.getJSONObjectData(aaRJo);
|
HikvisionUtil.getJSONObjectData(aaRJo);
|
||||||
}
|
}
|
||||||
String devSn = devSnToJoEntry.getKey();
|
|
||||||
//然后调用【根据出入权限配置快捷下载】(设备列表)(【添加权限配置】+【快捷下发】这是一个流程,你添加了几个权限,下发成功之后,就清零了)
|
//然后调用【根据出入权限配置快捷下载】(设备列表)(【添加权限配置】+【快捷下发】这是一个流程,你添加了几个权限,下发成功之后,就清零了)
|
||||||
JSONObject daJo = HikvisionUtil.downloadAuth(project, getQueryDownloadProgressParam(devSnToJoEntry, devSnToIscDevSnMap));
|
JSONObject daJo = HikvisionUtil.downloadAuth(project, getQueryDownloadProgressParam(devSnToJoEntry, devSnToIscDevSnMap));
|
||||||
JSONObject daRtJo = HikvisionUtil.getJSONObjectData(daJo);
|
JSONObject daRtJo = HikvisionUtil.getJSONObjectData(daJo);
|
||||||
@ -639,7 +671,7 @@ public class AsyncHikvision {
|
|||||||
Set<String> rtWorkerIdSet;
|
Set<String> rtWorkerIdSet;
|
||||||
if (CollUtil.isNotEmpty(qaiList)) {
|
if (CollUtil.isNotEmpty(qaiList)) {
|
||||||
for (int i = 0; i < qaiList.size(); i++) {
|
for (int i = 0; i < qaiList.size(); i++) {
|
||||||
handlerBatchWorkersResult(workerIdMap, devSnMap, qaiList, i, devSn, projectSn, addAuthWorkerIds,sendNotice);
|
handlerBatchWorkersResult(workerIdMap, qaiList, i, devSn, projectSn, addAuthWorkerIds, sendNotice, dev);
|
||||||
}
|
}
|
||||||
rtWorkerIdSet = qaiList.stream().map(o -> ((JSONObject) o).getString("personId")).collect(Collectors.toSet());
|
rtWorkerIdSet = qaiList.stream().map(o -> ((JSONObject) o).getString("personId")).collect(Collectors.toSet());
|
||||||
} else {
|
} else {
|
||||||
@ -671,6 +703,7 @@ public class AsyncHikvision {
|
|||||||
log.error("批量下发权限失败:", e);
|
log.error("批量下发权限失败:", e);
|
||||||
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, new ArrayList<>(workerIdMap.values()), 1, 1);
|
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, new ArrayList<>(workerIdMap.values()), 1, 1);
|
||||||
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, new ArrayList<>(workerIdMap.values()), 1, 3);
|
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, new ArrayList<>(workerIdMap.values()), 1, 3);
|
||||||
|
sendExcNotice(e, workerList, dev);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -679,15 +712,15 @@ public class AsyncHikvision {
|
|||||||
* 处理结果:一个设备批量下发人员
|
* 处理结果:一个设备批量下发人员
|
||||||
*
|
*
|
||||||
* @param workerIdMap
|
* @param workerIdMap
|
||||||
* @param devSnMap
|
|
||||||
* @param qaiList
|
* @param qaiList
|
||||||
* @param i
|
* @param i
|
||||||
* @param devSn
|
* @param devSn
|
||||||
* @param projectSn
|
* @param projectSn
|
||||||
* @param addAuthWorkerIds
|
* @param addAuthWorkerIds
|
||||||
* @param sendNotice
|
* @param sendNotice
|
||||||
|
* @param dev
|
||||||
*/
|
*/
|
||||||
public void handlerBatchWorkersResult(Map<String, WorkerInfo> workerIdMap, Map<String, UfaceDev> devSnMap, JSONArray qaiList, int i, String devSn, String projectSn, List<String> addAuthWorkerIds, boolean sendNotice) {
|
public void handlerBatchWorkersResult(Map<String, WorkerInfo> workerIdMap, JSONArray qaiList, int i, String devSn, String projectSn, List<String> addAuthWorkerIds, boolean sendNotice, UfaceDev dev) {
|
||||||
JSONObject jo = qaiList.getJSONObject(i);
|
JSONObject jo = qaiList.getJSONObject(i);
|
||||||
String personId = jo.getString("personId");
|
String personId = jo.getString("personId");
|
||||||
//人脸状态
|
//人脸状态
|
||||||
@ -700,7 +733,6 @@ public class AsyncHikvision {
|
|||||||
//2. 删除以后,删除的权限状态是 4未配置
|
//2. 删除以后,删除的权限状态是 4未配置
|
||||||
//3. 这个人的权限都没了以后,你就查不到这个权限条目了
|
//3. 这个人的权限都没了以后,你就查不到这个权限条目了
|
||||||
Integer faceStatus = jo.getInteger("faceStatus");
|
Integer faceStatus = jo.getInteger("faceStatus");
|
||||||
UfaceDev dev = devSnMap.get(devSn);
|
|
||||||
if (sendNotice) {
|
if (sendNotice) {
|
||||||
if (addAuthWorkerIds.contains(personId)) {
|
if (addAuthWorkerIds.contains(personId)) {
|
||||||
//添加权限
|
//添加权限
|
||||||
|
|||||||
@ -72,6 +72,10 @@ public class AsyncWorker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendBatchWokerDev(Map<String, Object> map, ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> allDevList) {
|
||||||
|
this.sendBatchWokerDevAsync(map, projectUfaceConfig, allDevList);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量数据发送任务
|
* 批量数据发送任务
|
||||||
*
|
*
|
||||||
|
|||||||
@ -80,7 +80,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.beans.factory.annotation.Value;
|
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.transaction.annotation.Propagation;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@ -1177,18 +1176,17 @@ public class HikvisionCall {
|
|||||||
.isNull(XzHikvisionSync::getIsSuccess)
|
.isNull(XzHikvisionSync::getIsSuccess)
|
||||||
.eq(XzHikvisionSync::getType, 3)
|
.eq(XzHikvisionSync::getType, 3)
|
||||||
.eq(XzHikvisionSync::getOperate, operate)
|
.eq(XzHikvisionSync::getOperate, operate)
|
||||||
.eq(XzHikvisionSync::getProjectSn, projectSn)
|
|
||||||
.eq(XzHikvisionSync::getWhoId, whoId)
|
.eq(XzHikvisionSync::getWhoId, whoId)
|
||||||
|
.eq(XzHikvisionSync::getBigType, bigType)
|
||||||
);
|
);
|
||||||
this.updateTotalStatus(projectSn, whoId, bigType);
|
this.updateTotalStatus(projectSn, whoId, bigType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateAllFailStatusIfNull(String projectSn, Long whoId, Integer bigType) {
|
public void updateAllFailStatusIfNull(String projectSn, Long whoId, Integer bigType) {
|
||||||
xzHikvisionSyncMapper.update(null, new LambdaUpdateWrapper<XzHikvisionSync>()
|
xzHikvisionSyncMapper.update(null, new LambdaUpdateWrapper<XzHikvisionSync>()
|
||||||
.set(XzHikvisionSync::getIsSuccess, 0)
|
.set(XzHikvisionSync::getIsSuccess, 0)
|
||||||
.isNull(XzHikvisionSync::getIsSuccess)
|
.isNull(XzHikvisionSync::getIsSuccess)
|
||||||
.eq(XzHikvisionSync::getProjectSn, projectSn)
|
|
||||||
.eq(XzHikvisionSync::getWhoId, whoId)
|
.eq(XzHikvisionSync::getWhoId, whoId)
|
||||||
.eq(XzHikvisionSync::getBigType, bigType)
|
.eq(XzHikvisionSync::getBigType, bigType)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -33,7 +33,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -490,7 +489,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
|||||||
* @param devSns
|
* @param devSns
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void addHkSyncRecordsAndUpdateWorkerStatus(WorkerInfo workerInfo, String devSns) {
|
public void addHkSyncRecordsAndUpdateWorkerStatus(WorkerInfo workerInfo, String devSns) {
|
||||||
//清除以前的记录
|
//清除以前的记录
|
||||||
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||||
@ -512,7 +511,6 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
|||||||
* @param userId
|
* @param userId
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(propagation = Propagation.NOT_SUPPORTED)
|
|
||||||
public void buildAndSendBatchWorkerForHk(ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> allDevList, List<WorkerInfo> workerList, Long userId) {
|
public void buildAndSendBatchWorkerForHk(ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> allDevList, List<WorkerInfo> workerList, Long userId) {
|
||||||
//构建workerAndDevSnList
|
//构建workerAndDevSnList
|
||||||
List<JSONObject> workerAndDevSnList = new ArrayList<>();
|
List<JSONObject> workerAndDevSnList = new ArrayList<>();
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import java.io.IOException;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.Future;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 劳务人员
|
* @Description: 劳务人员
|
||||||
@ -159,7 +160,7 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
|
|||||||
|
|
||||||
void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo);
|
void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo);
|
||||||
|
|
||||||
void editWorkerForSendBatchAuth(WorkerInfo workerInfo);
|
Future editWorkerAsyncForSendBatchAuth(WorkerInfo workerInfo);
|
||||||
|
|
||||||
void editWorkerForHikvision(WorkerInfo workerInfo);
|
void editWorkerForHikvision(WorkerInfo workerInfo);
|
||||||
|
|
||||||
|
|||||||
@ -200,16 +200,20 @@ public class UfaceDevServiceImpl extends ServiceImpl<UfaceDevMapper, UfaceDev> i
|
|||||||
public void sendBatchWokerDev(Map<String, Object> map) {
|
public void sendBatchWokerDev(Map<String, Object> map) {
|
||||||
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, MapUtils.getString(map, "projectSn"));
|
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, MapUtils.getString(map, "projectSn"));
|
||||||
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigService.getOne(queryWrapper);
|
ProjectUfaceConfig ufaceConfig = projectUfaceConfigService.getOne(queryWrapper);
|
||||||
ThreadLocalUtil.addInKey("now", new Date());
|
ThreadLocalUtil.addInKey("now", new Date());
|
||||||
if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) {
|
if (ufaceConfig != null && ufaceConfig.getIssueDev() == 1) {
|
||||||
QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
|
QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(UfaceDev::getProjectSn, MapUtils.getString(map, "projectSn"));
|
qw.lambda().eq(UfaceDev::getProjectSn, MapUtils.getString(map, "projectSn"));
|
||||||
List<UfaceDev> list = ufaceDevMapper.selectList(qw);
|
List<UfaceDev> list = ufaceDevMapper.selectList(qw);
|
||||||
if (list == null || list.size() == 0) {
|
if (list == null || list.size() == 0) {
|
||||||
throw new OpenAlertException("请先添加设备");
|
throw new OpenAlertException("请先添加设备");
|
||||||
}
|
}
|
||||||
asyncWorker.sendBatchWokerDevAsync(map, tempProjectUfaceConfig, list);
|
if (ufaceConfig.getSupplierType() == 9) {
|
||||||
|
asyncWorker.sendBatchWokerDev(map, ufaceConfig, list);
|
||||||
|
} else {
|
||||||
|
asyncWorker.sendBatchWokerDevAsync(map, ufaceConfig, list);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new OpenAlertException("项目配置不下发设备或未配置参数");
|
throw new OpenAlertException("项目配置不下发设备或未配置参数");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -69,6 +69,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -82,6 +83,7 @@ import java.math.BigDecimal;
|
|||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -104,94 +106,135 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
public CarInfoServiceImpl carInfoService;
|
public CarInfoServiceImpl carInfoService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
IWorkerSafeEducationWorkerService workerSafeEducationWorkerService;
|
IWorkerSafeEducationWorkerService workerSafeEducationWorkerService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
WorkerInfoServiceImpl workerInfoService;
|
WorkerInfoServiceImpl workerInfoService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IDictionaryItemService dictionaryItemService;
|
private IDictionaryItemService dictionaryItemService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private InspectTaskRecordMapper inspectTaskRecordMapper;
|
private InspectTaskRecordMapper inspectTaskRecordMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private XzSupplierQualificationApplyServiceImpl xzSupplierQualificationApplyService;
|
private XzSupplierQualificationApplyServiceImpl xzSupplierQualificationApplyService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private AiAnalyseHardWareAlarmRecordMapper aiAnalyseHardWareAlarmRecordMapper;
|
private AiAnalyseHardWareAlarmRecordMapper aiAnalyseHardWareAlarmRecordMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private HiddenDangerInspectRecordMapper hiddenDangerInspectRecordMapper;
|
private HiddenDangerInspectRecordMapper hiddenDangerInspectRecordMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private HikvisionCall hikvisionCall;
|
private HikvisionCall hikvisionCall;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private AsyncJiLianDa asyncJiLianDa;
|
private AsyncJiLianDa asyncJiLianDa;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private NoticeServiceImpl noticeService;
|
private NoticeServiceImpl noticeService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private UfaceDevMapper ufaceDevMapper;
|
private UfaceDevMapper ufaceDevMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICompanyService companyService;
|
private ICompanyService companyService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkerInfoMapper workerInfoMapper;
|
private WorkerInfoMapper workerInfoMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkerSafeEducationWorkerMapper workerSafeEducationWorkerMapper;
|
private WorkerSafeEducationWorkerMapper workerSafeEducationWorkerMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IProjectUfaceConfigService projectUfaceConfigService;
|
private IProjectUfaceConfigService projectUfaceConfigService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private CompanyMapper companyMapper;
|
private CompanyMapper companyMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectMapper projectMapper;
|
private ProjectMapper projectMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private TeamInfoMapper teamInfoMapper;
|
private TeamInfoMapper teamInfoMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkerAttendanceMapper workerAttendanceMapper;
|
private WorkerAttendanceMapper workerAttendanceMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkerSafeEducationMapper workerSafeEducationMapper;
|
private WorkerSafeEducationMapper workerSafeEducationMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWorkerMonthAttendanceStatisticsService workerMonthAttendanceStatisticsService;
|
private IWorkerMonthAttendanceStatisticsService workerMonthAttendanceStatisticsService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWorkerContractService workerContractService;
|
private IWorkerContractService workerContractService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWorkerInsuranceService workerInsuranceService;
|
private IWorkerInsuranceService workerInsuranceService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWorkerEvaluateService workerEvaluateService;
|
private IWorkerEvaluateService workerEvaluateService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWorkerPhysicalsService workerPhysicalsService;
|
private IWorkerPhysicalsService workerPhysicalsService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWorkerCertificateService workerCertificateService;
|
private IWorkerCertificateService workerCertificateService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private EnterpriseInfoMapper enterpriseInfoMapper;
|
private EnterpriseInfoMapper enterpriseInfoMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectEnterpriseMapper projectEnterpriseMapper;
|
private ProjectEnterpriseMapper projectEnterpriseMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private EnterpriseTypeMapper enterpriseTypeMapper;
|
private EnterpriseTypeMapper enterpriseTypeMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private DepartmentInfoMapper departmentInfoMapper;
|
private DepartmentInfoMapper departmentInfoMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkerTypeMapper workerTypeMapper;
|
private WorkerTypeMapper workerTypeMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private UploadFileService uploadFileService;
|
private UploadFileService uploadFileService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private AsyncWorker asyncWorker;
|
private AsyncWorker asyncWorker;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private AsyncHikvision asyncHikvision;
|
private AsyncHikvision asyncHikvision;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWorkerPhotoFeaturesService workerPhotoFeaturesService;
|
private IWorkerPhotoFeaturesService workerPhotoFeaturesService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private GovtOpenApiService govtOpenApiService;
|
private GovtOpenApiService govtOpenApiService;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private EnvironmentUtil environmentUtil;
|
private EnvironmentUtil environmentUtil;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private SystemUserMapper systemUserMapper;
|
private SystemUserMapper systemUserMapper;
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkerInfoDeleteMapper workerInfoDeleteMapper;
|
private WorkerInfoDeleteMapper workerInfoDeleteMapper;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private SystemUserServiceImpl systemUserService;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private EnterpriseInfoServiceImpl enterpriseInfoService;
|
||||||
@Value("${serverUrl}")
|
@Value("${serverUrl}")
|
||||||
private String serverUrl;
|
private String serverUrl;
|
||||||
@Value("${basePath}")
|
@Value("${basePath}")
|
||||||
private String basePath;
|
private String basePath;
|
||||||
@Value("${isGetFaceFeatureDate}")
|
@Value("${isGetFaceFeatureDate}")
|
||||||
private boolean isGetFaceFeatureDate;
|
private boolean isGetFaceFeatureDate;
|
||||||
@Autowired
|
|
||||||
private SystemUserServiceImpl systemUserService;
|
|
||||||
@Autowired
|
|
||||||
private EnterpriseInfoServiceImpl enterpriseInfoService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 人员管理分页
|
* 人员管理分页
|
||||||
@ -2412,17 +2455,19 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 同步的,不删除同步的记录
|
* 不删除同步的记录
|
||||||
*
|
*
|
||||||
* @param workerInfo
|
* @param workerInfo
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void editWorkerForSendBatchAuth(WorkerInfo workerInfo) {
|
@Async("workerHkExecutor")
|
||||||
|
public Future editWorkerAsyncForSendBatchAuth(WorkerInfo workerInfo) {
|
||||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||||
if (StrUtil.isNotBlank(workerInfo.getFieldAcquisitionUrl())) {
|
if (StrUtil.isNotBlank(workerInfo.getFieldAcquisitionUrl())) {
|
||||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||||
}
|
}
|
||||||
asyncHikvision.editWorker(workerInfo, true, true);
|
asyncHikvision.editWorker(workerInfo, true, true);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -20,6 +20,6 @@
|
|||||||
) t2 on
|
) t2 on
|
||||||
t1.create_date=t2.create_date and t1.who_id=t2.who_id
|
t1.create_date=t2.create_date and t1.who_id=t2.who_id
|
||||||
left join uface_dev ud on t1.device_sn = ud.dev_sn
|
left join uface_dev ud on t1.device_sn = ud.dev_sn
|
||||||
order by t1.type
|
order by t1.type,t1.id
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||||
<pattern>%green(%d{yyyy-MM-dd HH:mm:ss} [%X{requestId}][%thread] %-5level %logger{0}.%method:%L) - %highlight(%msg) %X{stackInfo} %n
|
<pattern>%green(%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{requestId}][%thread] %-5level %logger{0}.%method:%L) - %highlight(%msg) %X{stackInfo} %n
|
||||||
</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
<filter class="com.zhgd.config.LogPrintFilter">
|
<filter class="com.zhgd.config.LogPrintFilter">
|
||||||
@ -19,7 +19,7 @@
|
|||||||
<file>${log.path}/zhgd-debug.log</file>
|
<file>${log.path}/zhgd-debug.log</file>
|
||||||
<!--日志文件输出格式-->
|
<!--日志文件输出格式-->
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%X{requestId}] [%thread] %-5level %logger{50} - %msg%n</pattern>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{requestId}] [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||||
<charset>UTF-8</charset> <!-- 设置字符集 -->
|
<charset>UTF-8</charset> <!-- 设置字符集 -->
|
||||||
</encoder>
|
</encoder>
|
||||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||||
@ -46,7 +46,7 @@
|
|||||||
<file>${log.path}/zhgd-info.log</file>
|
<file>${log.path}/zhgd-info.log</file>
|
||||||
<!--日志文件输出格式-->
|
<!--日志文件输出格式-->
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%X{requestId}] [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{requestId}] [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
|
||||||
<charset>UTF-8</charset>
|
<charset>UTF-8</charset>
|
||||||
</encoder>
|
</encoder>
|
||||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||||
@ -72,7 +72,7 @@
|
|||||||
<file>${log.path}/zhgd-error.log</file>
|
<file>${log.path}/zhgd-error.log</file>
|
||||||
<!--日志文件输出格式-->
|
<!--日志文件输出格式-->
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%X{requestId}] [%thread] %-5level %logger{50} - %msg%n</pattern>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{requestId}] [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||||
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
|
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
|
||||||
</encoder>
|
</encoder>
|
||||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||||
@ -98,7 +98,7 @@
|
|||||||
<file>${log.path}/zhgd-all.log</file>
|
<file>${log.path}/zhgd-all.log</file>
|
||||||
<!--日志文件输出格式-->
|
<!--日志文件输出格式-->
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%X{requestId}] [%thread] %highlight(%-5level) %method:%L %cyan(%logger{50}) - %highlight(%msg) %n</pattern>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{requestId}] [%thread] %highlight(%-5level) %method:%L %cyan(%logger{50}) - %highlight(%msg) %n</pattern>
|
||||||
<charset>UTF-8</charset> <!-- 设置字符集 -->
|
<charset>UTF-8</charset> <!-- 设置字符集 -->
|
||||||
</encoder>
|
</encoder>
|
||||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user