海康下发修改

This commit is contained in:
GUO 2024-06-16 13:36:40 +08:00
parent 576f600850
commit 9677938533
9 changed files with 116 additions and 34 deletions

View File

@ -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)) {
//添加权限 //添加权限

View File

@ -72,6 +72,10 @@ public class AsyncWorker {
} }
} }
public void sendBatchWokerDev(Map<String, Object> map, ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> allDevList) {
this.sendBatchWokerDevAsync(map, projectUfaceConfig, allDevList);
}
/** /**
* 批量数据发送任务 * 批量数据发送任务
* *

View File

@ -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)
); );

View File

@ -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<>();

View File

@ -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);

View File

@ -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("项目配置不下发设备或未配置参数");
} }

View File

@ -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

View File

@ -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>

View File

@ -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>
<!-- 日志记录器的滚动策略,按日期,按大小记录 --> <!-- 日志记录器的滚动策略,按日期,按大小记录 -->