系统管理SQL 修改

This commit is contained in:
cwchen 2025-08-22 15:04:56 +08:00
parent 6b45e59373
commit 11712ec7e3
5 changed files with 62 additions and 6 deletions

View File

@ -18,7 +18,7 @@ public interface CompanyDao {
@Select("SELECT \"id\",\"name\" AS companyName FROM \"ynrealname\".\"pm_company\" where \"name\" = #{companyName} and \"is_active\" = '1'")
CompanyBean getCompanyByName(String companyName);
@SelectKey(statement = "SELECT IDENTITY()", keyProperty = "id", before = false, resultType = Long.class)
@SelectKey(statement = "SELECT @@IDENTITY", keyProperty = "id", before = false, resultType = Long.class)
@Insert("INSERT INTO \"ynrealname\".\"pm_company\"(\"name\", \"type_id\", \"address\", \"register_date\", \"legal_person\", \"legal_phone\", \"legal_idnumber\", \"is_active\") VALUES (#{companyName}, #{unitType}, #{address}, #{registerDate}, #{represent}, #{representPhone}, #{representIdNumber}, '1')")
int saveCompany(CompanyBean o);

View File

@ -2,6 +2,8 @@ package com.bonus.bmw.basic.dao;
import com.bonus.system.api.model.Permission;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.mapping.StatementType;
import java.util.List;
import java.util.Set;
@ -63,6 +65,18 @@ public interface PermissionDao {
@Select("select p.* from \"ynrealname\".\"sys_permission\" p inner join \"ynrealname\".\"sys_role_permission\" rp on p.\"id\" = rp.\"permissionId\" where rp.\"roleId\" = #{appRoleId} and p.\"is_active\" = '1' and rp.\"is_active\" = 1 AND p.\"permission_type\"='APP' order by p.\"sort\"")
List<Permission> listByBackApp(Long appRoleId);
@Select("select getPermissionChildList(#{id})")
@Select("WITH RECURSIVE permission_tree(id, path) AS (\n" +
" SELECT \"id\", TO_CHAR(\"id\") AS path\n" +
" FROM \"ynrealname\".\"sys_permission\"\n" +
" WHERE \"id\" = #{id}\n" +
" \n" +
" UNION ALL\n" +
" \n" +
" SELECT p.\"id\", t.path || ',' || TO_CHAR(p.\"id\")\n" +
" FROM \"ynrealname\".\"sys_permission\" p\n" +
" INNER JOIN permission_tree t ON p.\"parentId\" = t.id\n" +
")\n" +
"SELECT LISTAGG(id,',') AS result\n" +
"FROM permission_tree;")
String getChildString(Long id);
}

View File

@ -9,7 +9,7 @@ import java.util.Map;
@Mapper
public interface RoleDao {
@SelectKey(statement = "SELECT IDENTITY()", keyProperty = "id", before = false, resultType = Long.class)
@SelectKey(statement = "SELECT @@IDENTITY", keyProperty = "id", before = false, resultType = Long.class)
@Insert("insert into \"ynrealname\".\"sys_role\"(\"name\", \"company_id\", \"description\", \"type\", \"level\", \"status\") values(#{name}, #{companyId}, #{description}, #{type}, #{level}, #{status})")
int save(Role role);

View File

@ -16,7 +16,7 @@ public interface SubCompanyDao {
@Select("SELECT \"id\",\"name\" AS subCompanyName FROM \"ynrealname\".\"pm_dept\" where \"name\" = #{companyName} and \"is_active\" = '1'")
SubCompanyBean getCompanyByName(String companyName);
@SelectKey(statement = "SELECT IDENTITY()", keyProperty = "id", before = false, resultType = Long.class)
@SelectKey(statement = "SELECT @@IDENTITY", keyProperty = "id", before = false, resultType = Long.class)
@Insert("INSERT INTO \"ynrealname\".\"pm_dept\"(\"name\", \"abbreviation\", \"company_id\", \"status\", \"is_active\") VALUES (#{subCompanyName}, #{abbreviation}, #{companyId}, '1', '1')")
int saveCompany(SubCompanyBean o);

View File

@ -4,10 +4,52 @@
<mapper namespace="com.bonus.bmw.person.dao.GetChildListDao">
<select id="getChildList" resultType="java.lang.String">
SELECT getChildList( #{params} )
WITH RECURSIVE child_tree(id,PATH,level) AS (
SELECT
"id",
CAST("id" AS VARCHAR(4000)) AS path,
1 AS level
FROM "ynrealname"."pm_organization"
WHERE "id" = #{params} AND "is_active" = '1'
UNION ALL
SELECT
p."id",
CAST(t.path || ',' || p."id" AS VARCHAR(4000)),
t.level + 1
FROM "ynrealname"."pm_organization" p
INNER JOIN child_tree t ON p."parent_id" = t.id
WHERE p."is_active" = '1'
)
SELECT LISTAGG(id, ',') WITHIN GROUP (ORDER BY level, id) AS result
FROM child_tree;
</select>
<select id="getParentList" resultType="java.lang.String">
SELECT getParentList( #{params} )
WITH RECURSIVE parent_tree(id,parent_id,allpid,level) AS (
SELECT
"id",
"parent_id",
CAST("id" AS VARCHAR(1000)) AS allpid,
1 AS level
FROM "ynrealname"."pm_organization"
WHERE "id" = #{params}
UNION ALL
SELECT
p."id",
p."parent_id",
CAST(t.allpid || ',' || p."id" AS VARCHAR(1000)),
t.level + 1
FROM "ynrealname"."pm_organization" p
INNER JOIN parent_tree t ON p."id" = t.parent_id
WHERE p."id" IS NOT NULL
)
SELECT allpid AS result
FROM parent_tree
ORDER BY level DESC
FETCH FIRST 1 ROW ONLY;
</select>
</mapper>