大屏接口

This commit is contained in:
guoshengxiong 2024-06-17 23:12:48 +08:00
parent 6fb1be30ae
commit 004dcc5f43
9 changed files with 60 additions and 11 deletions

View File

@ -490,8 +490,8 @@ public class AsyncHikvision {
hikvisionCall.getDoorEvents(paramMap);
}
public void sendBatchWorkerInfo(List<UfaceDev> allDevList, List<WorkerInfo> workerList, List<JSONObject> workerAndDevSnList, Long userId, String projectSn) {
this.sendBatchWorkerInfoAsync(allDevList, workerList, workerAndDevSnList, userId, projectSn, true, true);
public void sendBatchWorkerInfo(List<UfaceDev> allDevList, List<WorkerInfo> workerList, List<JSONObject> workerAndDevSnList, Long userId, String projectSn, boolean isRetry) {
this.sendBatchWorkerInfoAsync(allDevList, workerList, workerAndDevSnList, userId, projectSn, false, true);
}
/**

View File

@ -39,7 +39,7 @@ public interface IProjectUfaceConfigService extends IService<ProjectUfaceConfig>
void buildAndSendOneWorkerForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int model, String projectSn, boolean sendNotice);
void buildAndSendOneWorkerAndDevForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn);
void buildAndSendOneWorkerAndDevForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn, boolean isRetry);
/**
* 添加权限的记录

View File

@ -593,9 +593,10 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
*
* @param allDevList
* @param workerInfo
* @param isRetry
*/
@Override
public void buildAndSendOneWorkerAndDevForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn) {
public void buildAndSendOneWorkerAndDevForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn, boolean isRetry) {
List<JSONObject> workerAndDevSnList = new ArrayList<>();
if (operate == 1) {
JSONObject jo = new JSONObject();
@ -614,7 +615,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
log.info("未找到设备,无需下发,人员:{}", workerInfo.getWorkerName());
return;
}
asyncHikvision.sendBatchWorkerInfo(allDevList, Collections.singletonList(workerInfo), workerAndDevSnList, null, projectSn);
asyncHikvision.sendBatchWorkerInfo(allDevList, Collections.singletonList(workerInfo), workerAndDevSnList, null, projectSn, isRetry);
}

View File

