人员状态修改

This commit is contained in:
GUO 2024-05-29 23:48:13 +08:00
parent e8f3b594a9
commit b8cbea2454
5 changed files with 33 additions and 17 deletions

View File

@ -64,8 +64,13 @@ public class AsyncHikvision {
@Autowired
private XzHikvisionSyncMapper xzHikvisionSyncMapper;
public static Date getSyncLotNow() {
return ThreadLocalUtil.getNotNull().getDate("now");
public static Date getSyncLotNowOrSetIfNull() {
Date now = ThreadLocalUtil.getNotNull().getDate("now");
if (now == null) {
now = new Date();
ThreadLocalUtil.addInKey("now", now);
}
return now;
}
/**
@ -86,7 +91,7 @@ public class AsyncHikvision {
}
public void addWorkerForHikvision(WorkerInfo workerInfo) {
Date now = getSyncLotNow();
Date now = getSyncLotNowOrSetIfNull();
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(1).setWhoId(workerInfo.getId()).setCreateDate(now));
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(1).setWhoId(workerInfo.getId()).setCreateDate(now));
asyncHikvision.addWorkerForHikvisionAsync(workerInfo, now);
@ -104,7 +109,7 @@ public class AsyncHikvision {
}
public void editWorkerForHikvision(WorkerInfo workerInfo) {
Date now = getSyncLotNow();
Date now = getSyncLotNowOrSetIfNull();
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(2).setWhoId(workerInfo.getId()).setCreateDate(now));
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(2).setWhoId(workerInfo.getId()).setCreateDate(now));
asyncHikvision.editWorkerForHikvisionAsync(workerInfo, now);
@ -124,7 +129,7 @@ public class AsyncHikvision {
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, type);
}
hikvisionCall.updateAllFailStatusIfNullByNow(workerInfo.getProjectSn(), workerInfo.getId(), 1, getSyncLotNow());
hikvisionCall.updateAllFailStatusIfNullByNow(workerInfo.getProjectSn(), workerInfo.getId(), 1, getSyncLotNowOrSetIfNull());
}
@Async("hikvisionExecutor")
@ -139,7 +144,7 @@ public class AsyncHikvision {
}
public void deleteWorkerForHikvision(WorkerInfo workerInfo) {
Date now = getSyncLotNow();
Date now = getSyncLotNowOrSetIfNull();
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(3).setWhoId(workerInfo.getId()).setCreateDate(now));
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(3).setWhoId(workerInfo.getId()).setCreateDate(now));
asyncHikvision.deleteWorkerForHikvisionAsync(workerInfo, now);
@ -202,7 +207,7 @@ public class AsyncHikvision {
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, type);
}
hikvisionCall.updateAllFailStatusIfNullByNow(carInfo.getProjectSn(), carInfo.getId(), 4, getSyncLotNow());
hikvisionCall.updateAllFailStatusIfNullByNow(carInfo.getProjectSn(), carInfo.getId(), 4, getSyncLotNowOrSetIfNull());
}
public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) {
@ -374,7 +379,7 @@ public class AsyncHikvision {
if (StringUtils.isBlank(devSn)) {
return;
}
Date now = getSyncLotNow();
Date now = getSyncLotNowOrSetIfNull();
String[] devSnArr = StringUtils.split(devSn, ",");
for (String ds : devSnArr) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(1).setWhoId(workerInfo.getId()).setDeviceSn(ds).setCreateDate(now));
@ -399,7 +404,7 @@ public class AsyncHikvision {
} else {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), e.getMessage(), "人员下发设备提醒", "1");
}
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncLotNow());
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncLotNowOrSetIfNull());
return;
}
@ -419,7 +424,7 @@ public class AsyncHikvision {
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), StringUtils.substring(msg, 0, msg.length() - 1), title, type);
}
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncLotNow());
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncLotNowOrSetIfNull());
} catch (Exception e) {
log.error("海康:", e);
}
@ -435,7 +440,7 @@ public class AsyncHikvision {
if (StringUtils.isBlank(devSns)) {
return;
}
Date now = getSyncLotNow();
Date now = getSyncLotNowOrSetIfNull();
String[] devSnArr = StringUtils.split(devSns, ",");
for (String ds : devSnArr) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(3).setWhoId(workerInfo.getId()).setDeviceSn(ds).setCreateDate(now));
@ -463,7 +468,7 @@ public class AsyncHikvision {
} else {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), e.getMessage(), "人员下发设备提醒", "1");
}
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncLotNow());
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncLotNowOrSetIfNull());
return;
}
@ -483,7 +488,7 @@ public class AsyncHikvision {
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), StringUtils.substring(msg, 0, msg.length() - 1), title, type);
}
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncLotNow());
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncLotNowOrSetIfNull());
} catch (Exception e) {
log.error("海康:", e);
}

View File

@ -9,6 +9,7 @@ import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -29,6 +30,9 @@ import java.util.Map;
@Slf4j
@Component
public class AsyncWorker {
@Lazy
@Autowired
private WorkerInfoServiceImpl workerInfoService;
@Autowired
private WorkerInfoMapper workerInfoMapper;
@Autowired
@ -82,6 +86,7 @@ public class AsyncWorker {
try {
info.setNoticeUserId(userId);
projectUfaceConfigService.sendBatchWorkerInfo(info, projectUfaceConfig, devList);
workerInfoService.resetHkStatus(info);
} catch (Exception e) {
log.error("下发人员异常,人员名称:{}", info.getWorkerName() + "," + e.getMessage());
noticeFail(info.getWorkerName(), userId, e);

View File

@ -1220,10 +1220,10 @@ public class HikvisionCall {
Integer sendSuccessStatus = null;
if (xzHikvisionSyncs.stream().allMatch(xzHikvisionSync1 -> Objects.equals(xzHikvisionSync1.getIsSuccess(), 1))) {
sendSuccessStatus = 1;
} else if (xzHikvisionSyncs.stream().allMatch(xzHikvisionSync1 -> Objects.equals(xzHikvisionSync1.getIsSuccess(), 0))) {
sendSuccessStatus = 2;
} else if (xzHikvisionSyncs.stream().allMatch(xzHikvisionSync1 -> xzHikvisionSync1.getIsSuccess() == null)) {
sendSuccessStatus = null;
} else if (xzHikvisionSyncs.stream().allMatch(xzHikvisionSync1 -> xzHikvisionSync1.getIsSuccess() == null || Objects.equals(xzHikvisionSync1.getIsSuccess(), 0))) {
sendSuccessStatus = 2;
} else {
sendSuccessStatus = 3;
}

View File

@ -25,6 +25,7 @@ import com.zhgd.xmgl.util.*;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -42,7 +43,10 @@ import java.util.stream.Stream;
@Service
@Transactional(rollbackFor = Exception.class)
public class UfaceDevServiceImpl extends ServiceImpl<UfaceDevMapper, UfaceDev> implements IUfaceDevService {
@Lazy
@Autowired
private WorkerInfoServiceImpl workerInfoService;
@Autowired
private IUserDevAuthorityService userDevAuthorityService;
@Autowired
private UfaceDevMapper ufaceDevMapper;

View File

@ -456,7 +456,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
}
public void resetHkStatus(WorkerInfo workerInfo) {
hikvisionCall.updateTotalStatus(workerInfo.getProjectSn(), workerInfo.getId(), 1, AsyncHikvision.getSyncLotNow());
hikvisionCall.updateTotalStatus(workerInfo.getProjectSn(), workerInfo.getId(), 1, AsyncHikvision.getSyncLotNowOrSetIfNull());
}
/**
@ -2185,6 +2185,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
WorkerInfo workerInfo = baseMapper.selectById(id);
if (notNeedSend(old, workerInfo)) return;
projectUfaceConfigService.updateWorkerInfo(workerInfo, workerInfo);
resetHkStatus(workerInfo);
}
private boolean notNeedSend(WorkerInfo old, WorkerInfo newWi) {
@ -2204,7 +2205,8 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
}
updateById(workerInfo);
if (Objects.equals(workerInfo.getSafeScore(), 100D)) {
projectUfaceConfigService.updateWorkerInfo(workerInfo, old);
old.setSafeScore(100D);
projectUfaceConfigService.updateWorkerInfo(old, old);
}
}