From 20faf13328674cc93fdb69a108aee7c5ee4f3bad Mon Sep 17 00:00:00 2001 From: yuyongle <1150359267@qq.com> Date: Thu, 7 Aug 2025 09:39:08 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=BF=9D?= =?UTF-8?q?=E6=B4=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../property/service/impl/InspectionRouteServiceImpl.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionRouteServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionRouteServiceImpl.java index dc65dc1a..e0500165 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionRouteServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionRouteServiceImpl.java @@ -1,6 +1,5 @@ package org.dromara.property.service.impl; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -14,7 +13,6 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.property.domain.InspectionRoute; import org.dromara.property.domain.InspectionRoutePoint; import org.dromara.property.domain.bo.InspectionRouteBo; -import org.dromara.property.domain.bo.InspectionRoutePointBo; import org.dromara.property.domain.vo.InspectionPointVo; import org.dromara.property.domain.vo.InspectionRoutePointVo; import org.dromara.property.domain.vo.InspectionRouteVo; @@ -47,7 +45,7 @@ public class InspectionRouteServiceImpl implements IInspectionRouteService { /** * 查询巡检路线 - * + *- * @param id 主键 * @return 巡检路线 */ From 2deb9b96f9ba6dbd51e69e079bc14eb2c7da8de7 Mon Sep 17 00:00:00 2001 From: dy <2389062315@qq.com> Date: Thu, 7 Aug 2025 11:24:50 +0800 Subject: [PATCH 2/7] 1 --- .../AttendanceArrangementServiceImpl.java | 43 ++++++++++++++++-- .../sis/controller/SisDataSyncController.java | 45 +++++++++++++++++++ .../org/dromara/sis/task/DataSyncTask.java | 24 +++++++++- 3 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDataSyncController.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 e7838ac5..2acd2a14 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 @@ -62,10 +62,16 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS */ @Override public AttendanceArrangementVo queryById(Long id) { + AttendanceArrangementVo vo = baseMapper.selectVoById(id); + //根据id查询出groupId + Long groupId = baseMapper.selectById(id).getGroupId(); + //根据groupId查询出考勤组信息 + AttendanceGroup attendanceGroup = attendanceGroupMapper.selectById(groupId); + vo.setAttendanceGroup(attendanceGroup); + //根据id查询排班人员信息 List userGroupList = userGroupMapper.selectList(Wrappers.lambdaQuery().eq(AttendanceUserGroup::getScheduleId, id)); //将排班人员信息添加到排班信息中 - AttendanceArrangementVo vo = baseMapper.selectVoById(id); vo.setUserGroupList(userGroupList); return vo; } @@ -497,8 +503,39 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS */ private void validEntityBeforeSave(AttendanceArrangement entity) { //TODO 做一些数据校验,如唯一约束 - //新增时判断在该时间段内是否有排班 - +// //新增时判断在该时间段内是否有排班 +// //1.查询所有的排班信息 +// List arrangementList = baseMapper.selectList(); +// +// //使用between查询排班的开始时间在新增的开始时间和结束时间的排班信息 +// List startResult = baseMapper.selectVoList(Wrappers.lambdaQuery() +// .between(AttendanceArrangement::getStartDate, entity.getStartDate(), entity.getStartDate().plusDays(1)) +// .eq(AttendanceArrangement::getGroupId, entity.getGroupId())); +// //查询排班的结束时间在新增的开始时间和结束时间的排班信息 +// List endResult = baseMapper.selectList(Wrappers.lambdaQuery() +// .between(AttendanceArrangement::getEndDate, entity.getStartDate(), entity.getStartDate().plusDays(1)) +// .eq(AttendanceArrangement::getGroupId, entity.getGroupId())); +// +// //将两个集合进行合并 +// List result = new ArrayList<>(startResult.stream().distinct().toList()); +// result.addAll(endResult.stream().map(vo -> { +// AttendanceArrangementVo newVo = MapstructUtils.convert(vo, AttendanceArrangementVo.class); +// newVo.setStartDate(vo.getStartDate()); +// newVo.setEndDate(vo.getEndDate()); +// return newVo; +// }).toList()); +// +// //去重 +// result = result.stream().distinct().toList(); +// +// +// +// //2.遍历排班信息,判断是否有时间冲突 +// for (AttendanceArrangement arrangement : arrangementList) { +// //如果时间 +// if () +// } +// } 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 new file mode 100644 index 00000000..c814f0ce --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDataSyncController.java @@ -0,0 +1,45 @@ +package org.dromara.sis.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpSession; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +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.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** + * 主动推送的同步数据 + * 前端访问路由地址为:/sis/dataSync + * + * @author lsm + * @since 2025-07-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/dataSync") +public class SisDataSyncController extends BaseController { + +// private + + + @SaCheckPermission("sis:dataSync:add") + @Log(title = "人员库授权", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/add") + public R add(@Validated(AddGroup.class) @RequestBody SisAuthRecordBo bo, HttpServletRequest request) { +// return toAjax(); + return R.ok(); + } +} 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 1aef66ad..53eae686 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 @@ -5,8 +5,11 @@ import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.property.api.RemoteFloorService; import org.dromara.property.api.domain.vo.RemoteFloorVo; import org.dromara.sis.domain.AlarmRecord; +import org.dromara.sis.domain.SisAlarmEvents; +import org.dromara.sis.domain.bo.SisAlarmEventsBo; import org.dromara.sis.service.AlarmRecordService; import org.dromara.sis.service.ApiService; +import org.dromara.sis.service.ISisAlarmEventsService; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -24,13 +27,15 @@ public class DataSyncTask { private final ApiService apiService; private final AlarmRecordService alarmRecordService; + private final ISisAlarmEventsService sisAlarmEventsService; @Value("${sync.pageSize:100}") private int pageSize; - public DataSyncTask(ApiService apiService, AlarmRecordService alarmRecordService) { + public DataSyncTask(ApiService apiService, AlarmRecordService alarmRecordService, ISisAlarmEventsService sisAlarmEventsService) { this.apiService = apiService; this.alarmRecordService = alarmRecordService; + this.sisAlarmEventsService = sisAlarmEventsService; } /** @@ -77,6 +82,23 @@ public class DataSyncTask { if (operators != null && !operators.isEmpty()) { operatorMap.put(recordId, operators); } + + //同步成功后,将两张表的数据合并到alarmEvents表中 + SisAlarmEventsBo sisAlarmEvents = new SisAlarmEventsBo(); + sisAlarmEvents.setId(recordId); + sisAlarmEvents.setType(Long.valueOf((Integer) recordMap.get("Type"))); + sisAlarmEvents.setLevel(Long.valueOf((Integer) recordMap.get("Level"))); +// //报警设备ip +// sisAlarmEvents.setDeviceIp(); + 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"))); + //保存报警事件 + sisAlarmEventsService.insertByBo(sisAlarmEvents); + } // 保存数据(包含操作记录) From 9aa58d20270920e571abbabc7929f0208454efb7 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Thu, 7 Aug 2025 12:06:24 +0800 Subject: [PATCH 3/7] =?UTF-8?q?feat(sdk):=20=E6=B7=BB=E5=8A=A0=E9=80=9A?= =?UTF-8?q?=E7=94=A8API=E8=B0=83=E7=94=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sis/sdk/hik/service/CamearService.java | 78 ++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/service/CamearService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/service/CamearService.java index 2f66f9fc..42279dba 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/service/CamearService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/service/CamearService.java @@ -1,5 +1,7 @@ package org.dromara.sis.sdk.hik.service; +import com.sun.jna.Memory; +import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import lombok.extern.slf4j.Slf4j; import org.dromara.sis.sdk.hik.HCNetSDK; @@ -18,7 +20,7 @@ public class CamearService extends SdkBaseServer { /** * 获取设备通道信息 * - * @return + * @return DeviceInfo */ public static DeviceInfo getDeviceChannelInfo(int lUserID) { HCNetSDK.NET_DVR_IPPARACFG_V40 lpOutBuffer = new HCNetSDK.NET_DVR_IPPARACFG_V40(); @@ -77,4 +79,78 @@ public class CamearService extends SdkBaseServer { return deviceInfo; } + public static void isAPI(int lUserID, String url) { + // 输入参数 + HCNetSDK.NET_DVR_XML_CONFIG_INPUT strInput = new HCNetSDK.NET_DVR_XML_CONFIG_INPUT(); + strInput.dwSize = strInput.size(); // 初始化结构体内存 + + // 2. 构造URL - 必须包含 \r\n 结束符 +// String url = "GET /ISAPI/Intelligent/capabilities\r\n"; + byte[] urlBytes = url.getBytes(); + Memory urlMemory = new Memory(urlBytes.length + 1); // +1 for null terminator + urlMemory.write(0, urlBytes, 0, urlBytes.length); + urlMemory.setByte(urlBytes.length, (byte) 0); // 添加NUL终止符 + + strInput.lpRequestUrl = urlMemory; + strInput.dwRequestUrlLen = urlBytes.length; // 不包括NUL终止符 + + // 3. 输入缓冲区设为空指针 + strInput.lpInBuffer = Pointer.NULL; + strInput.dwInBufferSize = 0; + + + // 输出参数 + HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT strOutput = new HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); + strOutput.dwSize = strOutput.size(); + + // 5. 分配输出缓冲区 (8KB) + int outBufSize = 8 * 1024; + Memory outBuffer = new Memory(outBufSize); + outBuffer.clear(); // 清零缓冲区 + + // 6. 分配状态缓冲区 (1KB) + int statusSize = 1024; + Memory statusBuffer = new Memory(statusSize); + statusBuffer.clear(); // 清零缓冲区 + + strOutput.lpOutBuffer = outBuffer; + strOutput.dwOutBufferSize = outBufSize; + strOutput.lpStatusBuffer = statusBuffer; + strOutput.dwStatusSize = statusSize; + + // 7. 调用前写入结构体 + strOutput.write(); // 将Java结构体写入本地内存 + strOutput.write(); // 将Java结构体写入本地内存 + + // 调用SDK方法 + boolean success = hcNetSDK.NET_DVR_STDXMLConfig(lUserID, strInput, strOutput); + + if (!success) { + int errorCode = hcNetSDK.NET_DVR_GetLastError(); + System.err.println("NET_DVR_STDXMLConfig failed, error code: " + errorCode); + + // 打印状态信息帮助调试 + if (strOutput.dwReturnedXMLSize > 0) { + String status = statusBuffer.getString(0); + System.err.println("Status: " + status); + } + } else { + System.out.println("NET_DVR_STDXMLConfig successfully!"); + + // 9. 读取前同步结构体字段 + strOutput.read(); // 从本地内存读取更新后的结构体 + + // 检查实际返回的数据大小 + int returnedSize = strOutput.dwReturnedXMLSize; + if (returnedSize > 0) { + // 使用正确的长度读取字符串 + String xmlResponse = outBuffer.getString(0); + System.out.println("Response size: " + returnedSize); + System.out.println(xmlResponse); + } else { + System.out.println("No data returned"); + } + } + } + } 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 4/7] =?UTF-8?q?=E6=8E=92=E7=8F=AD=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=92=8C=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); From 4893a04d3909ba9cdd3bb4d3e75c230a34a5b350 Mon Sep 17 00:00:00 2001 From: dy <2389062315@qq.com> Date: Thu, 7 Aug 2025 17:22:39 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E9=83=A8=E5=88=86=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E6=9F=A5=E8=AF=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AttendanceArrangementServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 b11c8250..e14f152b 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 @@ -97,7 +97,7 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS Page attendanceArrangementVoPage = result.setRecords(result.getRecords().stream().map(vo -> { //根据当前日期查询在开始时间和结束时间之间的排班信息 //从前端查询出来的当前日期,判断是否在排班时间内 - if (bo.getCurrentDate().isAfter(vo.getStartDate()) && bo.getCurrentDate().isBefore(vo.getEndDate())) { + if ((bo.getCurrentDate().isAfter(vo.getStartDate()) || bo.getCurrentDate().isEqual(vo.getStartDate())) && (bo.getCurrentDate().isBefore(vo.getEndDate()) || bo.getCurrentDate().isEqual(vo.getEndDate()))) { //1.查询人员表信息 //根据查询出来的result取出shceduleId Long scheduleId = vo.getId(); @@ -436,6 +436,10 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS } judgeDate(bo, add); + + + + //取出当前新增的排班的id Long ArrangementId = add.getId(); //用获取到的排班id向attendanceUserGroup表中插入数据 From 6444a9330beb9bead5265d8b57373057c999dfa9 Mon Sep 17 00:00:00 2001 From: yuyongle <1150359267@qq.com> Date: Thu, 7 Aug 2025 17:34:18 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E5=B7=A5?= =?UTF-8?q?=E5=8D=95bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ServiceWorkOrdersTypeController.java | 2 - .../dromara/property/domain/CleanOrder.java | 10 ++++- .../property/domain/InspectionRoutePoint.java | 7 +++- .../property/domain/ServiceWorkOrders.java | 6 +-- .../property/domain/TbVisitorManagement.java | 4 ++ .../property/domain/bo/CleanOrderBo.java | 8 ++++ .../domain/bo/InspectionRoutePointBo.java | 5 +++ .../domain/bo/TbVisitorManagementBo.java | 5 ++- .../property/domain/vo/CleanOrderVo.java | 8 ++++ .../domain/vo/InspectionRoutePointVo.java | 8 ++-- .../domain/vo/TbVisitorManagementVo.java | 5 ++- .../impl/ServiceWorkOrdersServiceImpl.java | 15 +++++-- .../ServiceWorkOrdersTypeServiceImpl.java | 3 ++ .../dromara/property/tasks/MachineTasks.java | 15 +++++-- .../property/tasks/ServiceWorkOrderTasks.java | 42 +++++++++++++++++++ 15 files changed, 122 insertions(+), 21 deletions(-) create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java index 725498ed..82d06c3c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java @@ -107,7 +107,6 @@ public class ServiceWorkOrdersTypeController extends BaseController { /** * 查询【工单类型】树结构 */ - @SaCheckPermission("system:workOrdersType:list") @GetMapping("/typeTree") public R> typeTree() { return R.ok(serviceWorkOrdersTypeService.typeTree()); @@ -119,7 +118,6 @@ public class ServiceWorkOrdersTypeController extends BaseController { * @param bo 工单类型 * @return 工单类型列表 */ - @SaCheckPermission("system:workOrdersType:list") @GetMapping("/queryList") public R> queryList(ServiceWorkOrdersTypeBo bo) { return R.ok(serviceWorkOrdersTypeService.queryList(bo)); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java index 53cf2f3c..b897e896 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java @@ -60,6 +60,14 @@ public class CleanOrder extends TenantEntity { * 保洁类型 */ private String type; + /** + * 签到方式(1现场拍照2摄像头签到) + */ + private String signType; + /** + * 签到图片 + */ + private String signImgUrl; /** * 评价 */ @@ -69,7 +77,7 @@ public class CleanOrder extends TenantEntity { */ private String serviceEvaluaText; /** - * 图片 + * 评价图片 */ private String imgUrl; /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionRoutePoint.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionRoutePoint.java index 7746ccfb..9ed9968b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionRoutePoint.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionRoutePoint.java @@ -1,5 +1,7 @@ package org.dromara.property.domain; +import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.validate.EditGroup; import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @@ -55,9 +57,10 @@ public class InspectionRoutePoint extends TenantEntity { private String remark; /** - * 搜索值 + * 排序 */ - private String searchValue; + @NotNull(message = "排序不能为空", groups = { EditGroup.class }) + private Integer sort; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrders.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrders.java index a52fb76b..69c57064 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrders.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrders.java @@ -40,7 +40,7 @@ public class ServiceWorkOrders extends TenantEntity { */ private String orderName; /** - * 权重 + * 权重(1一般2紧急3危急) */ private String processingWeight; /** @@ -67,11 +67,11 @@ public class ServiceWorkOrders extends TenantEntity { /** * 处理人姓名 */ - private long handler; + private Long handler; /** * 抄送人 */ - private long ccPeople; + private Long ccPeople; /** * 地址 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbVisitorManagement.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbVisitorManagement.java index ebfca824..391a472b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbVisitorManagement.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbVisitorManagement.java @@ -43,6 +43,10 @@ public class TbVisitorManagement extends TenantEntity { * 访客电话 */ private String visitorPhone; + /** + * 身份证/军 + */ + private String idCard; /** * 拜访事由 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java index fd6daed4..1d407561 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java @@ -49,6 +49,14 @@ public class CleanOrderBo extends BaseEntity { */ @NotBlank(message = "保洁类型不能为空", groups = { AddGroup.class, EditGroup.class }) private String type; + /** + * 签到方式(1现场拍照2摄像头签到) + */ + private String signType; + /** + * 签到图片 + */ + private String signImgUrl; /** * 保洁id */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionRoutePointBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionRoutePointBo.java index c202fcd2..59e5c69b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionRoutePointBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionRoutePointBo.java @@ -33,6 +33,11 @@ public class InspectionRoutePointBo extends BaseEntity { */ // @NotNull(message = "巡检路线id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long routeId; + /** + * 排序 + */ + @NotNull(message = "排序不能为空", groups = { EditGroup.class }) + private Integer sort; /** * 巡检点id diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbVisitorManagementBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbVisitorManagementBo.java index 2da2f5b6..ca82d5a9 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbVisitorManagementBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbVisitorManagementBo.java @@ -51,7 +51,10 @@ public class TbVisitorManagementBo extends BaseEntity { */ @NotBlank(message = "访客电话不能为空", groups = { AddGroup.class, EditGroup.class }) private String visitorPhone; - + /** + * 身份证/军 + */ + private String idCard; /** * 拜访事由 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java index e078a789..ca959c81 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java @@ -55,6 +55,14 @@ public class CleanOrderVo implements Serializable { * 保洁类型 */ private String type; + /** + * 签到方式(1现场拍照2摄像头签到) + */ + private String signType; + /** + * 签到图片 + */ + private String signImgUrl; /** * 评价 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionRoutePointVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionRoutePointVo.java index f3d4d648..f1213800 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionRoutePointVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionRoutePointVo.java @@ -2,6 +2,8 @@ package org.dromara.property.domain.vo; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.validate.EditGroup; import org.dromara.property.domain.InspectionRoutePoint; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; @@ -76,10 +78,10 @@ public class InspectionRoutePointVo implements Serializable { private String remark; /** - * 搜索值 + * 排序 */ - @ExcelProperty(value = "搜索值") - private String searchValue; + @NotNull(message = "排序不能为空", groups = { EditGroup.class }) + private Integer sort; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java index 1edf997f..4f1bd4f6 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java @@ -56,7 +56,10 @@ public class TbVisitorManagementVo implements Serializable { */ @ExcelProperty(value = "访客电话") private String visitorPhone; - + /** + * 身份证/军 + */ + private String idCard; /** * 拜访事由 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersServiceImpl.java index 17bd272f..b9372f60 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersServiceImpl.java @@ -51,7 +51,6 @@ import java.util.stream.Collectors; public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { private final ServiceWorkOrdersMapper baseMapper; - private final ServiceWorkOrdersTypeMapper serviceWorkOrdersTypeMapper; private final ServiceWorkOrdersTypeMapper typesMapper; private final ResidentPersonMapper residentPersonMapper; private final ServiceWorkOrdersRecordMapper workOrdersRecordMapper; @@ -160,11 +159,19 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { } private LambdaQueryWrapper buildQueryWrapper(ServiceWorkOrdersBo bo) { + //查询类型下子类型id + LambdaQueryWrapper OrdersTypeWrapper = new LambdaQueryWrapper<>(); + OrdersTypeWrapper.eq(ServiceWorkOrdersType::getParentId,bo.getType()); + List serviceWorkOrdersTypes = typesMapper.selectList(OrdersTypeWrapper); + List typeIds = serviceWorkOrdersTypes.stream() + .map(ServiceWorkOrdersType::getId) + .collect(Collectors.toList()); + typeIds.add(bo.getType()); Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(ServiceWorkOrders::getId); lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), ServiceWorkOrders::getOrderNo, bo.getOrderNo()); - lqw.eq(ObjectUtil.isNotEmpty(bo.getStatus()), ServiceWorkOrders::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), ServiceWorkOrders::getStatus, bo.getStatus()); lqw.like(StringUtils.isNotBlank(bo.getOrderName()), ServiceWorkOrders::getOrderName, bo.getOrderName()); lqw.eq(bo.getDispatchTime() != null, ServiceWorkOrders::getDispatchTime, bo.getDispatchTime()); lqw.like(StringUtils.isNotBlank(bo.getInitiatorName()), ServiceWorkOrders::getInitiatorPeople, bo.getInitiatorName()); @@ -173,7 +180,7 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { lqw.eq(bo.getPlanCompleTime() != null, ServiceWorkOrders::getPlanCompleTime, bo.getPlanCompleTime()); lqw.eq(bo.getCompleTime() != null, ServiceWorkOrders::getCompleTime, bo.getCompleTime()); lqw.eq(Objects.nonNull(bo.getServiceEvalua()), ServiceWorkOrders::getServiceEvalua, bo.getServiceEvalua()); - lqw.eq(Objects.nonNull(bo.getType()), ServiceWorkOrders::getType, bo.getType()); + lqw.in(Objects.nonNull(bo.getType()), ServiceWorkOrders::getType, typeIds); lqw.eq(StringUtils.isNotBlank(bo.getProcessingWeight()), ServiceWorkOrders::getProcessingWeight, bo.getProcessingWeight()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), ServiceWorkOrders::getSearchValue, bo.getSearchValue()); return lqw; @@ -459,7 +466,7 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { Integer count = entry.getValue().intValue(); // 查询类型名称 - ServiceWorkOrdersType serviceWorkOrdersType = serviceWorkOrdersTypeMapper.selectById(typeId); + ServiceWorkOrdersType serviceWorkOrdersType = typesMapper.selectById(typeId); String type = serviceWorkOrdersType != null ? serviceWorkOrdersType.getOrderTypeName() : "未知类型"; // 添加到结果中 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java index 2a971429..48912b8b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.property.service.impl; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; @@ -80,9 +81,11 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(ServiceWorkOrdersType::getSort); lqw.eq(StringUtils.isNotBlank(bo.getOrderTypeNo()), ServiceWorkOrdersType::getOrderTypeNo, bo.getOrderTypeNo()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderTypeNo()), ServiceWorkOrdersType::getOrderTypeNo, bo.getOrderTypeNo()); lqw.like(StringUtils.isNotBlank(bo.getOrderTypeName()), ServiceWorkOrdersType::getOrderTypeName, bo.getOrderTypeName()); lqw.eq(StringUtils.isNotBlank(bo.getOperationMode()), ServiceWorkOrdersType::getOperationMode, bo.getOperationMode()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), ServiceWorkOrdersType::getSearchValue, bo.getSearchValue()); + lqw.eq(ObjectUtil.isNotEmpty(bo.getParentId()), ServiceWorkOrdersType::getParentId, bo.getParentId()); lqw.isNull(bo.getFilterSubNodes() != null && bo.getFilterSubNodes(), ServiceWorkOrdersType::getParentId); lqw.ne(bo.getExcludeId()!=null,ServiceWorkOrdersType::getId,bo.getExcludeId()); return lqw; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java index 10fd845f..af701d25 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java @@ -18,6 +18,9 @@ import org.dromara.property.mapper.MachineMaintainPlanStaffMapper; import org.dromara.property.mapper.MachineMaintainTaskMapper; import org.dromara.property.mapper.ResidentPersonMapper; import org.dromara.property.service.IMachineMaintainPlanService; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -39,17 +42,21 @@ import static org.dromara.common.mybatis.core.mapper.BaseMapperPlus.log; * @Date:2025/7/17 09:25 * @Description: **/ -@Validated +@Component @RequiredArgsConstructor -@RestController -@RequestMapping("/machineTask") +//@Validated +//@RequiredArgsConstructor +//@RestController +//@RequestMapping("/machineTask") public class MachineTasks { private final IMachineMaintainPlanService machineMaintainPlanService; private final MachineMaintainTaskMapper machineMaintainTaskMapper; private final MachineMaintainPlanStaffMapper machineMaintainPlanStaffMapper; private final ResidentPersonMapper residentPersonMapper; - @GetMapping("/taskId") + //@GetMapping("/taskId") + @Scheduled(cron = "0 0 3 * * ?") + @Transactional(rollbackFor = Exception.class) public void doMachineMaintainPianTask() { // 查询所有启用状态的巡检计划 MachineMaintainPlanBo machineMaintainPlanBo= new MachineMaintainPlanBo(); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java new file mode 100644 index 00000000..a0ad8082 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java @@ -0,0 +1,42 @@ +package org.dromara.property.tasks; + +import cn.hutool.core.collection.CollUtil; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.property.domain.ServiceWorkOrders; +import org.dromara.property.mapper.ServiceWorkOrdersMapper; +import org.springframework.stereotype.Component; + +import java.util.List; + +import org.dromara.common.log.annotation.Log; + +/** + * @Author:yuyongle + * @Date:2025/8/7 14:21 + * @Description:自动派单 + **/ +@Slf4j +@Component +@RequiredArgsConstructor +public class ServiceWorkOrderTasks { + private ServiceWorkOrdersMapper workOrdersMapper; + + //查询状态为创建工单的工单 + private void handleServiceWorkOrder() { + List serviceWorkOrderList = workOrdersMapper.selectList( + new LambdaQueryWrapper() + .eq(ServiceWorkOrders::getStatus, "0")); + if(CollUtil.isNotEmpty(serviceWorkOrderList)){ + serviceWorkOrderList.stream().forEach(s->{ + + }); + }else { + log.info("派单工单为:{}",serviceWorkOrderList.size()); + } + + } +} From e3867b7a12fe92a8f1dfc4c8683f5b0aa4584ee1 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Thu, 7 Aug 2025 22:34:06 +0800 Subject: [PATCH 7/7] =?UTF-8?q?feat(sis):=20=E6=94=AF=E6=8C=81=E9=BB=91?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E4=BA=BA=E5=91=98=E7=AE=A1=E7=90=86=20-=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=BA=E5=91=98=E6=A0=87=E7=AD=BE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=AD=97=E6=AE=B5=EF=BC=8C=E7=94=A8=E4=BA=8E=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E7=BA=A2=E5=90=8D=E5=8D=95=E3=80=81=E7=99=BD=E5=90=8D?= =?UTF-8?q?=E5=8D=95=E5=92=8C=E9=BB=91=E5=90=8D=E5=8D=95=20-=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8E=88=E6=9D=83=E9=80=BB=E8=BE=91=EF=BC=8C=E9=BB=91?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E4=BA=BA=E5=91=98=E4=B8=8D=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E6=8E=88=E6=9D=83=E8=AE=B0=E5=BD=95=E5=92=8CE8=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E5=90=8C=E6=AD=A5=20-=20=E4=BC=98=E5=8C=96=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=EF=BC=8C=E5=AF=B9=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E7=B1=BB=E5=9E=8B=E7=9A=84=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=B7=AE=E5=BC=82=E5=8C=96=E5=A4=84=E7=90=86?= =?UTF-8?q?=20-=20=E5=A2=9E=E5=8A=A0=E9=BB=91=E5=90=8D=E5=8D=95=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E5=85=A5=E5=86=85=E7=9A=84=E5=91=8A=E8=AD=A6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/domain/vo/RemoteResidentPersonVo.java | 2 + .../dromara/sis/api/RemoteSisAuthService.java | 4 +- .../sis/api/domain/RemotePersonAuth.java | 2 + .../property/domain/ResidentPerson.java | 6 ++ .../property/domain/bo/ResidentPersonBo.java | 5 ++ .../property/domain/vo/ResidentPersonVo.java | 5 ++ .../RemoteResidentPersonServiceImpl.java | 1 + .../impl/ResidentPersonServiceImpl.java | 11 +-- .../dromara/sis/domain/SisPersonLibImg.java | 5 ++ .../sis/domain/bo/SisPersonLibImgBo.java | 5 ++ .../sis/domain/enums/RosterTypeEnum.java | 32 ++++++++ .../sis/domain/vo/SisAuthRecordVo.java | 4 + .../sis/domain/vo/SisPersonLibImgVo.java | 6 ++ .../sis/dubbo/RemoteSisAuthServiceImpl.java | 16 ++-- .../impl/SisAuthRecordServiceImpl.java | 75 ++++++++++--------- .../impl/ZeroSensationPassageServiceImpl.java | 7 ++ .../mapper/sis/SisAuthRecordMapper.xml | 2 +- .../job/entity/enums/RosterTypeEnum.java | 32 ++++++++ .../job/snailjob/sis/SyncGrantAuthTask.java | 65 +++++++++------- 19 files changed, 207 insertions(+), 78 deletions(-) create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/enums/RosterTypeEnum.java create mode 100644 ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/entity/enums/RosterTypeEnum.java diff --git a/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteResidentPersonVo.java b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteResidentPersonVo.java index fe4cb830..56e240dd 100644 --- a/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteResidentPersonVo.java +++ b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteResidentPersonVo.java @@ -34,4 +34,6 @@ public class RemoteResidentPersonVo implements Serializable { private Date authBegDate; private Date authEndDate; + + private Integer rosterType; } diff --git a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteSisAuthService.java b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteSisAuthService.java index 254ee655..46467166 100644 --- a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteSisAuthService.java +++ b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteSisAuthService.java @@ -38,12 +38,12 @@ public interface RemoteSisAuthService { Boolean queryPersonAuth(Long authGroupId, Long personId); /** - * 通过MD5,查询图片id + * 通过MD5,查询华为盒子id * * @param imgMd5 图片MD5 * @return Long */ - Long queryImgIdByImgMd5(String imgMd5); + Long queryHuaweiBoxIdByImgMd5(String imgMd5); /** * 图片写入华为盒子 diff --git a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemotePersonAuth.java b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemotePersonAuth.java index c08c1dfe..da60b171 100644 --- a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemotePersonAuth.java +++ b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemotePersonAuth.java @@ -43,4 +43,6 @@ public class RemotePersonAuth implements Serializable { private Date authEndDate; + private Integer rosterType; + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ResidentPerson.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ResidentPerson.java index 015a4355..70b1259c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ResidentPerson.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ResidentPerson.java @@ -108,6 +108,12 @@ public class ResidentPerson extends TenantEntity { * e8平台id */ private Long eEightId; + + /** + * 人员标签类型 + */ + private Integer rosterType; + /** * 创建人id */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ResidentPersonBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ResidentPersonBo.java index 08794779..46a087f1 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ResidentPersonBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ResidentPersonBo.java @@ -121,5 +121,10 @@ public class ResidentPersonBo extends BaseEntity { */ private String remark; + /** + * 人员标签类型 + */ + private Integer rosterType = 2; + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ResidentPersonVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ResidentPersonVo.java index 2ff3eb57..88f0d0b2 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ResidentPersonVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ResidentPersonVo.java @@ -138,5 +138,10 @@ public class ResidentPersonVo implements Serializable { */ private String idCard; + /** + * 人员标签类型 + */ + private Integer rosterType; + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteResidentPersonServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteResidentPersonServiceImpl.java index 2121eee2..9fa95e96 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteResidentPersonServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteResidentPersonServiceImpl.java @@ -35,6 +35,7 @@ public class RemoteResidentPersonServiceImpl implements RemoteResidentPersonServ remoteResidentPersonVo.setName(vo.getUserName()); remoteResidentPersonVo.setIdCard(vo.getIdCard()); remoteResidentPersonVo.setGender(vo.getGender()); + remoteResidentPersonVo.setRosterType(vo.getRosterType()); remoteResidentPersonVo.setAuthGroupId(vo.getAuthGroupId()); remoteResidentPersonVo.setAuthBegDate(vo.getAuthBegDate()); remoteResidentPersonVo.setAuthEndDate(vo.getAuthEndDate()); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentPersonServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentPersonServiceImpl.java index b3aed1ea..5ba0c70e 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentPersonServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentPersonServiceImpl.java @@ -140,31 +140,26 @@ public class ResidentPersonServiceImpl implements IResidentPersonService { ResidentPerson update = MapstructUtils.convert(bo, ResidentPerson.class); assert update != null; - boolean flag; // 人脸照片存在时,才同步修改授权 if (update.getAuthGroupId() != null && update.getAuthEndDate() != null && update.getImg() != null) { ResidentPersonVo vo = queryById(update.getId()); Long e8Id = vo.getEEightId(); - baseMapper.updateById(update); // 显式移除e8id LambdaUpdateWrapper lqw = new LambdaUpdateWrapper<>(); lqw.eq(ResidentPerson::getId, update.getId()) .set(ResidentPerson::getEEightId, null); - flag = baseMapper.update(lqw) > 0; + boolean check = baseMapper.update(lqw) > 0; - - if (flag && e8Id != null) { + if (check && e8Id != null) { log.info("开始修改授权记录, {}", bo.getUserName()); // 先删除,定时任务增加 Boolean auth = remoteSisAuthService.deletePersonAuth(List.of(update.getId()), List.of(e8Id)); Assert.isTrue(auth, "修改授权记录失败!"); } - - } else { - flag = baseMapper.updateById(update) > 0; } + boolean flag = baseMapper.updateById(update) > 0; Assert.isTrue(flag, "修改入驻员工失败!"); return flag; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java index 1d325904..5f2c6deb 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java @@ -83,4 +83,9 @@ public class SisPersonLibImg extends TenantEntity { */ private String imgMd5Value; + /** + * 人员标签 + */ + private Integer rosterType; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java index abb1c577..41b08246 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java @@ -91,4 +91,9 @@ public class SisPersonLibImgBo extends BaseEntity { */ private String imgMd5Value; + /** + * 人员标签 + */ + private Integer rosterType; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/enums/RosterTypeEnum.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/enums/RosterTypeEnum.java new file mode 100644 index 00000000..6dd17231 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/enums/RosterTypeEnum.java @@ -0,0 +1,32 @@ +package org.dromara.sis.domain.enums; + +import lombok.Getter; + +/** + * @author lsm + * @apiNote RosterTypeEnum + * @since 2025/8/7 + */ +@Getter +public enum RosterTypeEnum { + /** + * 红名单 + */ + RED_LIST(1), + + /** + * 白名单 + */ + WHITE_LIST(2), + + /** + * 黑名单名单 + */ + BLACK_LIST(3); + + private final Integer code; + + RosterTypeEnum(Integer code) { + this.code = code; + } +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java index 6b9f1a11..c8ebd1dd 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java @@ -62,5 +62,9 @@ public class SisAuthRecordVo implements Serializable { @ExcelProperty(value = "结束时间") private Date endDate; + /** + * 人员标签 + */ + private Integer rosterType; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java index d9998833..18b17e2a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java @@ -102,4 +102,10 @@ public class SisPersonLibImgVo implements Serializable { */ @ExcelProperty(value = "图片MD5") private String imgMd5Value; + + /** + * 人员标签 + */ + @ExcelProperty(value = "人员标签") + private Integer rosterType; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteSisAuthServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteSisAuthServiceImpl.java index 4418cf1f..10dbe3a0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteSisAuthServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteSisAuthServiceImpl.java @@ -85,15 +85,15 @@ public class RemoteSisAuthServiceImpl implements RemoteSisAuthService { } /** - * 通过MD5,查询图片id + * 通过MD5,查询华为盒子id * * @param imgMd5 图片MD5 * @return Long */ @Override - public Long queryImgIdByImgMd5(String imgMd5) { + public Long queryHuaweiBoxIdByImgMd5(String imgMd5) { SisPersonLibImgVo vo = sisPersonLibImgService.queryByImgMd5(imgMd5); - return vo != null ? vo.getId() : null; + return vo != null ? vo.getRemoteImgId() : null; } /** @@ -118,6 +118,7 @@ public class RemoteSisAuthServiceImpl implements RemoteSisAuthService { pId = huaWeiBoxApi.addPerson(List.of(req)); } catch (Exception e) { + log.error("同步华为盒子失败:{}----{}", person.getName(), person.getId()); return null; } return pId; @@ -152,7 +153,7 @@ public class RemoteSisAuthServiceImpl implements RemoteSisAuthService { try { log.info("e8平台上传照片"); String e8ImgUrl = e8PlatformApi.uploadFace(imgByte); - Assert.notNull(e8ImgUrl, "图片上传E8平台失败"); + Assert.notNull(e8ImgUrl, "图片上传E8平台失败:" + person.getName() + "----" + person.getId()); log.info("e8平台上传照片完成"); count++; // 图片上传完成步进器+1 @@ -161,7 +162,7 @@ public class RemoteSisAuthServiceImpl implements RemoteSisAuthService { req.setName(person.getName()); req.setGender(person.getSex() != 1 ? 0 : 1); e8Id = e8PlatformApi.addCustomer(req).getId(); - Assert.notNull(e8Id, "e8同步新建人员失败"); + Assert.notNull(e8Id, "e8同步新建人员失败:" + person.getName() + "----" + person.getId()); log.info("e8同步新建人员完成"); count++; // 新增人员完成步进器+1 @@ -172,7 +173,7 @@ public class RemoteSisAuthServiceImpl implements RemoteSisAuthService { voucherReq.setTxtData(e8ImgUrl); voucherReq.setCardType(34); Long voucherId = e8PlatformApi.issueVoucher(voucherReq); - Assert.notNull(voucherId, "e8平台发行凭证失败"); + Assert.notNull(voucherId, "e8平台发行凭证失败:" + person.getName() + "----" + person.getId()); log.info("e8平台发行凭证成功"); count++; // 发行凭证完成步进器+1 @@ -199,11 +200,12 @@ public class RemoteSisAuthServiceImpl implements RemoteSisAuthService { log.info("e8平台开始授权"); Boolean flag = e8PlatformApi.addCustomerAuth(authReq); - Assert.isTrue(flag, "E8平台授权失败!"); + Assert.isTrue(flag, "E8平台授权失败:" + person.getName() + "----" + person.getId()); log.info("E8平台授权完成!"); count++; // 授权完成步进器+1 } } catch (Exception e) { + log.info(e.getMessage()); return null; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java index 5a25d307..c21b2c31 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java @@ -18,6 +18,7 @@ import org.dromara.sis.api.domain.RemotePersonAuth; import org.dromara.sis.domain.bo.SisAccessControlBo; import org.dromara.sis.domain.bo.SisElevatorInfoBo; import org.dromara.sis.domain.bo.SisPersonLibImgBo; +import org.dromara.sis.domain.enums.RosterTypeEnum; import org.dromara.sis.domain.vo.SisAccessControlVo; import org.dromara.sis.domain.vo.SisElevatorInfoVo; import org.dromara.sis.domain.vo.SisPersonLibImgVo; @@ -115,30 +116,34 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { @Override @Transactional(rollbackFor = Exception.class) public Boolean insertByPerson(RemotePersonAuth bo) { - SisAuthRecord add = new SisAuthRecord(); - add.setTargetType(1L); - add.setTargetId(bo.getId()); - add.setGroupId(bo.getAuthGroupId()); - add.setBegDate(bo.getAuthBegDate()); - add.setEndDate(bo.getAuthEndDate()); - add.setTenantId("000000"); - boolean flag = baseMapper.insert(add) > 0; - Assert.isTrue(flag, "新增授权记录失败"); + // 黑名单不加授权记录 + if (!Objects.equals(bo.getRosterType(), RosterTypeEnum.BLACK_LIST.getCode())) { + SisAuthRecord add = new SisAuthRecord(); + add.setTargetType(1L); + add.setTargetId(bo.getId()); + add.setGroupId(bo.getAuthGroupId()); + add.setBegDate(bo.getAuthBegDate()); + add.setEndDate(bo.getAuthEndDate()); + add.setTenantId("000000"); + boolean flag = baseMapper.insert(add) > 0; + Assert.isTrue(flag, "新增授权记录失败"); + } try { // 记录图片md5值 byte[] imgByte = remoteFileService.downloadToByteArray(Long.parseLong(bo.getOssId())); String md5 = calculateMD5(imgByte); // 写入安防人像信息 - this.syncPersonImg(bo, md5); + Boolean sync = this.syncPersonImg(bo, md5); + Assert.isTrue(sync, "写入安防人像信息失败"); } catch (Exception e) { - log.info("下载图片失败"); + log.info(e.getMessage()); } - return flag; + return true; } - private void syncPersonImg(RemotePersonAuth bo, String md5) { + private Boolean syncPersonImg(RemotePersonAuth bo, String md5) { log.info("开始写入安防人像信息"); SisPersonLibImgBo personLibImg = new SisPersonLibImgBo(); personLibImg.setImgOssId(Long.parseLong(bo.getOssId())); @@ -149,8 +154,10 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { personLibImg.setCertificateNo(bo.getIdCardNumber()); personLibImg.setResidentPersonId(bo.getId()); personLibImg.setImgMd5Value(md5); - sisPersonLibImgService.insertByBo(personLibImg); - log.info("写入安防人像信息完成"); + personLibImg.setRosterType(bo.getRosterType()); + Boolean flag = sisPersonLibImgService.insertByBo(personLibImg); + if (flag) log.info("写入安防人像信息完成"); + return flag; } /** @@ -352,28 +359,26 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { public Boolean deleteByPersonIds(Collection ids, Collection e8Ids) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.in(SisAuthRecord::getTargetId, ids); - boolean flag = baseMapper.delete(lqw) > 0; - Assert.isTrue(flag, "删除授权记录失败"); + baseMapper.delete(lqw); - if (flag) { - List list = new ArrayList<>(); - ids.forEach(id -> { - SisPersonLibImgVo imgVo = sisPersonLibImgService.queryByPersonId(id); - if (imgVo != null) { - list.add(imgVo); - } - }); - Collection imgIds = list.stream().map(SisPersonLibImgVo::getId).toList(); - if (CollUtil.isNotEmpty(imgIds)){ - flag = sisPersonLibImgService.deleteWithValidByIds(imgIds, false); - Assert.isTrue(flag, "删除人像库图片失败"); - } - - if (CollUtil.isNotEmpty(e8Ids)){ - e8Ids.forEach(e8PlatformApi::deleteCustomer); + List list = new ArrayList<>(); + ids.forEach(id -> { + SisPersonLibImgVo imgVo = sisPersonLibImgService.queryByPersonId(id); + if (imgVo != null) { + list.add(imgVo); } + }); + Collection imgIds = list.stream().map(SisPersonLibImgVo::getId).toList(); + if (CollUtil.isNotEmpty(imgIds)) { + Boolean flag = sisPersonLibImgService.deleteWithValidByIds(imgIds, false); + Assert.isTrue(flag, "删除人像库图片失败"); } - return flag; + + if (CollUtil.isNotEmpty(e8Ids)) { + e8Ids.forEach(e8PlatformApi::deleteCustomer); + } + + return true; } /** @@ -382,7 +387,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { * @param groupIds 权限组IDs */ @Override - public Boolean queryByGroupIds(Collection groupIds){ + public Boolean queryByGroupIds(Collection groupIds) { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.in(SisAuthRecord::getGroupId, groupIds); List authVoList = baseMapper.selectVoList(lqw); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/ZeroSensationPassageServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/ZeroSensationPassageServiceImpl.java index 2f860a0a..e90ed521 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/ZeroSensationPassageServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/ZeroSensationPassageServiceImpl.java @@ -8,6 +8,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.property.api.RemoteFloorService; +import org.dromara.sis.domain.enums.RosterTypeEnum; import org.dromara.sis.domain.vo.*; import org.dromara.sis.producer.CleanLiftAuthRocketProducer; import org.dromara.sis.sdk.e8.E8PlatformApi; @@ -70,6 +71,12 @@ public class ZeroSensationPassageServiceImpl implements IZeroSensationPassageSer // 不是内部人员 产生紧急的告警信息 alarmEventsService.createAlarmRecord(deviceIp, 1, 1, "陌生人员入内", smallImg, bigImg); return; + }else { + if (Objects.equals(authRecord.getRosterType(), RosterTypeEnum.BLACK_LIST.getCode())) { + log.info("人员[{}]在黑名单中,暂不处理。", person); + alarmEventsService.createAlarmRecord(deviceIp, 3, 1, "黑名单人员入内", smallImg, bigImg); + return; + } } Date now = new Date(); diff --git a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml index eb980241..d1febb83 100644 --- a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml +++ b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml @@ -5,7 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"