海康下发修改
This commit is contained in:
parent
5c4ea16ad9
commit
e003e303e1
@ -2,20 +2,21 @@ package com.zhgd.netty.tcp.listener;
|
|||||||
|
|
||||||
import io.netty.util.concurrent.Future;
|
import io.netty.util.concurrent.Future;
|
||||||
import io.netty.util.concurrent.GenericFutureListener;
|
import io.netty.util.concurrent.GenericFutureListener;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author chenws
|
* @author chenws
|
||||||
* @date 2020/03/17 15:58:10
|
* @date 2020/03/17 15:58:10
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
public class BindListener implements GenericFutureListener<Future<? super Void>> {
|
public class BindListener implements GenericFutureListener<Future<? super Void>> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void operationComplete(Future future) throws Exception {
|
public void operationComplete(Future future) throws Exception {
|
||||||
if (future.isSuccess()) {
|
if (future.isSuccess()) {
|
||||||
System.out.println("绑定成功");
|
|
||||||
} else {
|
} else {
|
||||||
//打印错误信息,也可自定义处理
|
//打印错误信息,也可自定义处理
|
||||||
future.cause().printStackTrace();
|
log.error("", future.cause());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,8 +37,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
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.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
@ -689,7 +687,6 @@ public class AsyncHikvision {
|
|||||||
* @param addAuthWorkerIds
|
* @param addAuthWorkerIds
|
||||||
* @param sendNotice
|
* @param sendNotice
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
|
||||||
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, Map<String, UfaceDev> devSnMap, JSONArray qaiList, int i, String devSn, String projectSn, List<String> addAuthWorkerIds, boolean sendNotice) {
|
||||||
JSONObject jo = qaiList.getJSONObject(i);
|
JSONObject jo = qaiList.getJSONObject(i);
|
||||||
String personId = jo.getString("personId");
|
String personId = jo.getString("personId");
|
||||||
|
|||||||
@ -1166,11 +1166,11 @@ public class HikvisionCall {
|
|||||||
*/
|
*/
|
||||||
public void updateAllFailStatusIfNullForAuth(String projectSn, List<WorkerInfo> workerList, Integer bigType, Integer operate) {
|
public void updateAllFailStatusIfNullForAuth(String projectSn, List<WorkerInfo> workerList, Integer bigType, Integer operate) {
|
||||||
for (WorkerInfo workerInfo : workerList) {
|
for (WorkerInfo workerInfo : workerList) {
|
||||||
updateAllFailStatusIfNullForAuth(projectSn, workerInfo.getId(), bigType, operate);
|
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, workerInfo.getId(), bigType, operate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateAllFailStatusIfNullForAuth(String projectSn, Long whoId, Integer bigType, Integer operate) {
|
public void updateAllFailStatusIfNullForAuth(String projectSn, Long whoId, Integer bigType, Integer operate) {
|
||||||
xzHikvisionSyncMapper.update(null, new LambdaUpdateWrapper<XzHikvisionSync>()
|
xzHikvisionSyncMapper.update(null, new LambdaUpdateWrapper<XzHikvisionSync>()
|
||||||
.set(XzHikvisionSync::getIsSuccess, 0)
|
.set(XzHikvisionSync::getIsSuccess, 0)
|
||||||
@ -1180,7 +1180,7 @@ public class HikvisionCall {
|
|||||||
.eq(XzHikvisionSync::getProjectSn, projectSn)
|
.eq(XzHikvisionSync::getProjectSn, projectSn)
|
||||||
.eq(XzHikvisionSync::getWhoId, whoId)
|
.eq(XzHikvisionSync::getWhoId, whoId)
|
||||||
);
|
);
|
||||||
updateTotalStatus(projectSn, whoId, bigType);
|
this.updateTotalStatus(projectSn, whoId, bigType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
||||||
@ -1212,7 +1212,7 @@ public class HikvisionCall {
|
|||||||
updateStatus(projectSn, whoId, type, operate, deviceSn, true);
|
updateStatus(projectSn, whoId, type, operate, deviceSn, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateStatus(String projectSn, Long whoId, Integer type, Integer operate, String deviceSn, Boolean isSuccess) {
|
public void updateStatus(String projectSn, Long whoId, Integer type, Integer operate, String deviceSn, Boolean isSuccess) {
|
||||||
LambdaQueryWrapper<XzHikvisionSync> queryWrapper = new LambdaQueryWrapper<XzHikvisionSync>()
|
LambdaQueryWrapper<XzHikvisionSync> queryWrapper = new LambdaQueryWrapper<XzHikvisionSync>()
|
||||||
.eq(XzHikvisionSync::getProjectSn, projectSn)
|
.eq(XzHikvisionSync::getProjectSn, projectSn)
|
||||||
|
|||||||
@ -24,8 +24,8 @@ import org.apache.commons.collections.MapUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -40,13 +40,15 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> implements INoticeService {
|
public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> implements INoticeService {
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
NoticeServiceImpl noticeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private NoticeMapper noticeMapper;
|
private NoticeMapper noticeMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMqttSender mqttPushClient;
|
private IMqttSender mqttPushClient;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SystemUserMapper systemUserMapper;
|
private SystemUserMapper systemUserMapper;
|
||||||
|
|
||||||
@Value("${mqtt-scope}")
|
@Value("${mqtt-scope}")
|
||||||
private String scope;
|
private String scope;
|
||||||
@Lazy
|
@Lazy
|
||||||
@ -73,7 +75,7 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
|
|||||||
public void addNotice(Notice notice, boolean isSendMqtt) {
|
public void addNotice(Notice notice, boolean isSendMqtt) {
|
||||||
noticeMapper.insert(notice);
|
noticeMapper.insert(notice);
|
||||||
if (isSendMqtt) {
|
if (isSendMqtt) {
|
||||||
sendMqttMessage(notice);
|
noticeService.sendMqttMessage(notice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +97,7 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
|
|||||||
notice.setType(type);
|
notice.setType(type);
|
||||||
notice.setPayload(payload);
|
notice.setPayload(payload);
|
||||||
noticeMapper.insert(notice);
|
noticeMapper.insert(notice);
|
||||||
sendMqttMessage(notice);
|
noticeService.sendMqttMessage(notice);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -153,6 +155,7 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Async("sendBatchExecutor")
|
||||||
public void sendMqttMessage(Notice notice) {
|
public void sendMqttMessage(Notice notice) {
|
||||||
sendMqttMessage(notice, "");
|
sendMqttMessage(notice, "");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,6 +33,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.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.*;
|
||||||
@ -63,6 +64,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
|||||||
IUfaceDevService ufaceDevService;
|
IUfaceDevService ufaceDevService;
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
|
ProjectUfaceConfigServiceImpl projectUfaceConfigService;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
private WorkerInfoServiceImpl workerInfoService;
|
private WorkerInfoServiceImpl workerInfoService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectUfaceConfigMapper projectUfaceConfigMapper;
|
private ProjectUfaceConfigMapper projectUfaceConfigMapper;
|
||||||
@ -485,7 +489,13 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
|||||||
* @param devSns
|
* @param devSns
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
||||||
public void addHkSyncRecordsAndUpdateWorkerStatus(WorkerInfo workerInfo, String devSns) {
|
public void addHkSyncRecordsAndUpdateWorkerStatus(WorkerInfo workerInfo, String devSns) {
|
||||||
|
//清除以前的记录
|
||||||
|
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||||
|
.eq(XzHikvisionSync::getBigType, 1)
|
||||||
|
.eq(XzHikvisionSync::getWhoId, workerInfo.getId())
|
||||||
|
);
|
||||||
for (String ds : StrUtil.split(devSns, ",")) {
|
for (String ds : StrUtil.split(devSns, ",")) {
|
||||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(1).setWhoId(workerInfo.getId()).setDeviceSn(ds).setBigType(1).setCreateDate(getSyncTimeWithInitAndDeleteSyncIfAbsent(1, workerInfo.getId())));
|
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(1).setWhoId(workerInfo.getId()).setDeviceSn(ds).setBigType(1).setCreateDate(getSyncTimeWithInitAndDeleteSyncIfAbsent(1, workerInfo.getId())));
|
||||||
}
|
}
|
||||||
@ -501,6 +511,7 @@ 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<>();
|
||||||
@ -513,12 +524,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
|||||||
Pair<String, String> devSnsAndDevIdsPair = this.getBatchDevSnsAndDevIds(workerInfo, allDevList);
|
Pair<String, String> devSnsAndDevIdsPair = this.getBatchDevSnsAndDevIds(workerInfo, allDevList);
|
||||||
if (devSnsAndDevIdsPair.getRight() != null) {
|
if (devSnsAndDevIdsPair.getRight() != null) {
|
||||||
String devSns = devSnsAndDevIdsPair.getLeft();
|
String devSns = devSnsAndDevIdsPair.getLeft();
|
||||||
//清除以前的记录
|
projectUfaceConfigService.addHkSyncRecordsAndUpdateWorkerStatus(workerInfo, devSns);
|
||||||
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
|
||||||
.eq(XzHikvisionSync::getBigType, 1)
|
|
||||||
.eq(XzHikvisionSync::getWhoId, workerInfo.getId())
|
|
||||||
);
|
|
||||||
this.addHkSyncRecordsAndUpdateWorkerStatus(workerInfo, devSns);
|
|
||||||
List<String> devSnList = StrUtil.split(devSns, ",");
|
List<String> devSnList = StrUtil.split(devSns, ",");
|
||||||
for (String devSn : devSnList) {
|
for (String devSn : devSnList) {
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
|
|||||||
@ -70,6 +70,7 @@ 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.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 org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@ -106,6 +107,8 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
@Autowired
|
@Autowired
|
||||||
IWorkerSafeEducationWorkerService workerSafeEducationWorkerService;
|
IWorkerSafeEducationWorkerService workerSafeEducationWorkerService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
WorkerInfoServiceImpl workerInfoService;
|
||||||
|
@Autowired
|
||||||
private IDictionaryItemService dictionaryItemService;
|
private IDictionaryItemService dictionaryItemService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private InspectTaskRecordMapper inspectTaskRecordMapper;
|
private InspectTaskRecordMapper inspectTaskRecordMapper;
|
||||||
@ -918,7 +921,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProjectWorkerStatisticsVo selectProjectWorkerStatistics(Map<String, Object> map) {
|
public ProjectWorkerStatisticsVo selectProjectWorkerStatistics(Map<String, Object> map) {
|
||||||
Map<String, Object> data = new HashMap<>();
|
Map<String, Object> data = new HashMap<>();
|
||||||
@ -1350,7 +1352,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
return workerInfoMapper.getWorkerInfoList(map);
|
return workerInfoMapper.getWorkerInfoList(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询劳务人员和管理人员列表
|
* 查询劳务人员和管理人员列表
|
||||||
*
|
*
|
||||||
@ -1425,7 +1426,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void addOrEditWork(Map<String, Object> work, Map<String, Object> info, Integer type) {
|
public void addOrEditWork(Map<String, Object> work, Map<String, Object> info, Integer type) {
|
||||||
WorkerInfo workerInfo = new WorkerInfo();
|
WorkerInfo workerInfo = new WorkerInfo();
|
||||||
workerInfo.setWorkerName(MapUtils.getString(work, "name"));
|
workerInfo.setWorkerName(MapUtils.getString(work, "name"));
|
||||||
@ -1602,7 +1602,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exporExcelWorkerTemplate(HttpServletResponse response, String projectSn) {
|
public void exporExcelWorkerTemplate(HttpServletResponse response, String projectSn) {
|
||||||
List<EntityMap> teamList = teamInfoMapper.selectTeamInfoBySnList(projectSn);
|
List<EntityMap> teamList = teamInfoMapper.selectTeamInfoBySnList(projectSn);
|
||||||
@ -1632,6 +1631,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(propagation = Propagation.NOT_SUPPORTED)
|
||||||
public Result uploadExcelWorkerInfo(MultipartFile excelFile, String projectSn) {
|
public Result uploadExcelWorkerInfo(MultipartFile excelFile, String projectSn) {
|
||||||
Result<String> result = new Result<String>();
|
Result<String> result = new Result<String>();
|
||||||
StringBuilder existName = new StringBuilder("");
|
StringBuilder existName = new StringBuilder("");
|
||||||
@ -1765,17 +1765,15 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
workerInfo.setId(oldWorkerInfo.getId());
|
workerInfo.setId(oldWorkerInfo.getId());
|
||||||
workerInfoMapper.updateById(workerInfo);
|
|
||||||
//同步海康
|
//同步海康
|
||||||
this.editWorkerForHikvision(workerInfo);
|
workerInfoService.editWorkerInfo(workerInfo);
|
||||||
} else {
|
} else {
|
||||||
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
|
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
|
||||||
workerInfo.setPersonSn(uuid);
|
workerInfo.setPersonSn(uuid);
|
||||||
workerInfo.setAddTime(new Date());
|
workerInfo.setAddTime(new Date());
|
||||||
workerInfo.setAttendanceNumber(workerInfo.getIdCard());
|
workerInfo.setAttendanceNumber(workerInfo.getIdCard());
|
||||||
workerInfoMapper.insert(workerInfo);
|
|
||||||
//同步海康
|
//同步海康
|
||||||
this.addWorkerForHikvision(workerInfo);
|
workerInfoService.saveWorkerInfo(workerInfo);
|
||||||
}
|
}
|
||||||
asyncJiLianDa.saveWorkerInfo(workerInfo);
|
asyncJiLianDa.saveWorkerInfo(workerInfo);
|
||||||
}
|
}
|
||||||
@ -2056,38 +2054,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 只需要实现全量更新,设备这边是全量更新的,人员删除后直接从白名单中删除就行,现在不是通过del这个标志判断的,这个标志应该是后面加的,设备最早不是按这个标志判断的,
|
|
||||||
* 比如之前有3个人,后面xxx人员退场了,白名单就返回剩下的两个人就行,因为默认都是全量的,增量更新需要专门开启,实现了全量就可以了
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public String getWorkerInfoByDev(GetWorkerInfoByDevDto dto) {
|
|
||||||
String deviceId = dto.getDeviceId();
|
|
||||||
UfaceDev dev = ufaceDevMapper.selectOne(new LambdaQueryWrapper<UfaceDev>()
|
|
||||||
.eq(UfaceDev::getDevSn, deviceId));
|
|
||||||
if (dev == null) {
|
|
||||||
throw new OpenAlertException("设备编号不存在");
|
|
||||||
}
|
|
||||||
String projectSn = dev.getProjectSn();
|
|
||||||
List<WorkerInfo> workerInfos = workerInfoMapper.selectList(new LambdaQueryWrapper<WorkerInfo>()
|
|
||||||
.eq(WorkerInfo::getProjectSn, projectSn)
|
|
||||||
.eq(WorkerInfo::getInserviceType, 1)
|
|
||||||
);
|
|
||||||
|
|
||||||
//添加人员
|
|
||||||
ArrayList<GetWorkerInfoByDevVo.Worker> datas = new ArrayList<>();
|
|
||||||
addDatas(workerInfos, "0", datas);
|
|
||||||
|
|
||||||
GetWorkerInfoByDevVo getWorkerInfoByDevVo = new GetWorkerInfoByDevVo();
|
|
||||||
getWorkerInfoByDevVo.setSuccess(true);
|
|
||||||
getWorkerInfoByDevVo.setCode(0);
|
|
||||||
getWorkerInfoByDevVo.setMessage("success");
|
|
||||||
getWorkerInfoByDevVo.setTime(System.currentTimeMillis() / 1000);
|
|
||||||
getWorkerInfoByDevVo.setData(datas);
|
|
||||||
getWorkerInfoByDevVo.setEvent("workers");
|
|
||||||
return JSON.toJSONString(getWorkerInfoByDevVo);
|
|
||||||
}
|
|
||||||
|
|
||||||
///*
|
///*
|
||||||
//全量和增量更新
|
//全量和增量更新
|
||||||
// */
|
// */
|
||||||
@ -2137,12 +2103,45 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
// return JSON.toJSONString(getWorkerInfoByDevVo);
|
// return JSON.toJSONString(getWorkerInfoByDevVo);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 只需要实现全量更新,设备这边是全量更新的,人员删除后直接从白名单中删除就行,现在不是通过del这个标志判断的,这个标志应该是后面加的,设备最早不是按这个标志判断的,
|
||||||
|
* 比如之前有3个人,后面xxx人员退场了,白名单就返回剩下的两个人就行,因为默认都是全量的,增量更新需要专门开启,实现了全量就可以了
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getWorkerInfoByDev(GetWorkerInfoByDevDto dto) {
|
||||||
|
String deviceId = dto.getDeviceId();
|
||||||
|
UfaceDev dev = ufaceDevMapper.selectOne(new LambdaQueryWrapper<UfaceDev>()
|
||||||
|
.eq(UfaceDev::getDevSn, deviceId));
|
||||||
|
if (dev == null) {
|
||||||
|
throw new OpenAlertException("设备编号不存在");
|
||||||
|
}
|
||||||
|
String projectSn = dev.getProjectSn();
|
||||||
|
List<WorkerInfo> workerInfos = workerInfoMapper.selectList(new LambdaQueryWrapper<WorkerInfo>()
|
||||||
|
.eq(WorkerInfo::getProjectSn, projectSn)
|
||||||
|
.eq(WorkerInfo::getInserviceType, 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
//添加人员
|
||||||
|
ArrayList<GetWorkerInfoByDevVo.Worker> datas = new ArrayList<>();
|
||||||
|
addDatas(workerInfos, "0", datas);
|
||||||
|
|
||||||
|
GetWorkerInfoByDevVo getWorkerInfoByDevVo = new GetWorkerInfoByDevVo();
|
||||||
|
getWorkerInfoByDevVo.setSuccess(true);
|
||||||
|
getWorkerInfoByDevVo.setCode(0);
|
||||||
|
getWorkerInfoByDevVo.setMessage("success");
|
||||||
|
getWorkerInfoByDevVo.setTime(System.currentTimeMillis() / 1000);
|
||||||
|
getWorkerInfoByDevVo.setData(datas);
|
||||||
|
getWorkerInfoByDevVo.setEvent("workers");
|
||||||
|
return JSON.toJSONString(getWorkerInfoByDevVo);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CountEntryAndExitNumVo countEntryAndExitNum(Map<String, Object> map) {
|
public CountEntryAndExitNumVo countEntryAndExitNum(Map<String, Object> map) {
|
||||||
return baseMapper.countEntryAndExitNum(map);
|
return baseMapper.countEntryAndExitNum(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(propagation = Propagation.NOT_SUPPORTED)
|
||||||
public void uploadWorkerInfoImgs(MultipartFile file, String projectSn) throws IOException {
|
public void uploadWorkerInfoImgs(MultipartFile file, String projectSn) throws IOException {
|
||||||
String folder = basePath + "/" + IdUtil.simpleUUID();
|
String folder = basePath + "/" + IdUtil.simpleUUID();
|
||||||
File folderFile = new File(folder);
|
File folderFile = new File(folder);
|
||||||
@ -2158,9 +2157,14 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
StringBuilder formatSb = new StringBuilder();
|
StringBuilder formatSb = new StringBuilder();
|
||||||
StringBuilder failSb = new StringBuilder();
|
StringBuilder failSb = new StringBuilder();
|
||||||
StringBuilder sucSb = new StringBuilder();
|
StringBuilder sucSb = new StringBuilder();
|
||||||
|
List<WorkerInfo> allEditWorkerInfos = new ArrayList<>();
|
||||||
for (int i = 0; i < files.length; i++) {
|
for (int i = 0; i < files.length; i++) {
|
||||||
File f = files[i];
|
File f = files[i];
|
||||||
traverseFile(f.getAbsolutePath(), formatSb, failSb, sucSb);
|
List<WorkerInfo> editWorkerInfos = getEditWorkerInfos(f.getAbsolutePath(), formatSb, sucSb, projectSn);
|
||||||
|
allEditWorkerInfos.addAll(editWorkerInfos);
|
||||||
|
}
|
||||||
|
for (WorkerInfo workerInfo : allEditWorkerInfos) {
|
||||||
|
workerInfoService.editWorkerInfo(workerInfo);
|
||||||
}
|
}
|
||||||
//通知
|
//通知
|
||||||
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
|
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
|
||||||
@ -2291,12 +2295,12 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 真正递归的方法
|
|
||||||
*
|
|
||||||
* @param path 根目录的抽象路径
|
* @param path 根目录的抽象路径
|
||||||
* @param sucSb
|
* @param sucSb
|
||||||
|
* @param projectSn
|
||||||
*/
|
*/
|
||||||
public void traverseFile(String path, StringBuilder formatSb, StringBuilder failSb, StringBuilder sucSb) {
|
public List<WorkerInfo> getEditWorkerInfos(String path, StringBuilder formatSb, StringBuilder sucSb, String projectSn) {
|
||||||
|
List<WorkerInfo> rtList = new ArrayList<>();
|
||||||
File file = new File(path);
|
File file = new File(path);
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
if (file.isDirectory()) {
|
if (file.isDirectory()) {
|
||||||
@ -2304,7 +2308,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
for (File f : fileArray) {
|
for (File f : fileArray) {
|
||||||
System.out.println("【文件夹】-----" + f.getAbsolutePath());
|
System.out.println("【文件夹】-----" + f.getAbsolutePath());
|
||||||
// -----递归的方法体
|
// -----递归的方法体
|
||||||
traverseFile(f.getAbsolutePath(), formatSb, failSb, sucSb);
|
rtList.addAll(getEditWorkerInfos(f.getAbsolutePath(), formatSb, sucSb, projectSn));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
System.out.println("【文件】-----" + file.getAbsolutePath());
|
System.out.println("【文件】-----" + file.getAbsolutePath());
|
||||||
@ -2314,29 +2318,23 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
boolean isMatch = ReUtil.isMatch(".+_.+[.].+", name);
|
boolean isMatch = ReUtil.isMatch(".+_.+[.].+", name);
|
||||||
if (!isMatch) {
|
if (!isMatch) {
|
||||||
formatSb.append(name + ",");
|
formatSb.append(name + ",");
|
||||||
return;
|
} else {
|
||||||
}
|
|
||||||
String idCard = name.split("_")[1].split("\\.")[0];
|
String idCard = name.split("_")[1].split("\\.")[0];
|
||||||
String workerName = name.split("_")[0];
|
String workerName = name.split("_")[0];
|
||||||
String suffix = name.split("\\.")[1];
|
String suffix = name.split("\\.")[1];
|
||||||
String saveName = IdUtil.randomUUID() + "." + suffix;
|
String saveName = IdUtil.randomUUID() + "." + suffix;
|
||||||
FileUtil.move(file, new File(basePath + "/" + saveName), true);
|
FileUtil.move(file, new File(basePath + "/" + saveName), true);
|
||||||
List<WorkerInfo> workerInfos = workerInfoMapper.selectList(new LambdaQueryWrapper<WorkerInfo>()
|
WorkerInfo workerInfo = workerInfoMapper.selectOne(new LambdaQueryWrapper<WorkerInfo>()
|
||||||
.eq(WorkerInfo::getIdCard, idCard));
|
.eq(WorkerInfo::getIdCard, idCard)
|
||||||
try {
|
.eq(WorkerInfo::getProjectSn, projectSn)
|
||||||
for (WorkerInfo workerInfo : workerInfos) {
|
);
|
||||||
workerInfo.setFieldAcquisitionUrl(saveName);
|
|
||||||
this.editWorkerInfo(workerInfo);
|
|
||||||
sucSb.append(workerName + ",");
|
sucSb.append(workerName + ",");
|
||||||
}
|
workerInfo.setFieldAcquisitionUrl(saveName);
|
||||||
} catch (Exception e) {
|
rtList.add(workerInfo);
|
||||||
log.error("error:", e);
|
|
||||||
failSb.append(workerName + ":错误原因" + e.getMessage() + ",");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
System.out.println("文件不存在!");
|
|
||||||
}
|
}
|
||||||
|
return rtList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addDatas(List<WorkerInfo> infos, String del, ArrayList<GetWorkerInfoByDevVo.Worker> datas) {
|
private void addDatas(List<WorkerInfo> infos, String del, ArrayList<GetWorkerInfoByDevVo.Worker> datas) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user