@ -6,7 +6,7 @@ import lombok.Data;
@Data
public class StatsEnterpriseWeekVo {
@ApiModelProperty("在场人员数量")
private Integer Num;
private Integer highWorkerNumThisWeek;
@ApiModelProperty("在职人员数量")
private Integer inServiceNum;
@ApiModelProperty("企业安全分")

View File

@ -33,7 +33,9 @@ public interface WorkerAttendanceMapper extends BaseMapper<WorkerAttendance> {
List<EntityMap> selectOneWorkerAttendance(Map<String, Object> param);
List<EntityMap> selectWorkerAttendancePage(Page<EntityMap> page, @Param("param")Map<String, Object> map);
List<EntityMap> selectWorkerAttendancePage(Page<EntityMap> page, @Param("param") Map<String, Object> map);
List<EntityMap> selectWorkerAttendancePage(@Param("param") Map<String, Object> map);
List<EntityMap> selectWorkerAttendanceNewestList(Map<String, Object> param);

View File

@ -32,15 +32,17 @@ public interface IWorkerAttendanceService extends IService<WorkerAttendance> {
IPage<EntityMap> selectWorkerAttendancePage(Map<String, Object> map);
List<WorkerAttendance> selectWorkerAttendanceList(Map<String, Object> map);
List<EntityMap> selectWorkerAttendanceNewestList(Map<String, Object> param);
List<Map<String,Object>> getWorkerDayAttendanceTotalCount(Map<String, Object> param);
List<Map<String, Object>> getWorkerDayAttendanceTotalCount(Map<String, Object> param);
void ufaceQYCallbackUrl(JSONObject body);
void exportExcelWorkerAttendance(HttpServletResponse response, Map<String, Object> map);
void ufaceHQCallbackUrl(String projectSn,String json);
void ufaceHQCallbackUrl(String projectSn, String json);
Map<String,Object> selectWorkerAttendanceByDev(Map<String, Object> map);

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.worker.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
@ -38,6 +39,7 @@ import com.zhgd.xmgl.modules.worker.entity.vo.StatsEnterpriseWeekVo;
import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.TeamInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendanceMapper;
import com.zhgd.xmgl.modules.worker.service.IEnterpriseInfoService;
import com.zhgd.xmgl.modules.worker.service.IUserEnterpriseService;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
@ -55,6 +57,7 @@ import org.apache.commons.collections.CollectionUtils;
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;
@ -126,6 +129,12 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
private IExamTrainService examTrainService;
@Autowired
private IExamTrainRecordService examTrainRecordService;
@Autowired
@Lazy
private WorkerAttendanceServiceImpl workerAttendanceService;
@Autowired
@Lazy
private WorkerAttendanceMapper workerAttendanceMapper;
@Override
public List<EntityMap> getEnterpriseInfoList(Map<String, Object> map) {
@ -563,10 +572,35 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
vo.setSpecialNum(specialNum);
double safeScore = workerInfoService.getAvgSafeScore(enterpriseId, projectSn);
vo.setSafeScore(safeScore);
vo.setNum(0);
int highWorkerNumThisWeek = getHighInDayThisWeek(enterpriseId, projectSn, beginOfWeek);
vo.setHighWorkerNumThisWeek(highWorkerNumThisWeek);
return vo;
}
private int getHighInDayThisWeek(String enterpriseId, String projectSn, String beginOfWeek) {
HashMap<String, Object> map = new HashMap<>();
map.put("enterpriseId", enterpriseId);
map.put("startTime", beginOfWeek);
map.put("projectSn", projectSn);
List<WorkerAttendance> workerAttendances = workerAttendanceService.selectWorkerAttendanceList(map);
int highNum = 0;
for (int i = 0; i < 7; i++) {
DateTime nextDate = DateUtil.offsetDay(DateUtil.parse(beginOfWeek), 1);
List<WorkerAttendance> oneDayWas = workerAttendances.stream().filter(workerAttendance -> DateUtil.parse(workerAttendance.getCreateTime()).compareTo(nextDate) < 0
&& DateUtil.parse(beginOfWeek).compareTo(DateUtil.parse(workerAttendance.getCreateTime())) <= 0).collect(Collectors.toList());
Set<String> inSet = new HashSet<>();
for (WorkerAttendance attendance : oneDayWas) {
if (Objects.equals(attendance.getPassType(), 1)) {
inSet.add(attendance.getPersonSn());
} else if (Objects.equals(attendance.getPassType(), 2)) {
inSet.remove(attendance.getPersonSn());
}
}
highNum = Math.max(highNum, inSet.size());
}
return highNum;
}
private double getTrainNotPassRadio(String enterpriseId, String projectSn, String beginOfWeek) {
QueryWrapper<ExamTrain> wrapper = QueryGenerator.initPageQueryWrapper(ExamTrain.class, new HashMap<>());
Set<Long> trainIds = examTrainRecordService.list().stream().map(e -> e.getTrainId()).collect(Collectors.toSet());
@ -596,6 +630,9 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
}
}
}
if (count.equals(new BigDecimal(0))) {
return 0;
}
return sum.divide(count, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
}

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.worker.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.exceptions.ExceptionUtil;
@ -208,6 +209,12 @@ public class WorkerAttendanceServiceImpl extends ServiceImpl<WorkerAttendanceMap
return page.setRecords(list);
}
@Override
public List<WorkerAttendance> selectWorkerAttendanceList(Map<String, Object> map) {
List<EntityMap> list = workerAttendanceMapper.selectWorkerAttendancePage(map);
return BeanUtil.copyToList(list, WorkerAttendance.class);
}
@Override
public List<EntityMap> selectWorkerAttendanceNewestList(Map<String, Object> param) {
return workerAttendanceMapper.selectWorkerAttendanceNewestList(param);

View File

@ -241,7 +241,7 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
qw.lambda().eq(UfaceDev::getProjectSn, projectSn);
List<UfaceDev> ufaceDevs = ufaceDevMapper.selectList(qw);
ThreadLocalUtil.addInKey(Cts.TL_HK_SYNC_ID, id);
projectUfaceConfigService.buildAndSendOneWorkerAndDevForHk(ufaceDevs, workerInfo, xzHikvisionSync.getOperate(), xzHikvisionSync.getDeviceSn(), projectSn);
projectUfaceConfigService.buildAndSendOneWorkerAndDevForHk(ufaceDevs, workerInfo, xzHikvisionSync.getOperate(), xzHikvisionSync.getDeviceSn(), projectSn, true);
String redisKey = Cts.HK_SYNC_AUTH_SUCCESS_KEY + id;
Object success = redisRepository.get(redisKey);
redisRepository.del(redisKey);