优化部门级联和默认 #I5R3QL

This commit is contained in:
zhangml 2022-09-16 10:15:31 +08:00
parent 66b1158d6e
commit 2db501d36d
3 changed files with 29 additions and 0 deletions

View File

@ -126,6 +126,12 @@ const { optionsData } = useDictOptions<{
}
})
watch(optionsData, (arr) => {
if (arr.dept) {
formData.pid = arr.dept[0].id
}
})
const handleSubmit = async () => {
await formRef.value?.validate()
mode.value == 'edit' ? await deptEdit(formData) : await deptAdd(formData)

View File

@ -14,6 +14,7 @@ import com.mdd.common.utils.ArrayUtil;
import com.mdd.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
@ -162,6 +163,7 @@ class SystemAuthDeptServiceImpl implements ISystemAuthDeptService {
* @author fzr
* @param systemAuthDeptParam 参数
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void edit(SystemAuthDeptParam systemAuthDeptParam) {
SystemAuthDept model = systemAuthDeptMapper.selectOne(
@ -185,6 +187,8 @@ class SystemAuthDeptServiceImpl implements ISystemAuthDeptService {
model.setIsStop(systemAuthDeptParam.getIsStop());
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemAuthDeptMapper.updateById(model);
//级联更新自己状态
systemAuthDeptMapper.updateChilder(systemAuthDeptParam.getIsStop(),model.getId());
}
/**

View File

@ -3,10 +3,29 @@ package com.mdd.common.mapper.system;
import com.mdd.common.core.basics.IBaseMapper;
import com.mdd.common.entity.system.SystemAuthDept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
/**
* 系统岗位Mapper
*/
@Mapper
public interface SystemAuthDeptMapper extends IBaseMapper<SystemAuthDept> {
/**
* 级联更新部门状态
* @param stopStatus
* @param id
* @return
*/
@Update(value = "WITH recursive temp AS (SELECT id, pid\n"
+ " FROM la_system_auth_dept\n"
+ " WHERE id = #{id}\n" + " UNION ALL\n"
+ " SELECT u.id, u.pid\n"
+ " FROM la_system_auth_dept u,\n"
+ " temp t\n"
+ " WHERE u.pid = t.id and u.is_stop <> #{stopStatus})\n"
+ "update la_system_auth_dept set is_stop = #{stopStatus}\n"
+ "where id in (select id from temp)")
void updateChilder(@Param("stopStatus") int stopStatus, @Param("id") Integer id);
}