From 114aaa28f4f36a1e9d300ab41ee90a6cbb82ccf9 Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Wed, 22 May 2024 21:57:53 +0800 Subject: [PATCH] commit --- .../controller/ExamSubjectController.java | 42 ++++-- .../exam/controller/ExamTrainController.java | 2 +- .../exam/mapper/ExamCourseRecordMapper.java | 3 +- .../mapper/xml/ExamCourseRecordMapper.xml | 2 +- .../exam/mapper/xml/ExamTrainRecordMapper.xml | 4 +- .../exam/service/IExamTrainService.java | 2 + .../service/impl/ExamTrainServiceImpl.java | 7 + .../XzWorkerSafeWatchAlarmController.java | 11 +- .../java/com/zhgd/xmgl/task/ExamTask.java | 21 ++- .../java/com/zhgd/xmgl/task/WorkerTask.java | 124 ++++++++++++++---- 10 files changed, 167 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamSubjectController.java b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamSubjectController.java index ed156338b..7250191b5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamSubjectController.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamSubjectController.java @@ -1,5 +1,6 @@ package com.zhgd.xmgl.modules.exam.controller; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zhgd.annotation.OperLog; import com.zhgd.xmgl.security.entity.UserInfo; import com.zhgd.xmgl.security.util.SecurityUtils; @@ -116,10 +117,18 @@ public class ExamSubjectController { @ApiOperation(value = " 添加考试科目信息", notes = "添加考试科目信息", httpMethod = "POST") @PostMapping(value = "/add") public Result add(@RequestBody ExamSubject examSubject) { - UserInfo user = SecurityUtils.getUser(); - examSubject.setCreateBy(user.getUserId().toString()); - examSubjectService.save(examSubject); - return Result.success("添加成功!"); + Result result = new Result(); + ExamSubject examSubjectEntity = examSubjectService.getOne(Wrappers.lambdaQuery() + .eq(ExamSubject::getName, examSubject.getName())); + if (examSubjectEntity != null) { + result.error500("该科目名称已存在"); + } else { + UserInfo user = SecurityUtils.getUser(); + examSubject.setCreateBy(user.getUserId().toString()); + examSubjectService.save(examSubject); + result.success("添加成功!"); + } + return result; } /** @@ -133,20 +142,25 @@ public class ExamSubjectController { @PostMapping(value = "/edit") public Result edit(@RequestBody ExamSubject examSubject) { Result result = new Result(); - ExamSubject examSubjectEntity = examSubjectService.getById(examSubject.getId()); - if (examSubjectEntity == null) { - result.error500("未找到对应实体"); + ExamSubject examSubjectEntity = examSubjectService.getOne(Wrappers.lambdaQuery() + .eq(ExamSubject::getName, examSubject.getName()).ne(ExamSubject::getId, examSubject.getId())); + if (examSubjectEntity != null) { + result.error500("该科目名称已存在"); } else { - UserInfo user = SecurityUtils.getUser(); - examSubject.setUpdateBy(user.getUserId().toString()); - boolean ok = examSubjectService.updateById(examSubject); - if (ok) { - result.success("修改成功!"); + examSubjectEntity = examSubjectService.getById(examSubject.getId()); + if (examSubjectEntity == null) { + result.error500("未找到对应实体"); } else { - result.success("操作失败!"); + UserInfo user = SecurityUtils.getUser(); + examSubject.setUpdateBy(user.getUserId().toString()); + boolean ok = examSubjectService.updateById(examSubject); + if (ok) { + result.success("修改成功!"); + } else { + result.success("操作失败!"); + } } } - return result; } diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamTrainController.java b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamTrainController.java index 9f243bde9..87cdbfb11 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamTrainController.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamTrainController.java @@ -148,7 +148,7 @@ public class ExamTrainController { if (examTrainEntity == null) { result.error500("未找到对应实体"); } else { - boolean ok = examTrainService.removeById(examTrain.getId()); + boolean ok = examTrainService.delInfo(examTrain); if (ok) { result.success("删除成功!"); } else { diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/mapper/ExamCourseRecordMapper.java b/src/main/java/com/zhgd/xmgl/modules/exam/mapper/ExamCourseRecordMapper.java index 4fbede633..b7a975612 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/mapper/ExamCourseRecordMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/mapper/ExamCourseRecordMapper.java @@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.exam.mapper; import java.util.List; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -18,5 +19,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; @Mapper public interface ExamCourseRecordMapper extends BaseMapper { - Page pageList(Page page, Wrapper wrapper); + Page pageList(Page page, @Param(Constants.WRAPPER) Wrapper wrapper); } diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamCourseRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamCourseRecordMapper.xml index 9f3616704..9e60f3e3f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamCourseRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamCourseRecordMapper.xml @@ -3,7 +3,7 @@ \ No newline at end of file diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamTrainRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamTrainRecordMapper.xml index cee892ab3..ab5d9132a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamTrainRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamTrainRecordMapper.xml @@ -3,10 +3,10 @@ \ No newline at end of file diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/service/IExamTrainService.java b/src/main/java/com/zhgd/xmgl/modules/exam/service/IExamTrainService.java index 05b4144a1..7e3f5e0c6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/service/IExamTrainService.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/service/IExamTrainService.java @@ -17,4 +17,6 @@ public interface IExamTrainService extends IService { Page pageList(Page page, Wrapper wrapper); boolean saveInfo(ExamTrain examTrain); + + boolean delInfo(ExamTrain examTrain); } diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainServiceImpl.java index 21766ca56..a6ac6cffb 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainServiceImpl.java @@ -10,6 +10,7 @@ import com.zhgd.xmgl.modules.exam.mapper.ExamTrainMapper; import com.zhgd.xmgl.modules.exam.service.IExamCourseRecordService; import com.zhgd.xmgl.modules.exam.service.IExamTrainRecordService; import com.zhgd.xmgl.modules.exam.service.IExamTrainService; +import com.zhgd.xmgl.modules.exam.vo.ExamTrainRecordVo; import com.zhgd.xmgl.security.entity.UserInfo; import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.util.DateUtils; @@ -90,4 +91,10 @@ public class ExamTrainServiceImpl extends ServiceImpllambdaQuery().eq(ExamTrainRecord::getTrainId, examTrain.getId())); + return this.removeById(examTrain.getId()); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchAlarmController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchAlarmController.java index e337ccc94..2c625b722 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchAlarmController.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchAlarmController.java @@ -75,7 +75,12 @@ public class XzWorkerSafeWatchAlarmController { public Result> queryPageList(@ApiIgnore @RequestBody Map map) { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(XzWorkerSafeWatchAlarm.class, map); Page page = PageUtil.getPage(map); + queryWrapper.lambda().orderByDesc(XzWorkerSafeWatchAlarm::getAlarmTime); IPage pageList = xzWorkerSafeWatchAlarmService.page(page, queryWrapper); + String [] typeName = {"人员日常考勤", "每个项目自检任务", "一个月内缺勤超过", "一个月内迟到超过"}; + for (XzWorkerSafeWatchAlarm record : pageList.getRecords()) { + record.setType(typeName[Integer.parseInt(record.getType()) - 1]); + } return Result.success(pageList); } @@ -214,8 +219,12 @@ public class XzWorkerSafeWatchAlarmController { public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response, Map map) { // Step.1 组装查询条件 QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(XzWorkerSafeWatchAlarm.class, map); + queryWrapper.lambda().orderByDesc(XzWorkerSafeWatchAlarm::getAlarmTime); IPage pageList = xzWorkerSafeWatchAlarmService.page(new Page<>(-1, -1), queryWrapper); - + String [] typeName = {"人员日常考勤", "每个项目自检任务", "一个月内缺勤超过", "一个月内迟到超过"}; + for (XzWorkerSafeWatchAlarm record : pageList.getRecords()) { + record.setType(typeName[Integer.parseInt(record.getType()) - 1]); + } //Step.2 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); //导出文件名称 diff --git a/src/main/java/com/zhgd/xmgl/task/ExamTask.java b/src/main/java/com/zhgd/xmgl/task/ExamTask.java index 1b8662711..c9ff7a8e7 100644 --- a/src/main/java/com/zhgd/xmgl/task/ExamTask.java +++ b/src/main/java/com/zhgd/xmgl/task/ExamTask.java @@ -54,11 +54,11 @@ public class ExamTask { List noticeList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { ExamNoticeConfig examNoticeConfig = examConfigService.getOne(Wrappers.lambdaQuery() - .eq(ExamNoticeConfig::getProjectSn, list.get(i)) + .eq(ExamNoticeConfig::getProjectSn, list.get(i).getProjectSn()) .eq(ExamNoticeConfig::getEnable, 1)); if (examNoticeConfig != null) { if (examNoticeConfig.getExamNum() != null && examNoticeConfig.getExamType() != null) { - List examTrainList = examTrainService.list(Wrappers.lambdaQuery().eq(ExamTrain::getProjectSn, list.get(i))); + List examTrainList = examTrainService.list(Wrappers.lambdaQuery().eq(ExamTrain::getProjectSn, list.get(i).getProjectSn())); for (int j = 0; j < examTrainList.size(); j++) { if (DateUtil.compare(examTrainList.get(j).getTrainBeginTime(), getTime(examNoticeConfig.getExamType(), examNoticeConfig.getExamNum())) < 0) { List examTrainRecordList = examTrainRecordService.list(Wrappers.lambdaQuery().eq(ExamTrainRecord::getTrainId, examTrainList.get(j).getId())); @@ -75,6 +75,23 @@ public class ExamTask { } } } + List examCourseList = examCourseService.list(Wrappers.lambdaQuery().eq(ExamCourse::getProjectSn, list.get(i).getProjectSn())); + for (int j = 0; j < examCourseList.size(); j++) { + if (DateUtil.compare(new Date(), getTime(examNoticeConfig.getExamType(), examNoticeConfig.getExamNum())) < 0) { + List examCourseRecords = examCourseRecordService.list(Wrappers.lambdaQuery().eq(ExamCourseRecord::getCourseId, examCourseList.get(j))); + for (int i1 = 0; i1 < examCourseRecords.size(); i1++) { + if (examCourseRecords.get(i).getNumber() == null || examCourseRecords.get(i).getNumber() == 0) { + ExamNotice examNotice = new ExamNotice(); + examNotice.setWorkerId(examCourseRecords.get(i1).getWorkerId().toString()); + examNotice.setWorkerName(examCourseRecords.get(i1).getWorkerName()); + examNotice.setType(1); + examNotice.setContent("参加安全教育课程学习"); + examNotice.setProjectSn(list.get(i).getProjectSn()); + noticeList.add(examNotice); + } + } + } + } } // if (examNoticeConfig.getExamNum() != null && examNoticeConfig.getExamType() != null) { diff --git a/src/main/java/com/zhgd/xmgl/task/WorkerTask.java b/src/main/java/com/zhgd/xmgl/task/WorkerTask.java index 69b13bc3f..788c273b2 100644 --- a/src/main/java/com/zhgd/xmgl/task/WorkerTask.java +++ b/src/main/java/com/zhgd/xmgl/task/WorkerTask.java @@ -8,16 +8,20 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.basicdata.entity.Notice; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.mapper.SystemLogoConfigMapper; import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper; import com.zhgd.xmgl.modules.basicdata.service.INoticeService; +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord; +import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService; import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.ProjectExternalSystemService; import com.zhgd.xmgl.modules.project.mapper.ProjectExternalSystemServiceMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService; +import com.zhgd.xmgl.modules.quality.entity.QualityInspectionRecord; import com.zhgd.xmgl.modules.worker.entity.WorkerAttendance; import com.zhgd.xmgl.modules.worker.entity.WorkerBlacklist; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; @@ -32,12 +36,21 @@ import com.zhgd.xmgl.modules.worker.service.IWorkerMonthAttendanceStatisticsServ import com.zhgd.xmgl.modules.xz.entity.XzCertificateExpireAlarmRecord; import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchAlarm; import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchConfig; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchManager; +import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskItemRecord; +import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord; +import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord; +import com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityInspectTaskItemRecordMapper; +import com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityInspectTaskRecordMapper; +import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionRecordService; import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchAlarmService; import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchConfigService; +import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchManagerService; import com.zhgd.xmgl.modules.xz.service.impl.XzCertificateExpireAlarmRecordServiceImpl; import com.zhgd.xmgl.util.ElecardUtil; import lombok.extern.slf4j.Slf4j; import net.javacrumbs.shedlock.core.SchedulerLock; +import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; @@ -99,6 +112,18 @@ public class WorkerTask { @Autowired private IXzWorkerSafeWatchAlarmService xzWorkerSafeWatchAlarmService; + @Autowired + private IXzWorkerSafeWatchManagerService xzWorkerSafeWatchManagerService; + + @Autowired + private XzSecurityInspectTaskRecordMapper xzSecurityInspectTaskRecordMapper; + @Autowired + private XzSecurityInspectTaskItemRecordMapper xzSecurityInspectTaskItemRecordMapper; + @Autowired + private IHiddenDangerInspectRecordService hiddenDangerInspectRecordService; + @Autowired + private IXzSecurityQualityInspectionRecordService qualityInspectionRecordService; + /** * 定时修改用户码状态 */ @@ -258,37 +283,63 @@ public class WorkerTask { /** * 对人员未履职情况进行监测,及时反馈预警 */ - @Scheduled(cron = "0 0 0/1 * * ?") + @Scheduled(cron = "0 0/1 * * * ?") @RequestMapping("/workerSafeWatchAlarm") public void workerSafeWatchAlarm() { log.info("开始执行对人员未履职情况进行监测"); + String [] typeName = {"人员日常考勤", "每个项目自检任务", "一个月内缺勤超过", "一个月内迟到超过"}; List projects = projectMapper.selectList(Wrappers.lambdaQuery().eq(Project::getStatus, 2)); int day = DateUtil.dayOfMonth(new Date()); for (Project project : projects) { if (project.getEnableWorkerSafeWatch() != null && project.getEnableWorkerSafeWatch() == 1) { if (StringUtils.isNotBlank(project.getWorkerSafeWatchTime()) && - DateUtil.format(new Date(), "HH:ss").equals(project.getWorkerSafeWatchTime())) { + DateUtil.format(new Date(), "HH:mm").equals( + DateUtil.format(DateUtil.parseTime(project.getWorkerSafeWatchTime()), "HH:mm"))) { List list = xzWorkerSafeWatchConfigService.list(Wrappers.lambdaQuery() .eq(XzWorkerSafeWatchConfig::getProjectSn, project.getProjectSn())); List alarmList = new ArrayList<>(); List noticeList = new ArrayList<>(); for (XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig : list) { String type = xzWorkerSafeWatchConfig.getType(); + int dayNum = xzWorkerSafeWatchConfig.getDayNum(); Set personSn = new HashSet<>(); //计算日常考勤规则 - if (xzWorkerSafeWatchConfig.getType().equals("1")) { + if (type.equals("1")) { DateTime dateTime = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -3)); Set personSet = workerAttendanceService.list(Wrappers.lambdaQuery().between(WorkerAttendance::getCreateTime , dateTime, new Date())).stream().map(w -> w.getPersonSn()).collect(Collectors.toSet()); - Set workerSet = workerInfoMapper.selectList(Wrappers.lambdaQuery().eq(WorkerInfo::getPresence, 1)).stream().map(w -> w.getPersonSn()).collect(Collectors.toSet()); + Set workerSet = workerInfoMapper.selectList(Wrappers.lambdaQuery().eq(WorkerInfo::getInserviceType, 1)).stream().map(w -> w.getPersonSn()).collect(Collectors.toSet()); workerSet.removeAll(personSet); - personSn = workerSet; + personSn.addAll(workerSet); } - if (xzWorkerSafeWatchConfig.getType().equals("2")) { - + if (type.equals("2")) { + List xzSecurityInspectTaskRecords = xzSecurityInspectTaskRecordMapper.selectList(Wrappers.lambdaQuery() + .eq(XzSecurityInspectTaskRecord::getSn, project.getProjectSn()) + .le(XzSecurityInspectTaskRecord::getEndTime, DateUtil.offsetDay(new Date(), -dayNum))); + if (xzSecurityInspectTaskRecords.size() > 0) { + List itemList = xzSecurityInspectTaskItemRecordMapper.selectList(Wrappers.lambdaQuery() + .in(XzSecurityInspectTaskItemRecord::getTaskId, xzSecurityInspectTaskRecords.stream().map(s -> s.getId()).collect(Collectors.toList()))); + if (itemList != null && itemList.size() > 0) { + for (XzSecurityInspectTaskItemRecord data : itemList) { + XzSecurityInspectTaskRecord xzSecurityInspectTaskRecord = xzSecurityInspectTaskRecords.stream().filter(s -> s.getId().toString().equals(data.getTaskId().toString())).collect(Collectors.toList()).get(0); + SystemUser systemUser = systemUserMapper.selectById(xzSecurityInspectTaskRecord.getInspectUser()); + WorkerInfo workerInfo = workerInfoMapper.selectById(systemUser.getWorkerId()); + int count = 0; + if (xzSecurityInspectTaskRecord.getType() == 1) { + count = hiddenDangerInspectRecordService.count(Wrappers.lambdaQuery() + .eq(HiddenDangerInspectRecord::getInspectHiddenDangerItemRecordId, data.getId())); + } else { + count = qualityInspectionRecordService.count(Wrappers.lambdaQuery() + .eq(XzSecurityQualityInspectionRecord::getItemId, data.getId())); + } + if (count == 0) { + personSn.add(workerInfo.getPersonSn()); + } + } + } + } } - if (xzWorkerSafeWatchConfig.getType().equals("3")) { - Integer dayNum = xzWorkerSafeWatchConfig.getDayNum(); + if (type.equals("3")) { List list1 = workerMonthAttendanceStatisticsService.list(Wrappers. lambdaQuery().eq(WorkerMonthAttendanceStatistics::getProjectSn, project.getProjectSn()) .eq(WorkerMonthAttendanceStatistics::getQueryTime, DateUtil.format(new Date(), "yyyy-MM"))); @@ -308,8 +359,7 @@ public class WorkerTask { } } } - if (xzWorkerSafeWatchConfig.getType().equals("4")) { - Integer dayNum = xzWorkerSafeWatchConfig.getDayNum(); + if (type.equals("4")) { List list1 = workerMonthAttendanceStatisticsService.list(Wrappers. lambdaQuery().eq(WorkerMonthAttendanceStatistics::getProjectSn, project.getProjectSn()) .eq(WorkerMonthAttendanceStatistics::getQueryTime, DateUtil.format(new Date(), "yyyy-MM"))); @@ -329,25 +379,41 @@ public class WorkerTask { } } } - Map requestParam = new HashMap<>(); - requestParam.put("personSns", personSn); - List workerInfoList = workerInfoMapper.selectWorkerInfoList(new Page<>(-1, -1), requestParam); - for (WorkerInfo workerInfo : workerInfoList) { - XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm = new XzWorkerSafeWatchAlarm(); - xzWorkerSafeWatchAlarm.setWorkerId(workerInfo.getId()); - xzWorkerSafeWatchAlarm.setWorkerName(workerInfo.getWorkerName()); - xzWorkerSafeWatchAlarm.setDeptName(workerInfo.getDepartmentName() + workerInfo.getTeamName()); - xzWorkerSafeWatchAlarm.setEnterpriseName(workerInfo.getEnterpriseName()); - xzWorkerSafeWatchAlarm.setAlarmTime(new Date()); - xzWorkerSafeWatchAlarm.setType(type); - alarmList.add(xzWorkerSafeWatchAlarm); + if (personSn.size() > 0) { + Map requestParam = new HashMap<>(); + requestParam.put("personSns", personSn); + List workerInfoList = workerInfoMapper.selectWorkerInfoList(new Page<>(-1, -1), requestParam); + for (WorkerInfo workerInfo : workerInfoList) { + XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm = new XzWorkerSafeWatchAlarm(); + xzWorkerSafeWatchAlarm.setWorkerId(workerInfo.getId()); + xzWorkerSafeWatchAlarm.setWorkerName(workerInfo.getWorkerName()); + String deptName = workerInfo.getDepartmentName() == null ? "" : workerInfo.getDepartmentName(); + String teamName = workerInfo.getTeamName() == null ? "" : workerInfo.getTeamName(); + xzWorkerSafeWatchAlarm.setDeptName(deptName + teamName); + xzWorkerSafeWatchAlarm.setEnterpriseName(workerInfo.getEnterpriseName()); + xzWorkerSafeWatchAlarm.setAlarmTime(new Date()); + xzWorkerSafeWatchAlarm.setType(type); + xzWorkerSafeWatchAlarm.setProjectSn(project.getProjectSn()); + xzWorkerSafeWatchAlarm.setDayNum(dayNum); + alarmList.add(xzWorkerSafeWatchAlarm); - Notice notice = new Notice(); - notice.setType("35"); - notice.setMsg(""); - notice.setTitle(""); - notice.setIsRead(0); - noticeList.add(notice); + Long id = xzWorkerSafeWatchConfig.getId(); + + List userIds = Arrays.asList(xzWorkerSafeWatchManagerService.list(Wrappers.lambdaQuery() + .eq(XzWorkerSafeWatchManager::getWatchConfigId, id)) + .stream().map(l -> l.getUserId()).collect(Collectors.joining(",")).split(",")); + for (String userId : userIds) { + Notice notice = new Notice(); + notice.setType("35"); + notice.setMsg(String.format("事件:{},人员名称:{},身份证号:{}", + typeName[Integer.parseInt(type) - 1] + dayNum + "天未履职", workerInfo.getWorkerName(), workerInfo.getIdCard())); + notice.setTitle("人员安全履职预警提醒"); + notice.setIsRead(0); + notice.setAccountId(Long.valueOf(userId)); + notice.setSendTime(DateUtil.formatDateTime(new Date())); + noticeList.add(notice); + } + } } } xzWorkerSafeWatchAlarmService.saveBatch(alarmList);