木垒安全管理调整bug修改

This commit is contained in:
guoshengxiong 2024-10-28 15:27:01 +08:00
parent de02477417
commit 43a4a16b62
2 changed files with 45 additions and 22 deletions

View File

@ -86,6 +86,9 @@
<if test="param.startTime != null and param.startTime != ''">
and w.study_time &gt;= #{param.startTime}
</if>
<if test="param.videoType != null and param.videoType != ''">
and w1.video_type = #{param.videoType}
</if>
</select>
<select id="getPersonNumberByEduType" resultType="java.lang.Long">

View File

@ -1,7 +1,9 @@
package com.zhgd.xmgl.modules.worker.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
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.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -137,10 +139,17 @@ public class WorkerSafeEducationWorkerServiceImpl extends ServiceImpl<WorkerSafe
public Map<String, Object> selectWorkerEducationOverview(Map<String, Object> param) {
Map<String, Object> resultMap = new HashMap<>();
String projectSn = MapUtils.getString(param, "projectSn");
List<WorkerSafeEducationWorker> list = this.list(Wrappers.<WorkerSafeEducationWorker>lambdaQuery().eq(WorkerSafeEducationWorker::getProjectSn, projectSn)
.orderByDesc(WorkerSafeEducationWorker::getId));
List<Long> eduIds = workerSafeEducationService.list(new LambdaQueryWrapper<WorkerSafeEducation>()
.eq(WorkerSafeEducation::getVideoType, 1)).stream().map(WorkerSafeEducation::getId).collect(Collectors.toList());
List<WorkerSafeEducationWorker> list = new ArrayList<>();
if (CollUtil.isNotEmpty(eduIds)) {
list = this.list(Wrappers.<WorkerSafeEducationWorker>lambdaQuery()
.eq(WorkerSafeEducationWorker::getProjectSn, projectSn)
.in(WorkerSafeEducationWorker::getEduId, eduIds)
.orderByDesc(WorkerSafeEducationWorker::getId));
}
resultMap.put("educationNum", list.size());
resultMap.put("educationPass", list.stream().filter(l -> l.getIsQualified() == 1).count());
resultMap.put("educationPass", list.stream().filter(l -> Objects.equals(l.getIsQualified(), 1)).count());
resultMap.put("educationNewRecord", list.get(0).getStudyTime());
return resultMap;
}
@ -148,19 +157,20 @@ public class WorkerSafeEducationWorkerServiceImpl extends ServiceImpl<WorkerSafe
@Override
public List<Map<String, Object>> selectWorkerEducationByWeek(Map<String, Object> param) {
String projectSn = MapUtils.getString(param, "projectSn");
List<WorkerSafeEducation> list = workerSafeEducationService.list(Wrappers.<WorkerSafeEducation>lambdaQuery()
List<Long> list = workerSafeEducationService.list(Wrappers.<WorkerSafeEducation>lambdaQuery()
.eq(WorkerSafeEducation::getVideoType, 1)
.eq(WorkerSafeEducation::getEduType, 5)
.eq(WorkerSafeEducation::getProjectSn, projectSn));
.eq(WorkerSafeEducation::getProjectSn, projectSn)).stream().map(WorkerSafeEducation::getId).collect(Collectors.toList());
List<WorkerSafeEducationWorker> educationWorkers = new ArrayList<>();
if (list.size() > 0) {
educationWorkers = this.list(Wrappers.<WorkerSafeEducationWorker>lambdaQuery()
.in(WorkerSafeEducationWorker::getEduId)
.in(WorkerSafeEducationWorker::getEduId, list)
.ge(WorkerSafeEducationWorker::getStudyTime, DateUtil.offsetDay(new Date(), -7)));
}
List<Map<String, Object>> resultList = new ArrayList<>();
Map<String, Object> resultMap = new HashMap<>();
for (int i = 1; i < 8; i++) {
for (int i = 7; i >= 0; i--) {
String formatDate = DateUtil.formatDate(DateUtil.offsetDay(new Date(), -i));
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("time", formatDate);
resultMap.put("num", educationWorkers.stream().filter(e -> DateUtil.formatDate(DateUtil.parseDate(e.getStudyTime()))
.equals(formatDate)).count());
@ -172,22 +182,25 @@ public class WorkerSafeEducationWorkerServiceImpl extends ServiceImpl<WorkerSafe
@Override
public List<Map<String, Object>> selectWorkerEducationByType(Map<String, Object> param) {
String projectSn = MapUtils.getString(param, "projectSn");
String [] type = {"入场安全教育", "日常安全教育", "每日安全交底", "VR安全教育", "班前教育", "日常教育(日常违规教育)", "每日交底(方案交底)", "每日交底(安全技术交底)", "每日交底(大工程交底)"};
String[] type = {"入场安全教育", "日常安全教育", "每日安全交底", "VR安全教育", "班前教育", "日常教育(日常违规教育)", "每日交底(方案交底)", "每日交底(安全技术交底)", "每日交底(大工程交底)"};
List<WorkerSafeEducation> list = workerSafeEducationService.list(Wrappers.<WorkerSafeEducation>lambdaQuery()
.eq(WorkerSafeEducation::getProjectSn, projectSn));
.eq(WorkerSafeEducation::getProjectSn, projectSn)
.eq(WorkerSafeEducation::getVideoType, 1)
);
List<WorkerSafeEducationWorker> workerList = this.list(Wrappers.<WorkerSafeEducationWorker>lambdaQuery()
.eq(WorkerSafeEducationWorker::getProjectSn, projectSn));
List<Map<String, Object>> resultList = new ArrayList<>();
Map<String, Object> resultMap = new HashMap<>();
for (int i = 0; i < type.length; i++) {
int i1 = i + 1;
List<String> collect = list.stream().filter(l -> l.getType() == i1).map(l -> l.getId().toString()).collect(Collectors.toList());
int j = i + 1;
List<String> collect = list.stream().filter(l -> l.getEduType() == j).map(l -> l.getId().toString()).collect(Collectors.toList());
int num = 0;
if (collect.size() > 0) {
num = (int) workerList.stream().filter(w -> collect.contains(w.getEduId().toString())).count();
}
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("type", type[i]);
resultMap.put("num", num);
resultList.add(resultMap);
}
return resultList;
}
@ -201,16 +214,23 @@ public class WorkerSafeEducationWorkerServiceImpl extends ServiceImpl<WorkerSafe
.eq(WorkerInfo::getProjectSn, projectSn)
.eq(WorkerInfo::getPersonType, 1)
.eq(WorkerInfo::getInserviceType, 1));
List<WorkerSafeEducationWorker> workerList = this.list(Wrappers.<WorkerSafeEducationWorker>lambdaQuery()
.eq(WorkerSafeEducationWorker::getProjectSn, projectSn)
.ge(WorkerSafeEducationWorker::getStudyTime, DateUtil.offsetMonth(new Date(), -1)));
List<Long> eduIds = workerSafeEducationService.list(Wrappers.<WorkerSafeEducation>lambdaQuery()
.eq(WorkerSafeEducation::getVideoType, 1)
.eq(WorkerSafeEducation::getProjectSn, projectSn)).stream().map(WorkerSafeEducation::getId).collect(Collectors.toList());
List<WorkerSafeEducationWorker> workerEduList = new ArrayList<>();
if (CollUtil.isNotEmpty(eduIds)) {
workerEduList = this.list(Wrappers.<WorkerSafeEducationWorker>lambdaQuery()
.in(WorkerSafeEducationWorker::getEduId, eduIds)
.eq(WorkerSafeEducationWorker::getProjectSn, projectSn)
.ge(WorkerSafeEducationWorker::getStudyTime, DateUtil.offsetMonth(new Date(), -1)));
}
List<WorkerInfo> workerFilter = new ArrayList<>();
if (workerList.size() > 0) {
workerFilter = workerInfoService.list(Wrappers.<WorkerInfo>lambdaQuery().in(WorkerInfo::getId, workerList.stream().map(w -> w.getWorkerId()).collect(Collectors.toList())));
if (workerEduList.size() > 0) {
workerFilter = workerInfoService.list(Wrappers.<WorkerInfo>lambdaQuery().in(WorkerInfo::getId, workerEduList.stream().map(WorkerSafeEducationWorker::getWorkerId).collect(Collectors.toList())));
}
List<Map<String, Object>> resultList = new ArrayList<>();
Map<String, Object> teamMap = new HashMap<>();
for (TeamInfo teamInfo : teamInfoList) {
Map<String, Object> teamMap = new HashMap<>();
teamMap.put("name", teamInfo.getTeamName());
teamMap.put("num", workerFilter.stream().filter(w -> w.getTeamId().toString().equals(teamInfo.getId().toString())).count());
resultList.add(teamMap);
@ -219,9 +239,9 @@ public class WorkerSafeEducationWorkerServiceImpl extends ServiceImpl<WorkerSafe
Map<String, Object> workerStatMap = new HashMap<>();
workerStatMap.put("workerNum", count);
workerStatMap.put("educationNum", workerFilter.size());
workerStatMap.put("passNum", workerList.stream().filter(w -> w.getIsQualified() == 1).count());
workerStatMap.put("unPassNum", workerList.stream().filter(w -> w.getIsQualified() == 2).count());
workerStatMap.put("educationNum", workerEduList.size());
workerStatMap.put("passNum", workerEduList.stream().filter(w -> Objects.equals(w.getIsQualified(), 1)).count());
workerStatMap.put("unPassNum", workerEduList.stream().filter(w -> Objects.equals(w.getIsQualified(), 2)).count());
resultMap.put("workerStat", workerStatMap);
return resultMap;
}