From 2e761d18678c74ec2ee385962f72d214fec66c26 Mon Sep 17 00:00:00 2001 From: maimaishu <14610861+maimaishu@user.noreply.gitee.com> Date: Fri, 2 Jan 2026 17:27:53 +0800 Subject: [PATCH] =?UTF-8?q?[+]=E5=A2=9E=E5=8A=A0=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E6=8E=A8=E5=8A=A8=E6=B6=88=E6=81=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zt/plat/module/system/api/esp/EspApi.java | 80 ++----------------- .../module/system/api/dept/PostApiImpl.java | 1 - .../module/system/api/esp/EspApiImpl.java | 25 ++++++ .../vo/depexternalcode/EspSaveRespVo.java | 3 + .../dal/dataobject/dept/DeptPushMsgDO.java | 5 ++ .../system/dal/mysql/dept/EspMapper.java | 10 ++- .../system/service/dept/EspServiceImpl.java | 71 +++------------- .../system/service/dept/IEspService.java | 32 ++------ 8 files changed, 62 insertions(+), 165 deletions(-) create mode 100644 zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/esp/EspApiImpl.java diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/esp/EspApi.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/esp/EspApi.java index a7c338a5..54e560a9 100644 --- a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/esp/EspApi.java +++ b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/esp/EspApi.java @@ -1,18 +1,15 @@ package com.zt.plat.module.system.api.esp; import com.zt.plat.framework.common.pojo.CommonResult; -import com.zt.plat.framework.common.util.collection.CollectionUtils; import com.zt.plat.module.system.api.dept.dto.*; +import com.zt.plat.module.system.api.esp.dto.EspDto; import com.zt.plat.module.system.enums.ApiConstants; import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; -import java.util.Collection; + import java.util.List; -import java.util.Map; -import java.util.Set; @FeignClient(name = ApiConstants.NAME) @Tag(name = "RPC 服务 - 部门") @@ -20,75 +17,8 @@ public interface EspApi { String PREFIX = ApiConstants.PREFIX + "/dept"; - // === 以下为补全的接口方法 === - @PostMapping(PREFIX + "/create") - @Operation(summary = "新增部门") - CommonResult createDept(@RequestBody DeptSaveReqDTO createReqVO); - - @PutMapping(PREFIX + "/update") - @Operation(summary = "修改部门") - CommonResult updateDept(@RequestBody DeptSaveReqDTO updateReqVO); - - @DeleteMapping(PREFIX + "/delete") - @Operation(summary = "删除部门") - CommonResult deleteDept(@RequestParam("id") Long id); - - @PostMapping(PREFIX + "/list-all") - @Operation(summary = "获得部门列表") - CommonResult> getDeptList(@RequestBody DeptListReqDTO reqVO); - - @GetMapping(PREFIX + "/simple-list") - @Operation(summary = "获得部门精简信息列表") - CommonResult> getSimpleDeptList(); - - @GetMapping(PREFIX + "/simple-company-list") - @Operation(summary = "获得公司精简信息列表") - CommonResult> getSimpleCompanyList(); - - @GetMapping(PREFIX + "/all-company-list") - @Operation(summary = "获得所有公司精简信息列表") - CommonResult> getAllCompanyList(); - - @GetMapping(PREFIX + "/get") - @Operation(summary = "获得部门信息") - @Parameter(name = "id", description = "部门编号", example = "1024", required = true) - CommonResult getDept(@RequestParam("id") Long id); - - @GetMapping(PREFIX + "/list") - @Operation(summary = "获得部门信息数组") - @Parameter(name = "ids", description = "部门编号数组", example = "1,2", required = true) - CommonResult> getDeptList(@RequestParam("ids") Collection ids); - - @GetMapping(PREFIX + "/valid") - @Operation(summary = "校验部门是否合法") - @Parameter(name = "ids", description = "部门编号数组", example = "1,2", required = true) - CommonResult validateDeptList(@RequestParam("ids") Collection ids); - - /** - * 获得指定编号的部门 Map - * - * @param ids 部门编号数组 - * @return 部门 Map - */ - default Map getDeptMap(Collection ids) { - List list = getDeptList(ids).getCheckedData(); - return CollectionUtils.convertMap(list, DeptRespDTO::getId); - } - - @GetMapping(PREFIX + "/list-child") - @Operation(summary = "获得指定部门的所有子部门") - @Parameter(name = "id", description = "部门编号", example = "1024", required = true) - CommonResult> getChildDeptList(@RequestParam("id") Long id); - - @GetMapping(PREFIX + "/company-dept-info") - @Operation(summary = "获得指定用户的公司部门信息") - @Parameter(name = "userId", description = "用户编号", example = "1", required = true) - CommonResult> getCompanyDeptInfoListByUserId(@RequestParam("userId") Long userId); - - // ========== 数据同步专用接口 ========== - - @PostMapping(PREFIX + "/sync") - @Operation(summary = "同步部门") - CommonResult syncDept(@RequestBody DeptSaveReqDTO syncReqDTO); + @PostMapping(PREFIX + "/pushMsg") + @Operation(summary = "推送消息") + CommonResult> pushMsg(@RequestBody DeptSaveReqDTO syncReqDTO); } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/dept/PostApiImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/dept/PostApiImpl.java index bb760ec4..80eedad0 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/dept/PostApiImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/dept/PostApiImpl.java @@ -13,7 +13,6 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; - import java.util.Collection; import java.util.Collections; import java.util.Comparator; diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/esp/EspApiImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/esp/EspApiImpl.java new file mode 100644 index 00000000..5cf33fa5 --- /dev/null +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/esp/EspApiImpl.java @@ -0,0 +1,25 @@ +package com.zt.plat.module.system.api.esp; + +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.module.system.api.dept.dto.DeptSaveReqDTO; +import com.zt.plat.module.system.api.esp.dto.EspDto; +import com.zt.plat.module.system.service.dept.IEspService; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; + +@RestController +@Validated +public class EspApiImpl implements EspApi { + + + @Resource + private IEspService deptService; + @Override + public CommonResult> pushMsg(DeptSaveReqDTO syncReqDTO) + { + return CommonResult.success(deptService.pushMsg(syncReqDTO)); + } + +} diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/dept/vo/depexternalcode/EspSaveRespVo.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/dept/vo/depexternalcode/EspSaveRespVo.java index 859ba772..10ab6aa4 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/dept/vo/depexternalcode/EspSaveRespVo.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/dept/vo/depexternalcode/EspSaveRespVo.java @@ -25,4 +25,7 @@ public class EspSaveRespVo extends DeptExternalCodeBaseVO { @Schema(description = "最后更新时间") private LocalDateTime updateTime; + @Schema(description = "是否发送消息") + private Integer isSendMsg; + } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/dataobject/dept/DeptPushMsgDO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/dataobject/dept/DeptPushMsgDO.java index 237c28bc..2f209c71 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/dataobject/dept/DeptPushMsgDO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/dataobject/dept/DeptPushMsgDO.java @@ -55,4 +55,9 @@ public class DeptPushMsgDO extends TenantBaseDO { */ private String remark; + /** + * 是否发送消息 + */ + private Integer isSendMsg; + } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/mysql/dept/EspMapper.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/mysql/dept/EspMapper.java index 7f4cc147..804f9362 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/mysql/dept/EspMapper.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/mysql/dept/EspMapper.java @@ -3,10 +3,12 @@ package com.zt.plat.module.system.dal.mysql.dept; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.system.api.dept.dto.DeptSaveReqDTO; import com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode.EspPageReqVO; -import com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode.EspSaveRespVo; import com.zt.plat.module.system.dal.dataobject.dept.DeptPushMsgDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; /** * 部门推送消息接口Mapper @@ -54,4 +56,10 @@ public interface EspMapper extends BaseMapperX { return selectList(DeptPushMsgDO::getSystemCode, systemCode); } + @Select("SELECT ID,DEPT_ID, SYSTEM_CODE,EXTERNAL_DEPT_CODE,EXTERNAL_DEPT_NAME,STATUS,REMARK,TENANT_ID,CREATOR,CREATE_TIME,UPDATER,UPDATE_TIME\n" + + "FROM \n" + + "\t\tSYSTEM_DEPT_PUSH_MSG\n" + + "WHERE\n" + + " IS_SEND_MSG = '0' AND DELETED = '0' ") + List selectpushMsg(@Param("syncReqDTO") DeptSaveReqDTO syncReqDTO); } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/EspServiceImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/EspServiceImpl.java index bd746bfb..17a19662 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/EspServiceImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/EspServiceImpl.java @@ -4,6 +4,8 @@ import cn.hutool.core.util.StrUtil; import com.zt.plat.framework.common.enums.CommonStatusEnum; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.system.api.dept.dto.DeptSaveReqDTO; +import com.zt.plat.module.system.api.esp.dto.EspDto; import com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode.EspPageReqVO; import com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode.EspSaveRespVo; import com.zt.plat.module.system.dal.dataobject.dept.DeptDO; @@ -12,6 +14,8 @@ import com.zt.plat.module.system.dal.mysql.dept.DeptMapper; import com.zt.plat.module.system.dal.mysql.dept.EspMapper; import com.zt.plat.module.system.dal.redis.RedisKeyConstants; import jakarta.annotation.Resource; +import org.apache.commons.collections.CollectionUtils; +import org.apache.seata.common.result.Result; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -51,6 +55,7 @@ public class EspServiceImpl implements IEspService { if (entity.getStatus() == null) { entity.setStatus(CommonStatusEnum.ENABLE.getStatus()); } + entity.setIsSendMsg(0); espMapper.insert(entity); return entity.getId(); } @@ -68,6 +73,7 @@ public class EspServiceImpl implements IEspService { if (updateObj.getStatus() == null) { updateObj.setStatus(exists.getStatus() == null ? CommonStatusEnum.ENABLE.getStatus() : exists.getStatus()); } + updateObj.setIsSendMsg(updateReqVO.getIsSendMsg()); espMapper.updateById(updateObj); evictCacheSafely(exists.getDeptId()); evictCacheSafely(updateObj.getDeptId()); @@ -97,68 +103,11 @@ public class EspServiceImpl implements IEspService { return espMapper.selectListByDeptId(deptId); } -/* @Override - public DeptExternalCodeDO getBySystemCodeAndExternalCode(String systemCode, String externalDeptCode) { - if (StrUtil.hasEmpty(systemCode, externalDeptCode)) { - return null; - } - return espMapper.selectBySystemCodeAndExternalCode(systemCode.trim(), externalDeptCode.trim()); - }*/ + @Override + public List pushMsg(DeptSaveReqDTO syncReqDTO) { -/* @Override - public DeptExternalCodeDO getBySystemCodeAndDeptId(String systemCode, Long deptId) { - if (StrUtil.isBlank(systemCode) || deptId == null) { - return null; - } - return espMapper.selectBySystemCodeAndDeptId(systemCode.trim(), deptId); - }*/ - -/* @Override - public Long getDeptPushMsgDetails(Long deptId, String systemCode, String externalDeptCode, - String externalDeptName, Integer status) { - - if (StrUtil.hasEmpty(systemCode, externalDeptCode) || deptId == null) { - return null; - } - String normalizedSystemCode = systemCode.trim(); - String normalizedExternalCode = externalDeptCode.trim(); - String normalizedExternalName = StrUtil.blankToDefault(StrUtil.trimToNull(externalDeptName), null); - - disableActiveMappingIfConflict(deptId, normalizedSystemCode, normalizedExternalCode); - - // 如果存在则更新,否则创建 - DeptExternalCodeDO exists = espMapper.selectBySystemCodeAndDeptId(normalizedSystemCode, deptId); - if (exists != null) { - DeptExternalCodeSaveReqVO updateReqVO = new DeptExternalCodeSaveReqVO(); - updateReqVO.setId(exists.getId()); - updateReqVO.setDeptId(deptId); - updateReqVO.setSystemCode(normalizedSystemCode); - updateReqVO.setExternalDeptCode(normalizedExternalCode); - updateReqVO.setExternalDeptName(normalizedExternalName); - updateReqVO.setStatus(status == null ? exists.getStatus() : status); - - //TODO - //getDeptPushMsgDetails(updateReqVO); - return exists.getId(); - } - - DeptExternalCodeSaveReqVO createReqVO = new DeptExternalCodeSaveReqVO(); - createReqVO.setDeptId(deptId); - createReqVO.setSystemCode(normalizedSystemCode); - createReqVO.setExternalDeptCode(normalizedExternalCode); - createReqVO.setExternalDeptName(normalizedExternalName); - createReqVO.setStatus(status == null ? CommonStatusEnum.ENABLE.getStatus() : status); - return getDeptPushMsgDetails(createReqVO); - }*/ - -/* @Override - public void deleteDeptExternalCodesByDeptId(Long deptId) { - if (deptId == null) { - return; - } - espMapper.deleteByDeptId(deptId); - evictCacheSafely(deptId); - }*/ + return BeanUtils.toBean(espMapper.selectpushMsg(syncReqDTO), EspDto.class); + } private DeptPushMsgDO validateExists(Long id) { if (id == null) { diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/IEspService.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/IEspService.java index 97c83454..7678def2 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/IEspService.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/IEspService.java @@ -1,10 +1,11 @@ package com.zt.plat.module.system.service.dept; import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.system.api.dept.dto.DeptSaveReqDTO; +import com.zt.plat.module.system.api.esp.dto.EspDto; import com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode.EspPageReqVO; import com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode.EspSaveRespVo; import com.zt.plat.module.system.dal.dataobject.dept.DeptPushMsgDO; - import java.util.List; /** @@ -27,7 +28,6 @@ public interface IEspService { /** * 删除映射关系 - * * @param id 记录编号 */ void deleteDeptPushMsg(Long id); @@ -47,33 +47,11 @@ public interface IEspService { */ List getPushMsgByDeptId(Long deptId); - /** - * 根据部门与外部系统保存/更新映射(存在则更新,不存在则创建) - * @param deptId 本系统部门 ID - * @param systemCode 外部系统标识 - * @param externalDeptCode 外部系统组织编码 - * @param externalDeptName 外部系统组织名称(可选) - * @param status 状态,默认启用 - * @return 映射记录 ID - */ - /* Long getDeptPushMsgDetails(Long deptId, String systemCode, String externalDeptCode, String externalDeptName, - Integer status);*/ /** - * 根据部门删除全部外部编码映射 - * - * @param deptId 部门编号 + * 推送部门数据到外部系统 + * @param syncReqDTO 同步请求 */ - //void deleteDeptExternalCodesByDeptId(Long deptId); - - /** - * 根据外部系统与外部组织编码查询映射 - */ - //DeptExternalCodeDO getBySystemCodeAndExternalCode(String systemCode, String externalDeptCode); - - /** - * 根据外部系统与部门编号查询映射 - */ - //DeptExternalCodeDO getBySystemCodeAndDeptId(String systemCode, Long deptId); + List pushMsg(DeptSaveReqDTO syncReqDTO); }