From 81c95f124e00bf9497eff198ff7ab939f8ad3fcc Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Tue, 9 Sep 2025 20:56:04 +0800 Subject: [PATCH] 1 --- .../xcx/XServiceWorkOrdersTypeController.java | 11 ---- .../xcx/XTbVisitorManagementController.java | 27 ++------ .../ResidentPersonServiceImpl.java | 13 +++- .../sis/dubbo/RemoteVisitorServiceImpl.java | 20 +++--- .../job/snailjob/sis/SyncGrantAuthTask.java | 66 +++++++++---------- 5 files changed, 59 insertions(+), 78 deletions(-) diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/xcx/XServiceWorkOrdersTypeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/xcx/XServiceWorkOrdersTypeController.java index c4e5fdf2..ec198378 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/xcx/XServiceWorkOrdersTypeController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/xcx/XServiceWorkOrdersTypeController.java @@ -1,21 +1,10 @@ package org.dromara.property.controller.xcx; import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.excel.utils.ExcelUtil; -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.mybatis.core.page.PageQuery; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; -import org.dromara.property.domain.bo.ServiceWorkOrdersTypeBo; import org.dromara.property.domain.vo.ServiceWorkOrdersTypeVo; import org.dromara.property.service.IServiceWorkOrdersTypeService; import org.springframework.validation.annotation.Validated; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/xcx/XTbVisitorManagementController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/xcx/XTbVisitorManagementController.java index eb2171b2..1145aea1 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/xcx/XTbVisitorManagementController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/xcx/XTbVisitorManagementController.java @@ -1,39 +1,21 @@ package org.dromara.property.controller.xcx; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.dev33.satoken.stp.StpUtil; -import com.alibaba.fastjson.JSONObject; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; -import org.apache.dubbo.config.annotation.DubboReference; -import org.dromara.common.core.constant.GlobalConstants; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.excel.utils.ExcelUtil; 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.mybatis.core.page.PageQuery; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.web.core.BaseController; -import org.dromara.common.websocket.dto.WebSocketMessageDto; -import org.dromara.common.websocket.holder.WebSocketSessionHolder; -import org.dromara.common.websocket.utils.WebSocketUtils; -import org.dromara.property.domain.bo.QrCodeInfo; import org.dromara.property.domain.bo.TbVisitorManagementBo; import org.dromara.property.domain.vo.TbVisitorManagementVo; import org.dromara.property.service.ITbVisitorManagementService; -import org.dromara.system.api.RemoteConfigService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.time.Duration; import java.util.List; -import java.util.UUID; +import java.util.Map; /** * 访客管理 @@ -104,10 +86,11 @@ public class XTbVisitorManagementController extends BaseController { */ @GetMapping("/qrCode/{id}") @SaCheckPermission("xcx:visitorManagement:getQrCode") - public R getQrCode(@NotNull(message = "主键不能为空") + public R getQrCode(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) { - int code = Integer.parseInt(tbVisitorManagementService.getQrCodeByIdForXcx(id).get("code").toString()); - return code == 200 ? R.ok(tbVisitorManagementService.getQrCodeByIdForXcx(id).get("data").toString()) : R.fail(tbVisitorManagementService.getQrCodeByIdForXcx(id).get("data").toString()); + Map res = tbVisitorManagementService.getQrCodeByIdForXcx(id); + int code = Integer.parseInt(res.get("code").toString()); + return code == 200 ? R.ok(res.get("data")) : R.fail(res.get("data")); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/residentImpl/ResidentPersonServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/residentImpl/ResidentPersonServiceImpl.java index ae94b7a7..52030952 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/residentImpl/ResidentPersonServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/residentImpl/ResidentPersonServiceImpl.java @@ -176,8 +176,13 @@ public class ResidentPersonServiceImpl implements IResidentPersonService { ResidentPerson update = MapstructUtils.convert(bo, ResidentPerson.class); assert update != null; - // 人脸照片存在时,才同步修改授权 - if (update.getAuthGroupId() != null && update.getAuthEndDate() != null && update.getImg() != null) { + // 定义触发条件 + boolean shouldUpdateAuth = (update.getAuthGroupId() != null && + update.getAuthEndDate() != null && + update.getImg() != null) || + update.getState() != 1; + + if (shouldUpdateAuth) { ResidentPersonVo vo = queryById(update.getId()); Long e8Id = vo.getEEightId(); @@ -267,7 +272,7 @@ public class ResidentPersonServiceImpl implements IResidentPersonService { } /** - * 查询已上传图片,未授权人员 + * 查询已上传图片,未授权人员(账号启用,且审核通过) * * @return List */ @@ -276,6 +281,8 @@ public class ResidentPersonServiceImpl implements IResidentPersonService { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.isNotNull(ResidentPerson::getImg) .ne(ResidentPerson::getImg, "") + .eq(ResidentPerson::getState, 1) + .eq(ResidentPerson::getIsAudit, 1) .isNull(ResidentPerson::getEEightId); return baseMapper.selectVoList(lqw); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteVisitorServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteVisitorServiceImpl.java index b4807150..7903b218 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteVisitorServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteVisitorServiceImpl.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.common.core.utils.StringUtils; import org.dromara.resource.api.RemoteFileService; import org.dromara.sis.api.RemoteVisitorService; import org.dromara.sis.api.domain.RemoteVisitor; @@ -15,7 +16,6 @@ import org.dromara.sis.sdk.e8.domain.visitors.req.VisitorAddReq; import org.dromara.sis.sdk.e8.domain.visitors.res.VisitorAddRes; import org.dromara.sis.sdk.e8.utils.ImageUtil; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -44,14 +44,16 @@ public class RemoteVisitorServiceImpl implements RemoteVisitorService { @Override public Map syncE8PlatVisitor(RemoteVisitor visitor) { try { - byte[] imgByte = fileService.downloadToByteArray(Long.parseLong(visitor.getVisitorFaceImg())); - Assert.notNull(imgByte, "下载访客照片失败"); + String imgUrl = null; + if (StringUtils.isNotBlank(visitor.getVisitorFaceImg())) { + byte[] imgByte = fileService.downloadToByteArray(Long.parseLong(visitor.getVisitorFaceImg())); + Assert.notNull(imgByte, "下载访客照片失败"); - byte[] zipByte = imageUtil.compressImageToRequirements(imgByte); - - String imgUrl = e8PlatformApi.uploadFace(zipByte); - Assert.notNull(imgUrl, "e8平台上传访客照片失败"); + byte[] zipByte = imageUtil.compressImageToRequirements(imgByte); + imgUrl = e8PlatformApi.uploadFace(zipByte); + Assert.notNull(imgUrl, "e8平台上传访客照片失败"); + } VisitorAddReq req = new VisitorAddReq(); req.setVisitorName(visitor.getVisitorName()); req.setMobilePhone(visitor.getMobilePhone()); @@ -68,7 +70,7 @@ public class RemoteVisitorServiceImpl implements RemoteVisitorService { : Map.of("code", 500, "data", res.getMessage()); } catch (Exception e) { log.info(e.getMessage()); - return Map.of("code", 500, "data", "e8平台新增访客登记出错"); + return Map.of("code", 500, "data", e.getMessage()); } } @@ -90,7 +92,7 @@ public class RemoteVisitorServiceImpl implements RemoteVisitorService { } catch (Exception e) { log.info(e.getMessage()); - return Map.of("code", 500, "data", "e8平台获取访客二维码出错"); + return Map.of("code", 500, "data", e.getMessage()); } } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/sis/SyncGrantAuthTask.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/sis/SyncGrantAuthTask.java index 3a014bee..e6215acb 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/sis/SyncGrantAuthTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/sis/SyncGrantAuthTask.java @@ -48,7 +48,6 @@ public class SyncGrantAuthTask { // 需要先设置模拟上下文 SaTokenContextMockUtil.setMockContext(() -> { // 模拟登录 - StpUtil.login(1); unAuthPersonRef.set(remoteResidentPersonService.queryUnAuthPerson()); List unAuthPerson = unAuthPersonRef.get(); @@ -89,38 +88,39 @@ public class SyncGrantAuthTask { continue; } -// // 计算图片MD5 -// String nowMd5 = calculateMD5(imgByte); -// // 通过MD5查询相同图片 -// Long remoteId = remoteSisAuthService.queryHuaweiBoxIdByImgMd5(nowMd5); -// -// Long huaweiId; -// if (remoteId == null) { -// // 当前本地人像信息不存在相同照片,直接上传华为盒子 -// huaweiId = syncHuaweiBox(person, imgByte); -// } else { -// huaweiId = remoteId; -// } -// -// if (huaweiId == null) { -// log.info("华为盒子人像上传失败:{}-----{}", person.getName(), person.getId()); -// remoteSisAuthService.deletePersonAuth(List.of(person.getId()), new ArrayList<>()); -// continue; -// } -// -// Boolean update = false; -// try { -// update = remoteSisAuthService.updateImgByPersonId(person.getId(), huaweiId, nowMd5); -// } catch (Exception e) { -// remoteSisAuthService.deletePersonAuth(List.of(person.getId()), new ArrayList<>()); -// continue; -// } -// -// if (!update) { -// log.info("更新人像信息失败:{}-----{}", person.getName(), person.getId()); -// remoteSisAuthService.deletePersonAuth(List.of(person.getId()), new ArrayList<>()); -// continue; -// } + // 计算图片MD5 + String nowMd5 = calculateMD5(imgByte); + // 通过MD5查询相同图片 + Long remoteId = remoteSisAuthService.queryHuaweiBoxIdByImgMd5(nowMd5); + + Long huaweiId; + if (remoteId == null) { + // 当前本地人像信息不存在相同照片,直接上传华为盒子 + huaweiId = syncHuaweiBox(person, imgByte); + } else { + huaweiId = remoteId; + } + + if (huaweiId == null) { + log.info("华为盒子人像上传失败:{}-----{}", person.getName(), person.getId()); + remoteSisAuthService.deletePersonAuth(List.of(person.getId()), new ArrayList<>()); + continue; + } + + Boolean update; + try { + update = remoteSisAuthService.updateImgByPersonId(person.getId(), huaweiId, nowMd5); + } catch (Exception e) { + log.info("更新人像信息出错:{}-----{}", person.getName(), person.getId()); + remoteSisAuthService.deletePersonAuth(List.of(person.getId()), new ArrayList<>()); + continue; + } + + if (!update) { + log.info("更新人像信息失败:{}-----{}", person.getName(), person.getId()); + remoteSisAuthService.deletePersonAuth(List.of(person.getId()), new ArrayList<>()); + continue; + } // 黑名单不授权到E8 if (!Objects.equals(person.getRosterType(), RosterTypeEnum.BLACK_LIST.getCode())) {