1、新增组织修改状态接口;2、禅道bug#1506修复;

This commit is contained in:
gaoqr
2026-06-12 13:52:13 +08:00
parent c7a15b7cf0
commit a0f1239a9e
4 changed files with 63 additions and 6 deletions
@@ -104,6 +104,14 @@ public class OrganController {
return success(true);
}
@PostMapping("/status")
@Operation(summary = "更新组织状态")
@PreAuthorize("@ss.hasPermission('organizationLIst:update')")
public CommonResult<Boolean> updateOrganStatus(@Valid @RequestBody OrganUpdateStatusReqVO updateReqVO) {
organService.updateOrganStatus(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除组织")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@@ -0,0 +1,21 @@
package com.cf.imes.module.system.controller.admin.organ.vo.organ;
import com.cf.imes.module.system.validation.common.CommonStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Schema(description = "管理后台 - 组织更新状态 Request VO")
@Data
public class OrganUpdateStatusReqVO {
@Schema(description = "组织编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "组织编号不能为空")
private Long id;
@Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "状态不能为空")
@CommonStatus
private Integer status;
}
@@ -7,6 +7,7 @@ import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganPageReqVO;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganRespVO;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSaveReqVO;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSimpleRespVO;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganUpdateStatusReqVO;
import com.cf.imes.module.system.controller.admin.statistics.vo.ManageOrgTotalStatisticRespVO;
import com.cf.imes.module.system.controller.admin.statistics.vo.OrgStatusGroupStatisticsReqVO;
import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO;
@@ -41,6 +42,13 @@ public interface OrganService {
*/
void updateOrgan(@Valid OrganSaveReqVO updateReqVO);
/**
* 更新组织状态
*
* @param updateReqVO
*/
void updateOrganStatus(@Valid OrganUpdateStatusReqVO updateReqVO);
/**
* 更新组织的角色菜单
*
@@ -6,6 +6,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
@@ -33,6 +34,7 @@ import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganPageReqVO;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganRespVO;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSaveReqVO;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSimpleRespVO;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganUpdateStatusReqVO;
import com.cf.imes.module.system.controller.admin.statistics.vo.ManageOrgTotalStatisticRespVO;
import com.cf.imes.module.system.controller.admin.statistics.vo.OrgStatusGroupStatisticsReqVO;
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ProcessSchemeConfig;
@@ -228,16 +230,13 @@ public class OrganServiceImpl implements OrganService {
organMapper.insert(tenant);
Long organId = tenant.getId();
if (!tenant.getLarge()) {
tenant.setDbNo(organId.intValue() % 8);
}
tenant.setTableNo(organId.intValue() % 256);
organMapper.updateById(tenant);
// 创建组织的管理员
// 1、创建用户,并分配角色
Long userId = createUser(InternalRoleConstants.ORGAN_ADMIN_ROLE_ID, createReqVO, organId);
// 2、修改组织的管理员
organMapper.updateById(new OrganizationDO().setId(tenant.getId()).setContactUserId(userId));
organMapper.update(new LambdaUpdateWrapper<OrganizationDO>()
.eq(OrganizationDO::getId, organId)
.set(OrganizationDO::getContactUserId, userId));
// 复制系统配置里的相关配置
copySystemConfig(organId);
@@ -324,6 +323,27 @@ public class OrganServiceImpl implements OrganService {
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateOrganStatus(OrganUpdateStatusReqVO updateReqVO) {
Long organId = updateReqVO.getId();
Integer status = updateReqVO.getStatus();
// 校验存在
OrganizationDO tenant = validateUpdateTenant(organId);
// 不允许禁用自身组织
checkCfOrgWhenOperate(organId);
// 更新状态
OrganizationDO updateObj = new OrganizationDO();
updateObj.setId(organId);
updateObj.setStatus(status);
organMapper.updateById(updateObj);
if (CommonStatusEnum.DISABLE.getStatus().equals(status)) {
// 移除机构下用户的token
scanAndCompareDeptAndDelToken(String.format(OAUTH2_ACCESS_TOKEN, "*"), organId);
}
}
private void validTenantNameDuplicate(String name, Long id) {
OrganizationDO tenant = organMapper.selectByName(name);
if (tenant == null) {