diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/org/OrgController.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/org/OrgController.java index f53ce4f..76ed83a 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/org/OrgController.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/org/OrgController.java @@ -81,6 +81,13 @@ public class OrgController { return success(BeanUtils.toBean(pageResult, OrgRespVO.class)); } + @GetMapping("/parent-org-list") + @Operation(summary = "获得上级机构列表") + public CommonResult> getParentOrgList() { + List list = orgService.getParentOrgList(); + return success(BeanUtils.toBean(list, OrgRespVO.class)); + } + @GetMapping("/export-excel") @Operation(summary = "导出机构 Excel") @ApiAccessLog(operateType = EXPORT) diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/org/vo/OrgSaveReqVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/org/vo/OrgSaveReqVO.java index 146e8c3..143107f 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/org/vo/OrgSaveReqVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/org/vo/OrgSaveReqVO.java @@ -12,8 +12,7 @@ public class OrgSaveReqVO { @Schema(description = "主键ID,自增", requiredMode = Schema.RequiredMode.REQUIRED, example = "27344") private Integer id; - @Schema(description = "机构ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31188") - @NotNull(message = "机构ID不能为空") + @Schema(description = "机构ID,系统自动生成", example = "31188") private Integer orgId; @Schema(description = "机构名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/org/OrgMapper.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/org/OrgMapper.java index b6f719f..6238501 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/org/OrgMapper.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/org/OrgMapper.java @@ -27,7 +27,27 @@ public interface OrgMapper extends BaseMapperX { .eqIfPresent(OrgDO::getParentOrgId, reqVO.getParentOrgId()) .likeIfPresent(OrgDO::getParentOrgName, reqVO.getParentOrgName()) .eqIfPresent(OrgDO::getIsParent, reqVO.getIsParent()) - .betweenIfPresent(OrgDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(OrgDO::getId)); + } + + /** + * 根据机构ID查询机构 + * + * @param orgId 机构ID + * @return 机构 + */ + default OrgDO selectByOrgId(Integer orgId) { + return selectOne(OrgDO::getOrgId, orgId); + } + + /** + * 查询上级机构列表(isParent = 1) + * + * @return 上级机构列表 + */ + default List selectParentOrgList() { + return selectList(new LambdaQueryWrapperX() + .eq(OrgDO::getIsParent, 1) .orderByDesc(OrgDO::getId)); } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/org/OrgService.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/org/OrgService.java index f0419e3..a2eb21b 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/org/OrgService.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/org/OrgService.java @@ -59,4 +59,11 @@ public interface OrgService { */ PageResult getOrgPage(OrgPageReqVO pageReqVO); + /** + * 获得上级机构列表 + * + * @return 上级机构列表 + */ + List getParentOrgList(); + } \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/org/OrgServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/org/OrgServiceImpl.java index 2064676..282777e 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/org/OrgServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/org/OrgServiceImpl.java @@ -33,7 +33,19 @@ public class OrgServiceImpl implements OrgService { private OrgMapper orgMapper; @Override + @Transactional(rollbackFor = Exception.class) public Integer createOrg(OrgSaveReqVO createReqVO) { + // 生成机构ID(使用当前时间戳) + Integer orgId = generateOrgId(); + + // 检查机构ID是否已存在,如果存在则重新生成 + while (orgMapper.selectByOrgId(orgId) != null) { + orgId = generateOrgId(); + } + + // 设置生成的机构ID + createReqVO.setOrgId(orgId); + // 插入 OrgDO org = BeanUtils.toBean(createReqVO, OrgDO.class); orgMapper.insert(org); @@ -41,6 +53,15 @@ public class OrgServiceImpl implements OrgService { return org.getId(); } + /** + * 生成机构ID(使用当前时间戳) + * + * @return 机构ID + */ + private Integer generateOrgId() { + return (int) System.currentTimeMillis(); + } + @Override public void updateOrg(OrgSaveReqVO updateReqVO) { // 校验存在 @@ -69,13 +90,11 @@ public class OrgServiceImpl implements OrgService { private void validateOrgExists(List ids) { List list = orgMapper.selectByIds(ids); if (CollUtil.isEmpty(list) || list.size() != ids.size()) { - throw exception(ORG_NOT_EXISTS); } } private void validateOrgExists(Integer id) { if (orgMapper.selectById(id) == null) { - throw exception(ORG_NOT_EXISTS); } } @@ -89,4 +108,9 @@ public class OrgServiceImpl implements OrgService { return orgMapper.selectPage(pageReqVO); } + @Override + public List getParentOrgList() { + return orgMapper.selectParentOrgList(); + } + } \ No newline at end of file diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 37b783d..45ae1c8 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -280,6 +280,8 @@ yudao: - /admin-api/system/user/profile/** - /admin-api/system/auth/** ignore-tables: + - tb_org #忽略机构表 + - patientinfo #忽略人员基础信息表 ignore-caches: - user_role_ids - permission_menu_ids