From 5e164ae2ac7bfbc353000e55dd94d1b0fc62c90a Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Mon, 18 Aug 2025 09:07:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/system/api/RemoteDeptService.java | 6 +++ .../AttendanceUserGroupController.java | 1 - .../dubbo/RemoteAttendanceServiceImpl.java | 4 +- .../impl/AttendanceUserGroupServiceImpl.java | 15 ++++++- .../controller/SisAlarmEventsController.java | 26 ++++++++++-- .../dromara/sis/domain/SisAlarmEvents.java | 10 +++++ .../sis/domain/bo/SisAlarmEventsBo.java | 5 +++ .../domain/bo/alarm/AlarmAssignmentBo.java | 11 ++++- .../sis/domain/vo/SisAlarmEventsVo.java | 25 +++++++---- .../sis/service/ISisAlarmEventsService.java | 9 ++++ .../impl/SisAlarmEventsServiceImpl.java | 42 +++++++++++++------ .../system/dubbo/RemoteDeptServiceImpl.java | 6 +++ 12 files changed, 129 insertions(+), 31 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java index 2ece9281..bd27cbbc 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java @@ -34,4 +34,10 @@ public interface RemoteDeptService { */ List selectDeptsByList(); + /** + * 根据部门id查询部门信息 + * @param deptId 部门id + * @return 返回部门信息 + */ + RemoteDeptVo selectDeptVoById(Long deptId); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/AttendanceUserGroupController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/AttendanceUserGroupController.java index 9410a024..a933eb1c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/AttendanceUserGroupController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/AttendanceUserGroupController.java @@ -120,7 +120,6 @@ public class AttendanceUserGroupController extends BaseController { * * @return 返回排班人员信息 */ - @RepeatSubmit() @GetMapping("/query/currentDay") public R> queryCurrentSchedu() { return R.ok(attendanceUserGroupService.queryAttendPersonInfo(new Date())); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteAttendanceServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteAttendanceServiceImpl.java index c1db0d99..c3955a05 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteAttendanceServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteAttendanceServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.property.dubbo; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboService; @@ -28,10 +29,9 @@ public class RemoteAttendanceServiceImpl implements RemoteAttendanceService { public List queryAttendPersonInfo(Date date) { List ls = attendanceUserGroupService.queryAttendPersonInfo(date); if (CollUtil.isNotEmpty(ls)) { - return MapstructUtils.convert(ls, RemoteAttendanceUserGroupVo.class); + return BeanUtil.copyToList(ls, RemoteAttendanceUserGroupVo.class); } return null; } - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceUserGroupServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceUserGroupServiceImpl.java index d7030487..83a0b007 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceUserGroupServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceUserGroupServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.property.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -17,6 +18,7 @@ import org.dromara.property.mapper.*; import org.dromara.property.service.IAttendanceUserGroupService; import org.dromara.system.api.RemoteDeptService; import org.dromara.system.api.RemoteUserService; +import org.dromara.system.api.domain.vo.RemoteDeptVo; import org.dromara.system.api.domain.vo.RemoteUserVo; import org.springframework.stereotype.Service; @@ -164,7 +166,18 @@ public class AttendanceUserGroupServiceImpl implements IAttendanceUserGroupServi lqw.le(AttendanceUserGroup::getStartDate, date) .ge(AttendanceUserGroup::getEndDate, date); // 如果今天存在排班信息。那么处理排班人员信息 - return this.baseMapper.selectVoList(lqw); + List attendanceUserGroupVos = this.baseMapper.selectVoList(lqw); + if (CollUtil.isNotEmpty(attendanceUserGroupVos)) { + attendanceUserGroupVos.forEach(attendanceUserGroupVo -> { + // 查询排班人员信息 + RemoteUserVo remoteUserVo = remoteUserService.getUserInfoById(attendanceUserGroupVo.getEmployeeId()); + attendanceUserGroupVo.setRemoteUserVo(remoteUserVo); + // todo 当表冗余了部门信息,以下反查操作可以去掉 + RemoteDeptVo dept = remoteDeptService.selectDeptVoById(attendanceUserGroupVo.getDeptId()); + attendanceUserGroupVo.setDeptName(dept.getDeptName()); + }); + } + return attendanceUserGroupVos; } /** diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAlarmEventsController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAlarmEventsController.java index 378b771a..3c164ae2 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAlarmEventsController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAlarmEventsController.java @@ -14,12 +14,14 @@ import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.web.core.BaseController; import org.dromara.sis.domain.bo.SisAlarmEventsBo; import org.dromara.sis.domain.bo.alarm.AlarmAssignmentBo; import org.dromara.sis.domain.bo.alarm.AlarmCompleteBo; import org.dromara.sis.domain.vo.SisAlarmEventsVo; import org.dromara.sis.service.ISisAlarmEventsService; +import org.dromara.system.api.model.LoginUser; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -49,6 +51,18 @@ public class SisAlarmEventsController extends BaseController { return sisAlarmEventsService.queryPageList(bo, pageQuery); } + /** + * 查询告警列表 + */ + @SaCheckPermission("sis:alarmEvents:list") + @GetMapping("/list/curr") + public TableDataInfo listCurr(SisAlarmEventsBo bo, PageQuery pageQuery) { + LoginUser loginUser = LoginHelper.getLoginUser(); + bo.setSolveId(loginUser.getUserId()); + return sisAlarmEventsService.queryPageListCurr(bo, pageQuery); + } + + /** * 导出告警列表 */ @@ -110,22 +124,26 @@ public class SisAlarmEventsController extends BaseController { /** * 告警任务指派 + * + * @param bo 指派参数 */ @SaCheckPermission("sis:alarmEvents:edit") @Log(title = "告警任务指派", businessType = BusinessType.UPDATE) @RepeatSubmit() - @PutMapping("/assignment") + @PostMapping("/assignment") public R taskAssignment(@Validated @RequestBody AlarmAssignmentBo bo) { return toAjax(sisAlarmEventsService.taskAssignment(bo)); } /** - * 告警任务指派 + * 告警处理完成 + * + * @param bo 完成参数 */ @SaCheckPermission("sis:alarmEvents:edit") - @Log(title = "告警任务指派", businessType = BusinessType.UPDATE) + @Log(title = "告警处理完成", businessType = BusinessType.UPDATE) @RepeatSubmit() - @PutMapping("/complete") + @PostMapping("/complete") public R complete(@Validated @RequestBody AlarmCompleteBo bo) { return toAjax(sisAlarmEventsService.complete(bo)); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAlarmEvents.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAlarmEvents.java index 1eba9208..bda09312 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAlarmEvents.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAlarmEvents.java @@ -99,6 +99,16 @@ public class SisAlarmEvents extends TenantEntity { */ private String solveName; + /** + * 处理人电话 + */ + private String solvePhone; + + /** + * 处理人邮箱 + */ + private String solveEmail; + /** * 任务接受时间 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAlarmEventsBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAlarmEventsBo.java index d2252b99..b2497060 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAlarmEventsBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAlarmEventsBo.java @@ -10,6 +10,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.sis.domain.SisAlarmEvents; import java.util.Date; +import java.util.List; /** * 告警业务对象 sis_alarm_events @@ -86,6 +87,10 @@ public class SisAlarmEventsBo extends BaseEntity { */ private Integer state; + /** + * 状态列表 + */ + private List states; /** * 工单id */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/alarm/AlarmAssignmentBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/alarm/AlarmAssignmentBo.java index cbb93f44..23099980 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/alarm/AlarmAssignmentBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/alarm/AlarmAssignmentBo.java @@ -17,7 +17,6 @@ public class AlarmAssignmentBo { @NotNull private Long alarmId; - /** * 处理人id */ @@ -29,6 +28,16 @@ public class AlarmAssignmentBo { */ private String solveName; + /** + * 处理人电话 + */ + private String solvePhone; + + /** + * 处理人邮箱 + */ + private String solveEmail; + /** * 指派备注 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAlarmEventsVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAlarmEventsVo.java index ef5d4766..5c82c3a7 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAlarmEventsVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAlarmEventsVo.java @@ -1,23 +1,18 @@ package org.dromara.sis.domain.vo; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; import org.dromara.sis.domain.SisAlarmEvents; -import cn.idev.excel.annotation.ExcelIgnoreUnannotated; -import cn.idev.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.Date; - /** * 告警视图对象 sis_alarm_events * @@ -122,6 +117,16 @@ public class SisAlarmEventsVo implements Serializable { */ private String solveName; + /** + * 处理人电话 + */ + private String solvePhone; + + /** + * 处理人邮箱 + */ + private String solveEmail; + /** * 任务接受时间 */ @@ -132,6 +137,8 @@ public class SisAlarmEventsVo implements Serializable { */ private Date solveTime; + private Date createTime; + /** * 任务完成时间 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAlarmEventsService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAlarmEventsService.java index 121a2902..768ccfff 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAlarmEventsService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAlarmEventsService.java @@ -35,6 +35,13 @@ public interface ISisAlarmEventsService { */ TableDataInfo queryPageList(SisAlarmEventsBo bo, PageQuery pageQuery); + /** + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 告警分页列表 + */ + TableDataInfo queryPageListCurr(SisAlarmEventsBo bo, PageQuery pageQuery); + /** * 查询符合条件的告警列表 * @@ -94,4 +101,6 @@ public interface ISisAlarmEventsService { * @return 返回是否成功 */ Boolean complete(AlarmCompleteBo bo); + + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAlarmEventsServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAlarmEventsServiceImpl.java index 507769a7..faf78855 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAlarmEventsServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAlarmEventsServiceImpl.java @@ -2,6 +2,7 @@ package org.dromara.sis.service.impl; import cn.dev33.satoken.context.mock.SaTokenContextMockUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -40,7 +41,10 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; /** * 告警Service业务层处理 @@ -84,6 +88,15 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService { @Override public TableDataInfo queryPageList(SisAlarmEventsBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); + lqw.orderByDesc(SisAlarmEvents::getId); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + @Override + public TableDataInfo queryPageListCurr(SisAlarmEventsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + lqw.orderByDesc(SisAlarmEvents::getSolveTime); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -101,11 +114,11 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService { } private LambdaQueryWrapper buildQueryWrapper(SisAlarmEventsBo bo) { - Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.orderByAsc(SisAlarmEvents::getId); lqw.eq(bo.getLevel() != null, SisAlarmEvents::getLevel, bo.getLevel()); lqw.eq(bo.getSolveId() != null, SisAlarmEvents::getSolveId, bo.getSolveId()); + lqw.eq(bo.getState() != null, SisAlarmEvents::getState, bo.getState()); + lqw.in(CollectionUtil.isNotEmpty(bo.getStates()), SisAlarmEvents::getState, bo.getStates()); lqw.eq(StringUtils.isNotBlank(bo.getDeviceIp()), SisAlarmEvents::getDeviceIp, bo.getDeviceIp()); lqw.like(StringUtils.isNotBlank(bo.getDeviceName()), SisAlarmEvents::getDeviceName, bo.getDeviceName()); lqw.eq(bo.getDeviceGroupId() != null, SisAlarmEvents::getDeviceGroupId, bo.getDeviceGroupId()); @@ -230,7 +243,7 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService { if (sisAlarmEventsVo == null) { throw new RuntimeException("工单信息不存在!"); } - if (sisAlarmEventsVo.getState().equals(AlarmStatus.REPORTED.getCode())) { + if (!sisAlarmEventsVo.getState().equals(AlarmStatus.REPORTED.getCode())) { throw new RuntimeException("当前工单已指派,请刷新后重新指派!"); } @@ -253,10 +266,13 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService { SisAlarmEvents events = new SisAlarmEvents(); events.setId(sisAlarmEventsVo.getId()); - sisAlarmEventsVo.setSolveId(bo.getAlarmId()); - sisAlarmEventsVo.setSolveName(bo.getSolveName()); - sisAlarmEventsVo.setSolveTime(now); - sisAlarmEventsVo.setState(AlarmStatus.CONFIRMED.getCode()); + events.setSolveId(bo.getSolveId()); + events.setSolveName(bo.getSolveName()); + events.setSolvePhone(bo.getSolvePhone()); + events.setSolveEmail(bo.getSolveEmail()); + events.setSolveName(bo.getSolveName()); + events.setSolveTime(now); + events.setState(AlarmStatus.CONFIRMED.getCode()); this.baseMapper.updateById(events); // 写入处理流程 SisAlarmEventProcess process = new SisAlarmEventProcess(); @@ -297,11 +313,11 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService { Date now = new Date(); SisAlarmEvents events = new SisAlarmEvents(); events.setId(sisAlarmEventsVo.getId()); - sisAlarmEventsVo.setSolveId(bo.getAlarmId()); - sisAlarmEventsVo.setFinishTime(now); - sisAlarmEventsVo.setSolveId(loginUser.getUserId()); - sisAlarmEventsVo.setSolveName(loginUser.getUsername()); - sisAlarmEventsVo.setState(AlarmStatus.RESOLVED.getCode()); + events.setSolveId(bo.getAlarmId()); + events.setFinishTime(now); + events.setSolveId(loginUser.getUserId()); + events.setSolveName(loginUser.getUsername()); + events.setState(AlarmStatus.RESOLVED.getCode()); this.baseMapper.updateById(events); // 写入处理流程 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java index 892d4692..56609546 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.system.dubbo; import cn.hutool.core.bean.BeanUtil; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.common.core.utils.MapstructUtils; import org.dromara.system.api.RemoteDeptService; import org.dromara.system.api.domain.vo.RemoteDeptVo; import org.dromara.system.domain.vo.SysDeptVo; @@ -57,4 +58,9 @@ public class RemoteDeptServiceImpl implements RemoteDeptService { return BeanUtil.copyToList(list, RemoteDeptVo.class); } + @Override + public RemoteDeptVo selectDeptVoById(Long deptId) { + SysDeptVo sysDeptVo = sysDeptService.selectDeptById(deptId); + return BeanUtil.copyProperties(sysDeptVo, RemoteDeptVo.class); + } }