From 1a2a9a1035099a5bfb5ac944f1d52d0a24fa28c9 Mon Sep 17 00:00:00 2001 From: dy <2389062315@qq.com> Date: Thu, 7 Aug 2025 14:56:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E7=8F=AD=E5=88=A0=E9=99=A4=E5=92=8C?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=91=8A=E8=AD=A6=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AttendanceArrangementServiceImpl.java | 26 +++++++++---------- .../sis/controller/SisDataSyncController.java | 6 ++++- .../dromara/sis/mapper/SisDataSyncMapper.java | 7 +++++ .../sis/service/ISisDataSyncService.java | 7 +++++ .../service/impl/SisDataSyncServiceImpl.java | 15 +++++++++++ .../org/dromara/sis/task/DataSyncTask.java | 9 ++++--- 6 files changed, 52 insertions(+), 18 deletions(-) create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisDataSyncMapper.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDataSyncService.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDataSyncServiceImpl.java diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java index 2acd2a14..b11c8250 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java @@ -436,13 +436,6 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS } judgeDate(bo, add); - -// AttendanceArrangementGroup attendanceArrangementGroup = new AttendanceArrangementGroup(); -// //向排班和考勤组中间表中插入数据 -// attendanceArrangementGroup.setGroupId(add.getGroupId()); -// attendanceArrangementGroup.setArrangementId(bo.getId()); -// arrangementGroupMapper.insert(attendanceArrangementGroup); - //取出当前新增的排班的id Long ArrangementId = add.getId(); //用获取到的排班id向attendanceUserGroup表中插入数据 @@ -479,21 +472,28 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS * @param bo 排班 * @return 是否修改成功 */ + @Transactional(rollbackFor = Exception.class) @Override public Boolean updateByBo(AttendanceArrangementBo bo) { AttendanceArrangement update = MapstructUtils.convert(bo, AttendanceArrangement.class); validEntityBeforeSave(update); - judgeDate(bo, update); +// judgeDate(bo, update); //取出当前排班的id + assert update != null; Long ArrangementId = update.getId(); - //用获取到的排班id向attendanceUserGroup表中更新数据 + //根据arrangementId查询出人员组的所有employeeId + List employeeIdList = userGroupMapper.selectList(Wrappers.lambdaQuery().eq(AttendanceUserGroup::getScheduleId, ArrangementId)) + .stream().map(AttendanceUserGroup::getEmployeeId).toList(); + //根据employeeId和ArrangementId删除attendanceUserGroup表中的数据 + userGroupMapper.delete(Wrappers.lambdaQuery().in(AttendanceUserGroup::getEmployeeId, employeeIdList) + .eq(AttendanceUserGroup::getScheduleId, ArrangementId)); + + + //用获取到的排班id向attendanceUserGroup表中批量插入数据 List userGroupList = bo.getUserGroupList(); - for (AttendanceUserGroup userGroup : userGroupList) { - userGroup.setScheduleId(ArrangementId); - userGroupMapper.updateById(userGroup); - } + userGroupMapper.insertBatch(userGroupList); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDataSyncController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDataSyncController.java index c814f0ce..54b05439 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDataSyncController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDataSyncController.java @@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpSession; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -11,6 +12,7 @@ import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; import org.dromara.sis.domain.bo.SisAuthRecordBo; +import org.dromara.sis.service.ISisDataSyncService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -26,12 +28,13 @@ import org.springframework.web.bind.annotation.RestController; * @since 2025-07-14 */ @Validated +@Slf4j @RequiredArgsConstructor @RestController @RequestMapping("/dataSync") public class SisDataSyncController extends BaseController { -// private + private final ISisDataSyncService sisDataSyncService; @SaCheckPermission("sis:dataSync:add") @@ -39,6 +42,7 @@ public class SisDataSyncController extends BaseController { @RepeatSubmit() @PostMapping("/add") public R add(@Validated(AddGroup.class) @RequestBody SisAuthRecordBo bo, HttpServletRequest request) { + log.info("开始同步报警记录数据..."); // return toAjax(); return R.ok(); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisDataSyncMapper.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisDataSyncMapper.java new file mode 100644 index 00000000..463b07d0 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisDataSyncMapper.java @@ -0,0 +1,7 @@ +package org.dromara.sis.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.sis.domain.SisAlarmEvents; + +public interface SisDataSyncMapper extends BaseMapper { +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDataSyncService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDataSyncService.java new file mode 100644 index 00000000..ef7cff8e --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDataSyncService.java @@ -0,0 +1,7 @@ +package org.dromara.sis.service; + +/** + * 告警数据同步Service接口 + */ +public interface ISisDataSyncService { +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDataSyncServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDataSyncServiceImpl.java new file mode 100644 index 00000000..29c6bbd3 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDataSyncServiceImpl.java @@ -0,0 +1,15 @@ +package org.dromara.sis.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.sis.service.ISisDataSyncService; +import org.springframework.stereotype.Service; + +/** + * 告警数据同步Service业务层处理 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class SisDataSyncServiceImpl implements ISisDataSyncService { +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/task/DataSyncTask.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/task/DataSyncTask.java index 53eae686..b9a4012d 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/task/DataSyncTask.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/task/DataSyncTask.java @@ -77,7 +77,7 @@ public class DataSyncTask { // 提取操作记录数据 Map>> operatorMap = new HashMap<>(); for (Map recordMap : recordList) { - Long recordId = Long.valueOf((Integer)recordMap.get("Id")); + Long recordId = Long.valueOf((Integer) recordMap.get("Id")); List> operators = (List>) recordMap.get("TaskOperators"); if (operators != null && !operators.isEmpty()) { operatorMap.put(recordId, operators); @@ -88,14 +88,15 @@ public class DataSyncTask { sisAlarmEvents.setId(recordId); sisAlarmEvents.setType(Long.valueOf((Integer) recordMap.get("Type"))); sisAlarmEvents.setLevel(Long.valueOf((Integer) recordMap.get("Level"))); -// //报警设备ip -// sisAlarmEvents.setDeviceIp(); + sisAlarmEvents.setDeviceIp((String) recordMap.get("DeviceSipNum")); sisAlarmEvents.setDeviceName(recordMap.get("DeviceName").toString()); sisAlarmEvents.setDeviceGroupId(Long.valueOf((Integer) recordMap.get("GroupId"))); sisAlarmEvents.setDeviceGroupName(recordMap.get("GroupName").toString()); sisAlarmEvents.setReportTime((Date) recordMap.get("StartTime")); sisAlarmEvents.setState((Integer) recordMap.get("State")); - sisAlarmEvents.setWorkOrderId(Long.valueOf((Integer) recordMap.get("WorkOrderId"))); + if ((Integer) recordMap.get("State") == 3) { + sisAlarmEvents.setWorkOrderId(Long.valueOf((Integer) recordMap.get("WorkOrderId"))); + } //保存报警事件 sisAlarmEventsService.insertByBo(sisAlarmEvents);