大屏接口
This commit is contained in:
parent
6fb1be30ae
commit
004dcc5f43
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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);
|
||||
|
||||
/**
|
||||
* 添加权限的记录
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ import lombok.Data;
|
||||
@Data
|
||||
public class StatsEnterpriseWeekVo {
|
||||
@ApiModelProperty("在场人员数量")
|
||||
private Integer Num;
|
||||
private Integer highWorkerNumThisWeek;
|
||||
@ApiModelProperty("在职人员数量")
|
||||
private Integer inServiceNum;
|
||||
@ApiModelProperty("企业安全分")
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user