人员状态修改

This commit is contained in:
GUO 2024-05-29 22:35:47 +08:00
parent 65280f9a97
commit e8f3b594a9
4 changed files with 31 additions and 18 deletions

View File

@ -15,6 +15,7 @@ import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.entity.TeamInfo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper;
import com.zhgd.xmgl.security.util.SecurityUtils;
@ -35,6 +36,9 @@ import java.util.Objects;
@Slf4j
@Component
public class AsyncHikvision {
@Autowired
@Lazy
WorkerInfoServiceImpl workerInfoService;
@Autowired
@Lazy
HikvisionCall hikvisionCall;
@ -60,6 +64,10 @@ public class AsyncHikvision {
@Autowired
private XzHikvisionSyncMapper xzHikvisionSyncMapper;
public static Date getSyncLotNow() {
return ThreadLocalUtil.getNotNull().getDate("now");
}
/**
* 添加劳务人员-海康
*
@ -78,7 +86,7 @@ public class AsyncHikvision {
}
public void addWorkerForHikvision(WorkerInfo workerInfo) {
Date now = ThreadLocalUtil.getNotNull().getDate("now");
Date now = getSyncLotNow();
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);
@ -96,7 +104,7 @@ public class AsyncHikvision {
}
public void editWorkerForHikvision(WorkerInfo workerInfo) {
Date now = ThreadLocalUtil.getNotNull().getDate("now");
Date now = getSyncLotNow();
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);
@ -116,7 +124,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, ThreadLocalUtil.getNotNull().getDate("now"));
hikvisionCall.updateAllFailStatusIfNullByNow(workerInfo.getProjectSn(), workerInfo.getId(), 1, getSyncLotNow());
}
@Async("hikvisionExecutor")
@ -131,7 +139,7 @@ public class AsyncHikvision {
}
public void deleteWorkerForHikvision(WorkerInfo workerInfo) {
Date now = ThreadLocalUtil.getNotNull().getDate("now");
Date now = getSyncLotNow();
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);
@ -180,7 +188,6 @@ public class AsyncHikvision {
hikvisionCall.handleAlarmCar(project, carInfo);
}
private void sendNoticeForCar(CarInfo carInfo, Exception e, String action) {
String title = action + "车辆到海康isc失败";
String type = "24";
@ -195,7 +202,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, ThreadLocalUtil.getNotNull().getDate("now"));
hikvisionCall.updateAllFailStatusIfNullByNow(carInfo.getProjectSn(), carInfo.getId(), 4, getSyncLotNow());
}
public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) {
@ -367,7 +374,7 @@ public class AsyncHikvision {
if (StringUtils.isBlank(devSn)) {
return;
}
Date now = ThreadLocalUtil.getNotNull().getDate("now");
Date now = getSyncLotNow();
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));
@ -392,7 +399,7 @@ public class AsyncHikvision {
} else {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), e.getMessage(), "人员下发设备提醒", "1");
}
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, ThreadLocalUtil.getNotNull().getDate("now"));
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncLotNow());
return;
}
@ -412,7 +419,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, ThreadLocalUtil.getNotNull().getDate("now"));
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncLotNow());
} catch (Exception e) {
log.error("海康:", e);
}
@ -428,7 +435,7 @@ public class AsyncHikvision {
if (StringUtils.isBlank(devSns)) {
return;
}
Date now = ThreadLocalUtil.getNotNull().getDate("now");
Date now = getSyncLotNow();
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));
@ -456,7 +463,7 @@ public class AsyncHikvision {
} else {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), e.getMessage(), "人员下发设备提醒", "1");
}
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, ThreadLocalUtil.getNotNull().getDate("now"));
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncLotNow());
return;
}
@ -476,7 +483,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, ThreadLocalUtil.getNotNull().getDate("now"));
hikvisionCall.updateAllFailStatusIfNullByNowForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncLotNow());
} catch (Exception e) {
log.error("海康:", e);
}

View File

@ -1211,7 +1211,7 @@ public class HikvisionCall {
updateTotalStatus(projectSn, whoId, type, now);
}
private void updateTotalStatus(String projectSn, Long whoId, Integer bigType, Date now) {
public void updateTotalStatus(String projectSn, Long whoId, Integer bigType, Date now) {
List<XzHikvisionSync> xzHikvisionSyncs = xzHikvisionSyncMapper.selectList(new LambdaQueryWrapper<XzHikvisionSync>()
.eq(XzHikvisionSync::getProjectSn, projectSn)
.eq(XzHikvisionSync::getWhoId, whoId)

View File

@ -16,11 +16,13 @@ import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper;
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevToGroupMapper;
import com.zhgd.xmgl.modules.worker.mapper.UserDevAuthorityMapper;
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
import com.zhgd.xmgl.util.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -37,6 +39,9 @@ import java.util.stream.Collectors;
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfigMapper, ProjectUfaceConfig> implements IProjectUfaceConfigService {
@Lazy
@Autowired
private WorkerInfoServiceImpl workerInfoService;
@Autowired
private ProjectUfaceConfigMapper projectUfaceConfigMapper;
@Autowired
@ -311,6 +316,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
}
}
}
workerInfoService.resetHkStatus(workerInfo);
} else {
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());

View File

@ -14,7 +14,6 @@ import cn.hutool.poi.excel.ExcelWriter;
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.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -434,10 +433,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
}
WorkerInfo oldWorkerInfo = workerInfoMapper.selectById(workerInfo.getId());
workerInfoMapper.updateById(workerInfo);
workerInfoMapper.update(null, new LambdaUpdateWrapper<WorkerInfo>()
.set(WorkerInfo::getSendSuccessStatus, null)
.eq(WorkerInfo::getId, workerInfo.getId())
);
//同步海康
asyncHikvision.editWorkerForHikvision(workerInfo);
@ -456,9 +451,14 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
govtOpenApiService.workerInfoAddSync(workerInfo);
}
asyncJiLianDa.saveWorkerInfo(workerInfo);
resetHkStatus(workerInfo);
return workerInfo;
}
public void resetHkStatus(WorkerInfo workerInfo) {
hikvisionCall.updateTotalStatus(workerInfo.getProjectSn(), workerInfo.getId(), 1, AsyncHikvision.getSyncLotNow());
}
/**
* 根据Id删除人员
*