Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jljz
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
xiaowei
jljz
Commits
2525f48a
Commit
2525f48a
authored
Aug 04, 2026
by
xiaowei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改了wbs工作分配表
parent
44d0238c
显示空白字符变更
内嵌
并排
正在显示
38 个修改的文件
包含
1935 行增加
和
29 行删除
+1935
-29
03-design/智慧矫正系统.make
+0
-0
05-dev-env/code/platform/.cursor/rules/file-encoding-utf8.mdc
+50
-0
05-dev-env/code/platform/.trae/rules/00_global_ai_checklist.md
+1
-1
05-dev-env/code/platform/.trae/rules/00_global_dm8_database.md
+1
-1
05-dev-env/code/platform/.trae/rules/00_global_file_encoding_utf8.md
+37
-0
05-dev-env/code/platform/.trae/rules/00_global_fullstack_collaboration.md
+1
-1
05-dev-env/code/platform/.trae/rules/01_java_coding_standards.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_convert.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_dict_enum_sync.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_do_vo_dm8.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_error_code.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_idempotent.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_mapper_dm8.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_naming.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_operate_log.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_ruoyi_cloud_architecture.md
+2
-2
05-dev-env/code/platform/.trae/rules/01_java_service_controller.md
+2
-2
05-dev-env/code/platform/.trae/rules/03_vue_ruoyi_admin.md
+2
-2
05-dev-env/code/platform/.trae/rules/智慧矫正项目规则.md
+7
-1
05-dev-env/code/platform/.vscode/settings.json
+3
-1
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/pom.xml
+6
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/constant/BusiCacheConstants.java
+22
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/controller/SysOrgController.java
+119
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/SysOrg.java
+320
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/vo/SysOrgOperateVO.java
+301
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/vo/SysOrgQuery.java
+104
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/vo/SysOrgStatusVO.java
+40
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/vo/SysOrgTreeSelect.java
+85
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/mapper/SysOrgMapper.java
+61
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/service/ISysOrgService.java
+60
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/service/impl/SysOrgServiceImpl.java
+360
-0
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/resources/mapper/busi/SysOrgMapper.xml
+145
-0
05-dev-env/code/platform/sql/CreateVideoDev.java
+57
-0
05-dev-env/code/platform/sql/create_sys_org.sql
+64
-0
05-dev-env/code/platform/sql/create_video_dev.sql
+14
-0
05-dev-env/code/platform/sql/sys_org_menu.sql
+26
-0
05-dev-env/code/platform/sql/update_sys_org_comments.sql
+27
-0
10-delivery/plan/智慧矫正平台_WBS与开发计划.xlsx
+0
-0
没有找到文件。
03-design/智慧矫正系统.make
0 → 100644
View file @
2525f48a
File added
05-dev-env/code/platform/.cursor/rules/file-encoding-utf8.mdc
0 → 100644
View file @
2525f48a
---
description: 文件编码规范(UTF-8),生成含中文的文件时必须遵守,规避乱码
alwaysApply: true
---
# 文件编码规范(UTF-8,规避中文乱码)
> 本项目 `pom.xml` 已配置 `project.build.sourceEncoding=UTF-8`;`.vscode/settings.json` 已设 `files.encoding: utf8`。
> Windows 环境下若编码不一致,中文注释/字符串会出现 `?????` 或 `???` 乱码。
## 强制要求
1. **所有含中文的文件一律 UTF-8 编码**(Java、XML、SQL、Vue、Markdown、规则文件等)。
2. **写入后必须回读校验**:若中文变成乱码,立即用 UTF-8 重新写入,不得留乱码文件。
3. **禁止**在含中文路径/内容的场景下依赖系统默认编码(Windows 常为 GBK)。
## 按文件类型的编码约定
| 类型 | 编码 | 说明 |
|------|------|------|
| `.java` | UTF-8(建议带 BOM) | 编译:`javac -encoding UTF-8` |
| `.xml` / `.vue` / `.md` / `.mdc` | UTF-8 无 BOM | 声明 `encoding="UTF-8"` |
| `.sql` | UTF-8 无 BOM | 执行时用 `StandardCharsets.UTF_8` 读取 |
| Shell 执行 SQL | UTF-8 读取 + 跳过 BOM | 首行 `\uFEFF` 需剥离 |
## 乱码修复方式(Windows)
优先用 PowerShell 显式 UTF-8 写入,勿依赖默认编码:
```powershell
# Java(IDE 友好,带 BOM)
$utf8Bom = New-Object System.Text.UTF8Encoding $true
[System.IO.File]::WriteAllText($path, $content, $utf8Bom)
# SQL / XML / 配置(无 BOM)
$utf8 = New-Object System.Text.UTF8Encoding $false
[System.IO.File]::WriteAllText($path, $content, $utf8)
```
## 常见乱码场景与规避
- **场景**:工具写入后 IDE 显示 `?????????` → 文件实际为 GBK/错误编码被当 UTF-8 解析。
- **规避**:含中文的新文件写完后 `Read` 回读;乱码则用上述 PowerShell 方式重写。
- **场景**:达梦执行 SQL 注释变 `???` → 执行器未用 UTF-8 读文件。
- **规避**:`CreateVideoDev.java` 等脚本必须用 `InputStreamReader(..., StandardCharsets.UTF_8)`,并处理 BOM。
## 生成代码时的注释规范
- 中文注释、校验 message(如 `@NotBlank(message = "机构名称不能为空")`)、`@Log(title = "司法行政机构")`、SQL `COMMENT ON` 均须可读中文。
- 若当前环境无法保证 UTF-8 落盘,**先用英文占位并注明 TODO**,或在同轮对话内立即修复,禁止提交乱码版本。
05-dev-env/code/platform/.trae/rules/00_global_ai_checklist.md
View file @
2525f48a
---
---
description: 全项目代码通用强制自检清单(与 .cursor/rules/ai-checklist.mdc 同步)
globs:
[
"**/*.java","**/*.vue","**/*.js","**/*.sql","**/*.xml"
]
alwaysApply: true
...
...
05-dev-env/code/platform/.trae/rules/00_global_dm8_database.md
View file @
2525f48a
---
---
description: 达梦8 DM8数据库全局规范(与 .cursor/rules 同步)
globs:
[
"**/*.sql","**/*Mapper.xml","**/domain/**/*.java"
]
alwaysApply: true
...
...
05-dev-env/code/platform/.trae/rules/00_global_file_encoding_utf8.md
0 → 100644
View file @
2525f48a
# 文件编码规范(UTF-8,规避中文乱码)
> 本项目 `pom.xml` 已配置 `project.build.sourceEncoding=UTF-8`;`.vscode/settings.json` 已设 `files.encoding: utf8`。
> Windows 环境下若编码不一致,中文注释/字符串会出现 `?????` 或 `???` 乱码。
## 强制要求
1.
**所有含中文的文件一律 UTF-8 编码**
(Java、XML、SQL、Vue、Markdown、规则文件等)。
2.
**写入后必须回读校验**
:若中文变成乱码,立即用 UTF-8 重新写入,不得留乱码文件。
3.
**禁止**
在含中文路径/内容的场景下依赖系统默认编码(Windows 常为 GBK)。
## 按文件类型的编码约定
| 类型 | 编码 | 说明 |
|------|------|------|
|
`.java`
| UTF-8(建议带 BOM) | 编译:
`javac -encoding UTF-8`
|
|
`.xml`
/
`.vue`
/
`.md`
/
`.mdc`
| UTF-8 无 BOM | 声明
`encoding="UTF-8"`
|
|
`.sql`
| UTF-8 无 BOM | 执行时用
`StandardCharsets.UTF_8`
读取 |
| Shell 执行 SQL | UTF-8 读取 + 跳过 BOM | 首行
`\uFEFF`
需剥离 |
## 乱码修复方式(Windows)
```
powershell
# Java(IDE 友好,带 BOM)
$utf8Bom
=
New-Object
System.Text.UTF8Encoding
$true
[
System.IO.File]::WriteAllText
(
$path
,
$content
,
$utf8Bom
)
# SQL / XML / 配置(无 BOM)
$utf8
=
New-Object
System.Text.UTF8Encoding
$false
[
System.IO.File]::WriteAllText
(
$path
,
$content
,
$utf8
)
```
## 常见乱码场景与规避
-
工具写入后 IDE 显示
`?????????`
→ 用 PowerShell UTF-8 重写并回读验证。
-
达梦 SQL 注释变
`???`
→ 执行脚本必须用 UTF-8 读取并处理 BOM。
-
含中文的新文件禁止提交乱码版本;无法保证编码时先用英文占位并在同轮修复。
05-dev-env/code/platform/.trae/rules/00_global_fullstack_collaboration.md
View file @
2525f48a
---
---
description: 全栈协作规范(与 .cursor/rules/fullstack-collaboration.mdc 同步)
globs:
[
"**/*.java","**/*.vue","**/*.js","**/*.sql"
]
alwaysApply: true
...
...
05-dev-env/code/platform/.trae/rules/01_java_coding_standards.md
View file @
2525f48a
---
---
description: Java编码红线(与 .cursor/rules/java-coding-standards.mdc 同步)
globs:
[
"**/*.java"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# Java 编码红线(RuoYi Cloud)
...
...
05-dev-env/code/platform/.trae/rules/01_java_convert.md
View file @
2525f48a
---
---
description: 对象转换规范(与 .cursor/rules/java-convert.mdc 同步)
globs:
[
"**/*ServiceImpl.java","**/*Controller.java"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# 对象转换规范
...
...
05-dev-env/code/platform/.trae/rules/01_java_dict_enum_sync.md
View file @
2525f48a
---
---
description: 枚举与字典同步(与 .cursor/rules/java-dict-enum-sync.mdc 同步)
globs:
[
"**/*Enum.java","**/*.sql"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# 枚举与数据字典
...
...
05-dev-env/code/platform/.trae/rules/01_java_do_vo_dm8.md
View file @
2525f48a
---
---
description: Domain/VO 规范(与 .cursor/rules/java-do-vo.mdc 同步)
globs:
[
"**/domain/**/*.java"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# Domain 实体规范
...
...
05-dev-env/code/platform/.trae/rules/01_java_error_code.md
View file @
2525f48a
---
---
description: 业务异常规范(与 .cursor/rules/java-error-code.mdc 同步)
globs:
[
"**/*ServiceImpl.java"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# 业务异常规范
...
...
05-dev-env/code/platform/.trae/rules/01_java_idempotent.md
View file @
2525f48a
---
---
description: 防重复提交规范(与 .cursor/rules/java-idempotent.mdc 同步)
globs:
[
"**/*Controller.java","**/*.vue"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# 防重复提交规范
...
...
05-dev-env/code/platform/.trae/rules/01_java_mapper_dm8.md
View file @
2525f48a
---
---
description: Mapper 与 XML 规范(与 .cursor/rules/java-mapper.mdc 同步)
globs:
[
"**/*Mapper.java","**/*Mapper.xml"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# Mapper 层规范(MyBatis + 达梦 8)
...
...
05-dev-env/code/platform/.trae/rules/01_java_naming.md
View file @
2525f48a
---
---
description: 命名规范(与 .cursor/rules/java-naming.mdc 同步)
globs:
[
"**/*.java","**/*.sql"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# 命名规范
...
...
05-dev-env/code/platform/.trae/rules/01_java_operate_log.md
View file @
2525f48a
---
---
description: 操作日志 @Log 规范(与 .cursor/rules/java-operate-log.mdc 同步)
globs:
[
"**/*Controller.java"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# 操作日志规范(@Log)
...
...
05-dev-env/code/platform/.trae/rules/01_java_ruoyi_cloud_architecture.md
View file @
2525f48a
---
---
description: RuoYi Cloud 工程架构(与 .cursor/rules/java-architecture.mdc 同步)
globs:
[
"**/*.java","**/pom.xml"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# RuoYi Cloud 3.6.8 架构
...
...
05-dev-env/code/platform/.trae/rules/01_java_service_controller.md
View file @
2525f48a
---
---
description: Controller/Service 规范(与 .cursor/rules/java-service-controller.mdc 同步)
globs:
[
"**/controller/**/*.java","**/service/**/*.java"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# Controller & Service 规范(RuoYi Cloud)
...
...
05-dev-env/code/platform/.trae/rules/03_vue_ruoyi_admin.md
View file @
2525f48a
---
---
description: ruoyi-ui 前端规范(与 .cursor/rules/vue-frontend.mdc 同步)
globs:
[
"**/ruoyi-ui/**/*.vue","**/ruoyi-ui/**/*.js"
]
alwaysApply
:
fals
e
alwaysApply:
tru
e
---
# 前端规范(Vue2 + Element UI)
...
...
05-dev-env/code/platform/.trae/rules/智慧矫正项目规则.md
View file @
2525f48a
# 智慧矫正项目强制约束(RuoYi Cloud 3.6.8)
---
---
description: 智慧矫正项目强制约束(RuoYi Cloud + 达梦DM8)
globs:
[
"**/*.java","**/*.vue","**/*.js","**/*.sql","**/*.xml"
]
alwaysApply: true
---
# 智慧矫正项目强制约束(RuoYi Cloud 3.6.8)
> 详细规则见 `.cursor/rules/`,本文件为摘要。
...
...
05-dev-env/code/platform/.vscode/settings.json
View file @
2525f48a
{
"java.compile.nullAnalysis.mode"
:
"automatic"
,
"java.configuration.updateBuildConfiguration"
:
"automatic"
"java.configuration.updateBuildConfiguration"
:
"automatic"
,
"files.encoding"
:
"utf8"
}
\ No newline at end of file
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/pom.xml
View file @
2525f48a
...
...
@@ -71,6 +71,12 @@
<artifactId>
ruoyi-common-swagger
</artifactId>
</dependency>
<!-- RuoYi Common Redis -->
<dependency>
<groupId>
com.ruoyi
</groupId>
<artifactId>
ruoyi-common-redis
</artifactId>
</dependency>
</dependencies>
<build>
...
...
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/constant/BusiCacheConstants.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
constant
;
/**
* 业务模块 Redis 缓存 Key 常量
*
* @author ruoyi
*/
public
final
class
BusiCacheConstants
{
private
BusiCacheConstants
()
{
}
/** 司法行政机构树形缓存前缀 */
public
static
final
String
SYS_ORG_TREE_KEY
=
"busi:org:tree"
;
/** 司法行政机构列表缓存前缀 */
public
static
final
String
SYS_ORG_LIST_KEY
=
"busi:org:list:"
;
/** 司法行政机构详情缓存前缀 */
public
static
final
String
SYS_ORG_INFO_KEY
=
"busi:org:info:"
;
}
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/controller/SysOrgController.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
controller
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.ruoyi.busi.domain.SysOrg
;
import
com.ruoyi.busi.domain.vo.SysOrgOperateVO
;
import
com.ruoyi.busi.domain.vo.SysOrgQuery
;
import
com.ruoyi.busi.domain.vo.SysOrgStatusVO
;
import
com.ruoyi.busi.domain.vo.SysOrgTreeSelect
;
import
com.ruoyi.busi.service.ISysOrgService
;
import
com.ruoyi.common.core.web.controller.BaseController
;
import
com.ruoyi.common.core.web.domain.AjaxResult
;
import
com.ruoyi.common.core.web.page.TableDataInfo
;
import
com.ruoyi.common.log.annotation.Log
;
import
com.ruoyi.common.log.enums.BusinessType
;
import
com.ruoyi.common.security.annotation.RequiresPermissions
;
/**
* 司法行政机构管理 Controller
* <p>
* 网关访问前缀:/busi/org/**
* </p>
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/org"
)
public
class
SysOrgController
extends
BaseController
{
@Autowired
private
ISysOrgService
sysOrgService
;
/**
* 分页查询机构列表(支持名称、编码模糊搜索、状态筛选、数据权限)
*/
@RequiresPermissions
(
"busi:org:list"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysOrgQuery
query
)
{
startPage
();
List
<
SysOrg
>
list
=
sysOrgService
.
selectSysOrgList
(
query
);
return
getDataTable
(
list
);
}
/**
* 查询机构树形结构(用于左侧树 / 上级机构选择)
*/
@RequiresPermissions
(
"busi:org:list"
)
@GetMapping
(
"/tree"
)
public
AjaxResult
tree
(
SysOrgQuery
query
)
{
List
<
SysOrgTreeSelect
>
tree
=
sysOrgService
.
selectSysOrgTree
(
query
);
return
success
(
tree
);
}
/**
* 获取机构详情
*/
@RequiresPermissions
(
"busi:org:query"
)
@GetMapping
(
"/{jgbm}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"jgbm"
)
String
jgbm
)
{
return
success
(
sysOrgService
.
selectSysOrgByJgbm
(
jgbm
));
}
/**
* 新增机构
*/
@RequiresPermissions
(
"busi:org:add"
)
@Log
(
title
=
"司法行政机构"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
(
"/add"
)
public
AjaxResult
add
(
@Validated
(
SysOrgOperateVO
.
Add
.
class
)
@RequestBody
SysOrgOperateVO
operateVO
)
{
return
toAjax
(
sysOrgService
.
insertSysOrg
(
operateVO
));
}
/**
* 编辑机构
*/
@RequiresPermissions
(
"busi:org:edit"
)
@Log
(
title
=
"司法行政机构"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
(
"/edit"
)
public
AjaxResult
edit
(
@Validated
(
SysOrgOperateVO
.
Edit
.
class
)
@RequestBody
SysOrgOperateVO
operateVO
)
{
return
toAjax
(
sysOrgService
.
updateSysOrg
(
operateVO
));
}
/**
* 单条逻辑删除
*/
@RequiresPermissions
(
"busi:org:remove"
)
@Log
(
title
=
"司法行政机构"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/remove/{jgbm}"
)
public
AjaxResult
remove
(
@PathVariable
(
"jgbm"
)
String
jgbm
)
{
return
toAjax
(
sysOrgService
.
deleteSysOrgByJgbm
(
jgbm
));
}
/**
* 修改机构状态(0停用 1正常)
*/
@RequiresPermissions
(
"busi:org:edit"
)
@Log
(
title
=
"司法行政机构"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
(
"/changeStatus"
)
public
AjaxResult
changeStatus
(
@Validated
@RequestBody
SysOrgStatusVO
statusVO
)
{
return
toAjax
(
sysOrgService
.
changeStatus
(
statusVO
.
getJgbm
(),
statusVO
.
getStatus
()));
}
}
\ No newline at end of file
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/SysOrg.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
domain
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
com.ruoyi.common.core.annotation.Excel
;
import
com.ruoyi.common.core.web.domain.BaseEntity
;
/**
* 司法行政机构对象 SYS_ORG
*
* @author ruoyi
*/
public
class
SysOrg
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** 机构编码(主键) */
@Excel
(
name
=
"机构编码"
)
private
String
jgbm
;
/** 机构名称 */
@Excel
(
name
=
"机构名称"
)
private
String
jgmc
;
/** 机构简称 */
@Excel
(
name
=
"机构简称"
)
private
String
jgjc
;
/** 英文名称 */
private
String
ywmc
;
/** 机构代码 */
@Excel
(
name
=
"机构代码"
)
private
String
jgdm
;
/** 负责人 */
@Excel
(
name
=
"负责人"
)
private
String
fzr
;
/** 机构类别 */
@Excel
(
name
=
"机构类别"
)
private
String
jglb
;
/** 机构行政级别 */
@Excel
(
name
=
"机构行政级别"
)
private
String
jgxzjb
;
/** 机构隶属层级 */
@Excel
(
name
=
"机构隶属层级"
)
private
String
jglscj
;
/** 上级司法行政机关编码 */
@Excel
(
name
=
"上级机构编码"
)
private
String
sjsfxzzgjg
;
/** 联系电话 */
private
String
lxdh
;
/** 传真号码 */
private
String
czhm
;
/** 电子邮箱 */
private
String
dzyx
;
/** 行政区划代码 */
@Excel
(
name
=
"行政区划代码"
)
private
String
xzqhdm
;
/** 地址 */
private
String
dz
;
/** 经度 */
private
BigDecimal
jd
;
/** 纬度 */
private
BigDecimal
wd
;
/** 状态(0停用 1正常) */
@Excel
(
name
=
"状态"
,
readConverterExp
=
"0=停用,1=正常"
)
private
Integer
status
;
/** 逻辑删除(0未删 1已删) */
private
Integer
deleted
;
/** 上级机构名称(非数据库字段) */
private
String
parentName
;
/** 子机构 */
private
List
<
SysOrg
>
children
=
new
ArrayList
<>();
public
String
getJgbm
()
{
return
jgbm
;
}
public
void
setJgbm
(
String
jgbm
)
{
this
.
jgbm
=
jgbm
;
}
public
String
getJgmc
()
{
return
jgmc
;
}
public
void
setJgmc
(
String
jgmc
)
{
this
.
jgmc
=
jgmc
;
}
public
String
getJgjc
()
{
return
jgjc
;
}
public
void
setJgjc
(
String
jgjc
)
{
this
.
jgjc
=
jgjc
;
}
public
String
getYwmc
()
{
return
ywmc
;
}
public
void
setYwmc
(
String
ywmc
)
{
this
.
ywmc
=
ywmc
;
}
public
String
getJgdm
()
{
return
jgdm
;
}
public
void
setJgdm
(
String
jgdm
)
{
this
.
jgdm
=
jgdm
;
}
public
String
getFzr
()
{
return
fzr
;
}
public
void
setFzr
(
String
fzr
)
{
this
.
fzr
=
fzr
;
}
public
String
getJglb
()
{
return
jglb
;
}
public
void
setJglb
(
String
jglb
)
{
this
.
jglb
=
jglb
;
}
public
String
getJgxzjb
()
{
return
jgxzjb
;
}
public
void
setJgxzjb
(
String
jgxzjb
)
{
this
.
jgxzjb
=
jgxzjb
;
}
public
String
getJglscj
()
{
return
jglscj
;
}
public
void
setJglscj
(
String
jglscj
)
{
this
.
jglscj
=
jglscj
;
}
public
String
getSjsfxzzgjg
()
{
return
sjsfxzzgjg
;
}
public
void
setSjsfxzzgjg
(
String
sjsfxzzgjg
)
{
this
.
sjsfxzzgjg
=
sjsfxzzgjg
;
}
public
String
getLxdh
()
{
return
lxdh
;
}
public
void
setLxdh
(
String
lxdh
)
{
this
.
lxdh
=
lxdh
;
}
public
String
getCzhm
()
{
return
czhm
;
}
public
void
setCzhm
(
String
czhm
)
{
this
.
czhm
=
czhm
;
}
public
String
getDzyx
()
{
return
dzyx
;
}
public
void
setDzyx
(
String
dzyx
)
{
this
.
dzyx
=
dzyx
;
}
public
String
getXzqhdm
()
{
return
xzqhdm
;
}
public
void
setXzqhdm
(
String
xzqhdm
)
{
this
.
xzqhdm
=
xzqhdm
;
}
public
String
getDz
()
{
return
dz
;
}
public
void
setDz
(
String
dz
)
{
this
.
dz
=
dz
;
}
public
BigDecimal
getJd
()
{
return
jd
;
}
public
void
setJd
(
BigDecimal
jd
)
{
this
.
jd
=
jd
;
}
public
BigDecimal
getWd
()
{
return
wd
;
}
public
void
setWd
(
BigDecimal
wd
)
{
this
.
wd
=
wd
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
void
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
}
public
Integer
getDeleted
()
{
return
deleted
;
}
public
void
setDeleted
(
Integer
deleted
)
{
this
.
deleted
=
deleted
;
}
public
String
getParentName
()
{
return
parentName
;
}
public
void
setParentName
(
String
parentName
)
{
this
.
parentName
=
parentName
;
}
public
List
<
SysOrg
>
getChildren
()
{
return
children
;
}
public
void
setChildren
(
List
<
SysOrg
>
children
)
{
this
.
children
=
children
;
}
@Override
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
.
append
(
"jgbm"
,
getJgbm
())
.
append
(
"jgmc"
,
getJgmc
())
.
append
(
"jgdm"
,
getJgdm
())
.
append
(
"sjsfxzzgjg"
,
getSjsfxzzgjg
())
.
append
(
"status"
,
getStatus
())
.
append
(
"deleted"
,
getDeleted
())
.
append
(
"createBy"
,
getCreateBy
())
.
append
(
"createTime"
,
getCreateTime
())
.
append
(
"updateBy"
,
getUpdateBy
())
.
append
(
"updateTime"
,
getUpdateTime
())
.
toString
();
}
}
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/vo/SysOrgOperateVO.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
domain
.
vo
;
import
java.math.BigDecimal
;
import
jakarta.validation.constraints.Email
;
import
jakarta.validation.constraints.NotBlank
;
import
jakarta.validation.constraints.NotNull
;
import
jakarta.validation.constraints.Pattern
;
import
jakarta.validation.constraints.Size
;
/**
* 司法行政机构新增/编辑入参
*
* @author ruoyi
*/
public
class
SysOrgOperateVO
{
/** 机构编码(主键,新增必填) */
@NotBlank
(
message
=
"机构编码不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
@Size
(
max
=
18
,
message
=
"机构编码长度不能超过18个字符"
)
private
String
jgbm
;
/** 机构名称 */
@NotBlank
(
message
=
"机构名称不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
@Size
(
max
=
300
,
message
=
"机构名称长度不能超过300个字符"
)
private
String
jgmc
;
/** 机构简称 */
@Size
(
max
=
60
,
message
=
"机构简称长度不能超过60个字符"
)
private
String
jgjc
;
/** 英文名称 */
@Size
(
max
=
60
,
message
=
"英文名称长度不能超过60个字符"
)
private
String
ywmc
;
/** 机构代码(业务唯一) */
@NotBlank
(
message
=
"机构代码不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
@Size
(
max
=
20
,
message
=
"机构代码长度不能超过20个字符"
)
private
String
jgdm
;
/** 负责人 */
@NotBlank
(
message
=
"负责人不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
@Size
(
max
=
20
,
message
=
"负责人长度不能超过20个字符"
)
private
String
fzr
;
/** 机构类别 */
@NotBlank
(
message
=
"机构类别不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
@Size
(
max
=
4
,
message
=
"机构类别长度不能超过4个字符"
)
private
String
jglb
;
/** 机构行政级别 */
@NotBlank
(
message
=
"机构行政级别不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
@Size
(
max
=
2
,
message
=
"机构行政级别长度不能超过2个字符"
)
private
String
jgxzjb
;
/** 机构隶属层级 */
@NotBlank
(
message
=
"机构隶属层级不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
@Size
(
max
=
2
,
message
=
"机构隶属层级长度不能超过2个字符"
)
private
String
jglscj
;
/** 上级司法行政机关编码 */
@NotBlank
(
message
=
"上级机构编码不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
@Size
(
max
=
18
,
message
=
"上级机构编码长度不能超过18个字符"
)
private
String
sjsfxzzgjg
;
/** 联系电话 */
@Size
(
max
=
40
,
message
=
"联系电话长度不能超过40个字符"
)
@Pattern
(
regexp
=
"^$|^1[3-9]\\d{9}$|^0\\d{2,3}-?\\d{7,8}$"
,
message
=
"联系电话格式不正确"
)
private
String
lxdh
;
/** 传真号码 */
@Size
(
max
=
40
,
message
=
"传真号码长度不能超过40个字符"
)
private
String
czhm
;
/** 电子邮箱 */
@Size
(
max
=
60
,
message
=
"电子邮箱长度不能超过60个字符"
)
@Email
(
message
=
"电子邮箱格式不正确"
)
private
String
dzyx
;
/** 行政区划代码 */
@NotBlank
(
message
=
"行政区划代码不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
@Size
(
min
=
6
,
max
=
6
,
message
=
"行政区划代码必须为6位"
)
private
String
xzqhdm
;
/** 地址 */
@Size
(
max
=
200
,
message
=
"地址长度不能超过200个字符"
)
private
String
dz
;
/** 经度 */
private
BigDecimal
jd
;
/** 纬度 */
private
BigDecimal
wd
;
/** 状态(0停用 1正常) */
@NotNull
(
message
=
"状态不能为空"
,
groups
=
{
Add
.
class
,
Edit
.
class
})
private
Integer
status
;
/** 备注 */
@Size
(
max
=
500
,
message
=
"备注长度不能超过500个字符"
)
private
String
remark
;
/** 新增校验分组 */
public
interface
Add
{
}
/** 编辑校验分组 */
public
interface
Edit
{
}
public
String
getJgbm
()
{
return
jgbm
;
}
public
void
setJgbm
(
String
jgbm
)
{
this
.
jgbm
=
jgbm
;
}
public
String
getJgmc
()
{
return
jgmc
;
}
public
void
setJgmc
(
String
jgmc
)
{
this
.
jgmc
=
jgmc
;
}
public
String
getJgjc
()
{
return
jgjc
;
}
public
void
setJgjc
(
String
jgjc
)
{
this
.
jgjc
=
jgjc
;
}
public
String
getYwmc
()
{
return
ywmc
;
}
public
void
setYwmc
(
String
ywmc
)
{
this
.
ywmc
=
ywmc
;
}
public
String
getJgdm
()
{
return
jgdm
;
}
public
void
setJgdm
(
String
jgdm
)
{
this
.
jgdm
=
jgdm
;
}
public
String
getFzr
()
{
return
fzr
;
}
public
void
setFzr
(
String
fzr
)
{
this
.
fzr
=
fzr
;
}
public
String
getJglb
()
{
return
jglb
;
}
public
void
setJglb
(
String
jglb
)
{
this
.
jglb
=
jglb
;
}
public
String
getJgxzjb
()
{
return
jgxzjb
;
}
public
void
setJgxzjb
(
String
jgxzjb
)
{
this
.
jgxzjb
=
jgxzjb
;
}
public
String
getJglscj
()
{
return
jglscj
;
}
public
void
setJglscj
(
String
jglscj
)
{
this
.
jglscj
=
jglscj
;
}
public
String
getSjsfxzzgjg
()
{
return
sjsfxzzgjg
;
}
public
void
setSjsfxzzgjg
(
String
sjsfxzzgjg
)
{
this
.
sjsfxzzgjg
=
sjsfxzzgjg
;
}
public
String
getLxdh
()
{
return
lxdh
;
}
public
void
setLxdh
(
String
lxdh
)
{
this
.
lxdh
=
lxdh
;
}
public
String
getCzhm
()
{
return
czhm
;
}
public
void
setCzhm
(
String
czhm
)
{
this
.
czhm
=
czhm
;
}
public
String
getDzyx
()
{
return
dzyx
;
}
public
void
setDzyx
(
String
dzyx
)
{
this
.
dzyx
=
dzyx
;
}
public
String
getXzqhdm
()
{
return
xzqhdm
;
}
public
void
setXzqhdm
(
String
xzqhdm
)
{
this
.
xzqhdm
=
xzqhdm
;
}
public
String
getDz
()
{
return
dz
;
}
public
void
setDz
(
String
dz
)
{
this
.
dz
=
dz
;
}
public
BigDecimal
getJd
()
{
return
jd
;
}
public
void
setJd
(
BigDecimal
jd
)
{
this
.
jd
=
jd
;
}
public
BigDecimal
getWd
()
{
return
wd
;
}
public
void
setWd
(
BigDecimal
wd
)
{
this
.
wd
=
wd
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
void
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
}
public
String
getRemark
()
{
return
remark
;
}
public
void
setRemark
(
String
remark
)
{
this
.
remark
=
remark
;
}
}
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/vo/SysOrgQuery.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
domain
.
vo
;
import
com.ruoyi.common.core.web.domain.BaseEntity
;
/**
* 司法行政机构查询条件
*
* @author ruoyi
*/
public
class
SysOrgQuery
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** 机构编码(精确) */
private
String
jgbm
;
/** 机构名称(模糊) */
private
String
jgmc
;
/** 机构代码(模糊) */
private
String
jgdm
;
/** 上级机构编码 */
private
String
sjsfxzzgjg
;
/** 行政区划代码 */
private
String
xzqhdm
;
/** 状态(0停用 1正常) */
private
Integer
status
;
/** 数据权限根机构编码(Service 内部注入,非前端传参) */
private
String
scopeRootJgbm
;
public
String
getJgbm
()
{
return
jgbm
;
}
public
void
setJgbm
(
String
jgbm
)
{
this
.
jgbm
=
jgbm
;
}
public
String
getJgmc
()
{
return
jgmc
;
}
public
void
setJgmc
(
String
jgmc
)
{
this
.
jgmc
=
jgmc
;
}
public
String
getJgdm
()
{
return
jgdm
;
}
public
void
setJgdm
(
String
jgdm
)
{
this
.
jgdm
=
jgdm
;
}
public
String
getSjsfxzzgjg
()
{
return
sjsfxzzgjg
;
}
public
void
setSjsfxzzgjg
(
String
sjsfxzzgjg
)
{
this
.
sjsfxzzgjg
=
sjsfxzzgjg
;
}
public
String
getXzqhdm
()
{
return
xzqhdm
;
}
public
void
setXzqhdm
(
String
xzqhdm
)
{
this
.
xzqhdm
=
xzqhdm
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
void
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
}
public
String
getScopeRootJgbm
()
{
return
scopeRootJgbm
;
}
public
void
setScopeRootJgbm
(
String
scopeRootJgbm
)
{
this
.
scopeRootJgbm
=
scopeRootJgbm
;
}
}
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/vo/SysOrgStatusVO.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
domain
.
vo
;
import
jakarta.validation.constraints.NotBlank
;
import
jakarta.validation.constraints.NotNull
;
/**
* 司法行政机构状态修改入参
*
* @author ruoyi
*/
public
class
SysOrgStatusVO
{
/** 机构编码 */
@NotBlank
(
message
=
"机构编码不能为空"
)
private
String
jgbm
;
/** 状态(0停用 1正常) */
@NotNull
(
message
=
"状态不能为空"
)
private
Integer
status
;
public
String
getJgbm
()
{
return
jgbm
;
}
public
void
setJgbm
(
String
jgbm
)
{
this
.
jgbm
=
jgbm
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
void
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
}
}
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/domain/vo/SysOrgTreeSelect.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
domain
.
vo
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.ruoyi.busi.domain.SysOrg
;
/**
* 司法行政机构树形下拉结构
*
* @author ruoyi
*/
public
class
SysOrgTreeSelect
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/** 节点编码 */
private
String
id
;
/** 节点名称 */
private
String
label
;
/** 是否禁用(停用机构不可选) */
private
boolean
disabled
;
/** 子节点 */
@JsonInclude
(
JsonInclude
.
Include
.
NON_EMPTY
)
private
List
<
SysOrgTreeSelect
>
children
;
public
SysOrgTreeSelect
()
{
}
public
SysOrgTreeSelect
(
SysOrg
org
)
{
this
.
id
=
org
.
getJgbm
();
this
.
label
=
org
.
getJgmc
();
this
.
disabled
=
org
.
getStatus
()
!=
null
&&
org
.
getStatus
()
==
0
;
if
(
org
.
getChildren
()
!=
null
&&
!
org
.
getChildren
().
isEmpty
())
{
this
.
children
=
org
.
getChildren
().
stream
().
map
(
SysOrgTreeSelect:
:
new
).
collect
(
Collectors
.
toList
());
}
}
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getLabel
()
{
return
label
;
}
public
void
setLabel
(
String
label
)
{
this
.
label
=
label
;
}
public
boolean
isDisabled
()
{
return
disabled
;
}
public
void
setDisabled
(
boolean
disabled
)
{
this
.
disabled
=
disabled
;
}
public
List
<
SysOrgTreeSelect
>
getChildren
()
{
return
children
;
}
public
void
setChildren
(
List
<
SysOrgTreeSelect
>
children
)
{
this
.
children
=
children
;
}
}
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/mapper/SysOrgMapper.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
mapper
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Param
;
import
com.ruoyi.busi.domain.SysOrg
;
import
com.ruoyi.busi.domain.vo.SysOrgQuery
;
/**
* 司法行政机构 Mapper 接口
*
* @author ruoyi
*/
public
interface
SysOrgMapper
{
/**
* 根据机构编码查询
*/
SysOrg
selectSysOrgByJgbm
(
@Param
(
"jgbm"
)
String
jgbm
);
/**
* 查询机构列表
*/
List
<
SysOrg
>
selectSysOrgList
(
SysOrgQuery
query
);
/**
* 校验机构编码是否唯一
*/
SysOrg
checkJgbmUnique
(
@Param
(
"jgbm"
)
String
jgbm
);
/**
* 校验机构代码是否唯一
*/
SysOrg
checkJgdmUnique
(
@Param
(
"jgdm"
)
String
jgdm
);
/**
* 统计下级机构数量
*/
int
countChildByJgbm
(
@Param
(
"jgbm"
)
String
jgbm
);
/**
* 新增机构
*/
int
insertSysOrg
(
SysOrg
sysOrg
);
/**
* 修改机构
*/
int
updateSysOrg
(
SysOrg
sysOrg
);
/**
* 逻辑删除机构
*/
int
deleteSysOrgByJgbm
(
@Param
(
"jgbm"
)
String
jgbm
,
@Param
(
"updateBy"
)
String
updateBy
);
/**
* 修改机构状态
*/
int
updateSysOrgStatus
(
@Param
(
"jgbm"
)
String
jgbm
,
@Param
(
"status"
)
Integer
status
,
@Param
(
"updateBy"
)
String
updateBy
);
}
\ No newline at end of file
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/service/ISysOrgService.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
service
;
import
java.util.List
;
import
com.ruoyi.busi.domain.SysOrg
;
import
com.ruoyi.busi.domain.vo.SysOrgOperateVO
;
import
com.ruoyi.busi.domain.vo.SysOrgQuery
;
import
com.ruoyi.busi.domain.vo.SysOrgTreeSelect
;
/**
* 司法行政机构 Service 接口
*
* @author ruoyi
*/
public
interface
ISysOrgService
{
/**
* 分页查询机构列表
*/
List
<
SysOrg
>
selectSysOrgList
(
SysOrgQuery
query
);
/**
* 查询机构树
*/
List
<
SysOrgTreeSelect
>
selectSysOrgTree
(
SysOrgQuery
query
);
/**
* 根据编码查询详情
*/
SysOrg
selectSysOrgByJgbm
(
String
jgbm
);
/**
* 新增机构
*/
int
insertSysOrg
(
SysOrgOperateVO
operateVO
);
/**
* 修改机构
*/
int
updateSysOrg
(
SysOrgOperateVO
operateVO
);
/**
* 逻辑删除机构
*/
int
deleteSysOrgByJgbm
(
String
jgbm
);
/**
* 修改机构状态
*/
int
changeStatus
(
String
jgbm
,
Integer
status
);
/**
* 校验机构编码是否唯一
*/
boolean
checkJgbmUnique
(
String
jgbm
);
/**
* 校验机构代码是否唯一
*/
boolean
checkJgdmUnique
(
String
jgbm
,
String
jgdm
);
}
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/java/com/ruoyi/busi/service/impl/SysOrgServiceImpl.java
0 → 100644
View file @
2525f48a
package
com
.
ruoyi
.
busi
.
service
.
impl
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ruoyi.busi.constant.BusiCacheConstants
;
import
com.ruoyi.busi.domain.SysOrg
;
import
com.ruoyi.busi.domain.vo.SysOrgOperateVO
;
import
com.ruoyi.busi.domain.vo.SysOrgQuery
;
import
com.ruoyi.busi.domain.vo.SysOrgTreeSelect
;
import
com.ruoyi.busi.mapper.SysOrgMapper
;
import
com.ruoyi.busi.service.ISysOrgService
;
import
com.ruoyi.common.core.exception.ServiceException
;
import
com.ruoyi.common.core.utils.StringUtils
;
import
com.ruoyi.common.redis.service.RedisService
;
import
com.ruoyi.common.security.utils.SecurityUtils
;
import
com.ruoyi.system.api.domain.SysUser
;
import
com.ruoyi.system.api.model.LoginUser
;
/**
* 司法行政机构 Service 实现
*
* @author ruoyi
*/
@Service
public
class
SysOrgServiceImpl
implements
ISysOrgService
{
@Autowired
private
SysOrgMapper
sysOrgMapper
;
@Autowired
private
RedisService
redisService
;
@Override
public
List
<
SysOrg
>
selectSysOrgList
(
SysOrgQuery
query
)
{
applyOrgDataScope
(
query
);
return
sysOrgMapper
.
selectSysOrgList
(
query
);
}
@Override
public
List
<
SysOrgTreeSelect
>
selectSysOrgTree
(
SysOrgQuery
query
)
{
applyOrgDataScope
(
query
);
@SuppressWarnings
(
"unchecked"
)
List
<
SysOrgTreeSelect
>
cache
=
(
List
<
SysOrgTreeSelect
>)
redisService
.
getCacheObject
(
BusiCacheConstants
.
SYS_ORG_TREE_KEY
);
if
(
cache
!=
null
&&
isEmptyQuery
(
query
))
{
return
cache
;
}
List
<
SysOrg
>
orgList
=
sysOrgMapper
.
selectSysOrgList
(
query
);
List
<
SysOrg
>
tree
=
buildOrgTree
(
orgList
);
List
<
SysOrgTreeSelect
>
treeSelect
=
tree
.
stream
().
map
(
SysOrgTreeSelect:
:
new
).
collect
(
Collectors
.
toList
());
if
(
isEmptyQuery
(
query
))
{
redisService
.
setCacheObject
(
BusiCacheConstants
.
SYS_ORG_TREE_KEY
,
treeSelect
);
}
return
treeSelect
;
}
@Override
public
SysOrg
selectSysOrgByJgbm
(
String
jgbm
)
{
if
(
StringUtils
.
isEmpty
(
jgbm
))
{
throw
new
ServiceException
(
"机构编码不能为空"
);
}
String
cacheKey
=
BusiCacheConstants
.
SYS_ORG_INFO_KEY
+
jgbm
;
SysOrg
cache
=
redisService
.
getCacheObject
(
cacheKey
);
if
(
cache
!=
null
)
{
return
cache
;
}
SysOrg
org
=
sysOrgMapper
.
selectSysOrgByJgbm
(
jgbm
);
if
(
org
==
null
)
{
throw
new
ServiceException
(
"机构不存在或已删除"
);
}
checkOrgDataScope
(
org
.
getJgbm
());
redisService
.
setCacheObject
(
cacheKey
,
org
);
return
org
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
int
insertSysOrg
(
SysOrgOperateVO
operateVO
)
{
if
(!
checkJgbmUnique
(
operateVO
.
getJgbm
()))
{
throw
new
ServiceException
(
"新增机构失败,机构编码'"
+
operateVO
.
getJgbm
()
+
"'已存在"
);
}
if
(!
checkJgdmUnique
(
null
,
operateVO
.
getJgdm
()))
{
throw
new
ServiceException
(
"新增机构失败,机构代码'"
+
operateVO
.
getJgdm
()
+
"'已存在"
);
}
validateParentOrg
(
operateVO
.
getSjsfxzzgjg
(),
operateVO
.
getJgbm
());
SysOrg
org
=
convertToEntity
(
operateVO
);
org
.
setCreateBy
(
SecurityUtils
.
getUsername
());
org
.
setDeleted
(
0
);
if
(
org
.
getStatus
()
==
null
)
{
org
.
setStatus
(
1
);
}
int
rows
=
sysOrgMapper
.
insertSysOrg
(
org
);
if
(
rows
>
0
)
{
clearOrgCache
(
org
.
getJgbm
());
}
return
rows
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
int
updateSysOrg
(
SysOrgOperateVO
operateVO
)
{
SysOrg
dbOrg
=
sysOrgMapper
.
selectSysOrgByJgbm
(
operateVO
.
getJgbm
());
if
(
dbOrg
==
null
)
{
throw
new
ServiceException
(
"修改机构失败,机构不存在"
);
}
checkOrgDataScope
(
dbOrg
.
getJgbm
());
if
(!
checkJgdmUnique
(
operateVO
.
getJgbm
(),
operateVO
.
getJgdm
()))
{
throw
new
ServiceException
(
"修改机构失败,机构代码'"
+
operateVO
.
getJgdm
()
+
"'已存在"
);
}
if
(
StringUtils
.
equals
(
operateVO
.
getJgbm
(),
operateVO
.
getSjsfxzzgjg
()))
{
throw
new
ServiceException
(
"修改机构失败,上级机构不能是自己"
);
}
validateParentOrg
(
operateVO
.
getSjsfxzzgjg
(),
operateVO
.
getJgbm
());
SysOrg
org
=
convertToEntity
(
operateVO
);
org
.
setUpdateBy
(
SecurityUtils
.
getUsername
());
int
rows
=
sysOrgMapper
.
updateSysOrg
(
org
);
if
(
rows
>
0
)
{
clearOrgCache
(
org
.
getJgbm
());
}
return
rows
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
int
deleteSysOrgByJgbm
(
String
jgbm
)
{
SysOrg
org
=
sysOrgMapper
.
selectSysOrgByJgbm
(
jgbm
);
if
(
org
==
null
)
{
throw
new
ServiceException
(
"删除机构失败,机构不存在"
);
}
checkOrgDataScope
(
jgbm
);
if
(
sysOrgMapper
.
countChildByJgbm
(
jgbm
)
>
0
)
{
throw
new
ServiceException
(
"存在下级机构,不允许删除"
);
}
int
rows
=
sysOrgMapper
.
deleteSysOrgByJgbm
(
jgbm
,
SecurityUtils
.
getUsername
());
if
(
rows
>
0
)
{
clearOrgCache
(
jgbm
);
}
return
rows
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
int
changeStatus
(
String
jgbm
,
Integer
status
)
{
if
(
status
==
null
||
(
status
!=
0
&&
status
!=
1
))
{
throw
new
ServiceException
(
"状态值非法,仅允许0(停用)或1(正常)"
);
}
SysOrg
org
=
sysOrgMapper
.
selectSysOrgByJgbm
(
jgbm
);
if
(
org
==
null
)
{
throw
new
ServiceException
(
"修改状态失败,机构不存在"
);
}
checkOrgDataScope
(
jgbm
);
if
(
status
==
0
&&
sysOrgMapper
.
countChildByJgbm
(
jgbm
)
>
0
)
{
throw
new
ServiceException
(
"存在下级机构,不允许停用"
);
}
int
rows
=
sysOrgMapper
.
updateSysOrgStatus
(
jgbm
,
status
,
SecurityUtils
.
getUsername
());
if
(
rows
>
0
)
{
clearOrgCache
(
jgbm
);
}
return
rows
;
}
@Override
public
boolean
checkJgbmUnique
(
String
jgbm
)
{
return
sysOrgMapper
.
checkJgbmUnique
(
jgbm
)
==
null
;
}
@Override
public
boolean
checkJgdmUnique
(
String
jgbm
,
String
jgdm
)
{
SysOrg
info
=
sysOrgMapper
.
checkJgdmUnique
(
jgdm
);
if
(
info
==
null
)
{
return
true
;
}
return
StringUtils
.
isNotEmpty
(
jgbm
)
&&
jgbm
.
equals
(
info
.
getJgbm
());
}
/**
* 构建机构树(上级编码 SJSFXZZGJG 关联)
*/
private
List
<
SysOrg
>
buildOrgTree
(
List
<
SysOrg
>
orgList
)
{
List
<
SysOrg
>
returnList
=
new
ArrayList
<>();
List
<
String
>
jgbmList
=
orgList
.
stream
().
map
(
SysOrg:
:
getJgbm
).
collect
(
Collectors
.
toList
());
for
(
SysOrg
org
:
orgList
)
{
if
(!
jgbmList
.
contains
(
org
.
getSjsfxzzgjg
()))
{
recursionFn
(
orgList
,
org
);
returnList
.
add
(
org
);
}
}
if
(
returnList
.
isEmpty
())
{
returnList
=
orgList
;
}
return
returnList
;
}
private
void
recursionFn
(
List
<
SysOrg
>
list
,
SysOrg
current
)
{
List
<
SysOrg
>
childList
=
getChildList
(
list
,
current
);
current
.
setChildren
(
childList
);
for
(
SysOrg
child
:
childList
)
{
if
(
hasChild
(
list
,
child
))
{
recursionFn
(
list
,
child
);
}
}
}
private
List
<
SysOrg
>
getChildList
(
List
<
SysOrg
>
list
,
SysOrg
current
)
{
return
list
.
stream
()
.
filter
(
o
->
StringUtils
.
equals
(
o
.
getSjsfxzzgjg
(),
current
.
getJgbm
()))
.
collect
(
Collectors
.
toList
());
}
private
boolean
hasChild
(
List
<
SysOrg
>
list
,
SysOrg
current
)
{
return
list
.
stream
().
anyMatch
(
o
->
StringUtils
.
equals
(
o
.
getSjsfxzzgjg
(),
current
.
getJgbm
()));
}
/**
* 注入数据权限根机构编码。
* 约定:sys_dept.leader 字段存放当前用户所属司法机构编码 JGBM。
*/
private
void
applyOrgDataScope
(
SysOrgQuery
query
)
{
LoginUser
loginUser
=
SecurityUtils
.
getLoginUser
();
if
(
loginUser
==
null
||
loginUser
.
getSysUser
().
isAdmin
())
{
return
;
}
String
rootJgbm
=
resolveUserOrgJgbm
(
loginUser
.
getSysUser
());
if
(
StringUtils
.
isNotEmpty
(
rootJgbm
))
{
query
.
setScopeRootJgbm
(
rootJgbm
);
}
}
/**
* 校验当前用户是否有权操作目标机构
*/
private
void
checkOrgDataScope
(
String
jgbm
)
{
LoginUser
loginUser
=
SecurityUtils
.
getLoginUser
();
if
(
loginUser
==
null
||
loginUser
.
getSysUser
().
isAdmin
())
{
return
;
}
String
rootJgbm
=
resolveUserOrgJgbm
(
loginUser
.
getSysUser
());
if
(
StringUtils
.
isEmpty
(
rootJgbm
))
{
throw
new
ServiceException
(
"无数据权限,请联系管理员配置所属机构"
);
}
SysOrgQuery
query
=
new
SysOrgQuery
();
query
.
setScopeRootJgbm
(
rootJgbm
);
query
.
setJgbm
(
jgbm
);
List
<
SysOrg
>
list
=
sysOrgMapper
.
selectSysOrgList
(
query
);
if
(
list
.
isEmpty
())
{
throw
new
ServiceException
(
"无权限访问该机构数据"
);
}
}
private
String
resolveUserOrgJgbm
(
SysUser
user
)
{
if
(
user
.
getDept
()
!=
null
&&
StringUtils
.
isNotEmpty
(
user
.
getDept
().
getLeader
()))
{
return
user
.
getDept
().
getLeader
();
}
return
null
;
}
private
SysOrg
convertToEntity
(
SysOrgOperateVO
vo
)
{
SysOrg
org
=
new
SysOrg
();
BeanUtils
.
copyProperties
(
vo
,
org
);
return
org
;
}
private
void
validateParentOrg
(
String
parentJgbm
,
String
currentJgbm
)
{
if
(
StringUtils
.
isEmpty
(
parentJgbm
)
||
"0"
.
equals
(
parentJgbm
))
{
return
;
}
if
(
StringUtils
.
equals
(
parentJgbm
,
currentJgbm
))
{
throw
new
ServiceException
(
"上级机构不能是当前机构"
);
}
SysOrg
parent
=
sysOrgMapper
.
selectSysOrgByJgbm
(
parentJgbm
);
if
(
parent
==
null
)
{
throw
new
ServiceException
(
"上级机构不存在"
);
}
}
private
boolean
isEmptyQuery
(
SysOrgQuery
query
)
{
return
StringUtils
.
isEmpty
(
query
.
getJgbm
())
&&
StringUtils
.
isEmpty
(
query
.
getJgmc
())
&&
StringUtils
.
isEmpty
(
query
.
getJgdm
())
&&
StringUtils
.
isEmpty
(
query
.
getSjsfxzzgjg
())
&&
StringUtils
.
isEmpty
(
query
.
getXzqhdm
())
&&
query
.
getStatus
()
==
null
;
}
/**
* 清除机构相关 Redis 缓存
*/
private
void
clearOrgCache
(
String
jgbm
)
{
redisService
.
deleteObject
(
BusiCacheConstants
.
SYS_ORG_TREE_KEY
);
if
(
StringUtils
.
isNotEmpty
(
jgbm
))
{
redisService
.
deleteObject
(
BusiCacheConstants
.
SYS_ORG_INFO_KEY
+
jgbm
);
}
Collection
<
String
>
listKeys
=
redisService
.
keys
(
BusiCacheConstants
.
SYS_ORG_LIST_KEY
+
"*"
);
if
(
listKeys
!=
null
&&
!
listKeys
.
isEmpty
())
{
redisService
.
deleteObject
(
listKeys
);
}
}
}
05-dev-env/code/platform/ruoyi-modules/ruoyi-busi/src/main/resources/mapper/busi/SysOrgMapper.xml
0 → 100644
View file @
2525f48a
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.ruoyi.busi.mapper.SysOrgMapper"
>
<resultMap
type=
"SysOrg"
id=
"SysOrgResult"
>
<id
property=
"jgbm"
column=
"JGBM"
/>
<result
property=
"jgmc"
column=
"JGMC"
/>
<result
property=
"jgjc"
column=
"JGJC"
/>
<result
property=
"ywmc"
column=
"YWMC"
/>
<result
property=
"jgdm"
column=
"JGDM"
/>
<result
property=
"fzr"
column=
"FZR"
/>
<result
property=
"jglb"
column=
"JGLB"
/>
<result
property=
"jgxzjb"
column=
"JGXZJB"
/>
<result
property=
"jglscj"
column=
"JGLSCJ"
/>
<result
property=
"sjsfxzzgjg"
column=
"SJSFXZZGJG"
/>
<result
property=
"lxdh"
column=
"LXDH"
/>
<result
property=
"czhm"
column=
"CZHM"
/>
<result
property=
"dzyx"
column=
"DZYX"
/>
<result
property=
"xzqhdm"
column=
"XZQHDM"
/>
<result
property=
"dz"
column=
"DZ"
/>
<result
property=
"jd"
column=
"JD"
/>
<result
property=
"wd"
column=
"WD"
/>
<result
property=
"status"
column=
"ORG_STATUS"
/>
<result
property=
"deleted"
column=
"DELETED"
/>
<result
property=
"createBy"
column=
"CREATE_BY"
/>
<result
property=
"createTime"
column=
"CREATE_TIME"
/>
<result
property=
"updateBy"
column=
"UPDATE_BY"
/>
<result
property=
"updateTime"
column=
"UPDATE_TIME"
/>
<result
property=
"parentName"
column=
"PARENT_NAME"
/>
</resultMap>
<sql
id=
"selectSysOrgVo"
>
select o.JGBM, o.JGMC, o.JGJC, o.YWMC, o.JGDM, o.FZR, o.JGLB, o.JGXZJB, o.JGLSCJ,
o.SJSFXZZGJG, o.LXDH, o.CZHM, o.DZYX, o.XZQHDM, o.DZ, o.JD, o.WD,
o.ORG_STATUS, o.DELETED, o.CREATE_BY, o.CREATE_TIME, o.UPDATE_BY, o.UPDATE_TIME,
p.JGMC as PARENT_NAME
from SYS_ORG o
left join SYS_ORG p on o.SJSFXZZGJG = p.JGBM and p.DELETED = 0
</sql>
<!-- 数据权限:非管理员仅可见本机构及下级(scopeRootJgbm 由 Service 注入) -->
<sql
id=
"orgDataScopeFilter"
>
<if
test=
"scopeRootJgbm != null and scopeRootJgbm != ''"
>
and o.JGBM in (
select JGBM from SYS_ORG
where DELETED = 0
start with JGBM = #{scopeRootJgbm}
connect by prior JGBM = SJSFXZZGJG
)
</if>
</sql>
<select
id=
"selectSysOrgByJgbm"
resultMap=
"SysOrgResult"
>
<include
refid=
"selectSysOrgVo"
/>
where o.JGBM = #{jgbm} and o.DELETED = 0
</select>
<select
id=
"selectSysOrgList"
parameterType=
"SysOrgQuery"
resultMap=
"SysOrgResult"
>
<include
refid=
"selectSysOrgVo"
/>
where o.DELETED = 0
<if
test=
"jgbm != null and jgbm != ''"
>
and o.JGBM = #{jgbm}
</if>
<if
test=
"jgmc != null and jgmc != ''"
>
and o.JGMC like concat('%', #{jgmc}, '%')
</if>
<if
test=
"jgdm != null and jgdm != ''"
>
and o.JGDM like concat('%', #{jgdm}, '%')
</if>
<if
test=
"sjsfxzzgjg != null and sjsfxzzgjg != ''"
>
and o.SJSFXZZGJG = #{sjsfxzzgjg}
</if>
<if
test=
"xzqhdm != null and xzqhdm != ''"
>
and o.XZQHDM = #{xzqhdm}
</if>
<if
test=
"status != null"
>
and o.ORG_STATUS = #{status}
</if>
<include
refid=
"orgDataScopeFilter"
/>
order by o.JGLSCJ, o.JGBM
</select>
<select
id=
"checkJgbmUnique"
resultMap=
"SysOrgResult"
>
select JGBM, JGMC from SYS_ORG where JGBM = #{jgbm} and DELETED = 0
</select>
<select
id=
"checkJgdmUnique"
resultMap=
"SysOrgResult"
>
select JGBM, JGDM from SYS_ORG where JGDM = #{jgdm} and DELETED = 0
</select>
<select
id=
"countChildByJgbm"
resultType=
"int"
>
select count(1) from SYS_ORG where SJSFXZZGJG = #{jgbm} and DELETED = 0
</select>
<insert
id=
"insertSysOrg"
parameterType=
"SysOrg"
>
insert into SYS_ORG (
JGBM, JGMC, JGJC, YWMC, JGDM, FZR, JGLB, JGXZJB, JGLSCJ, SJSFXZZGJG,
LXDH, CZHM, DZYX, XZQHDM, DZ, JD, WD, ORG_STATUS, DELETED, CREATE_BY, CREATE_TIME
) values (
#{jgbm}, #{jgmc}, #{jgjc}, #{ywmc}, #{jgdm}, #{fzr}, #{jglb}, #{jgxzjb}, #{jglscj}, #{sjsfxzzgjg},
#{lxdh}, #{czhm}, #{dzyx}, #{xzqhdm}, #{dz}, #{jd}, #{wd}, #{status}, 0, #{createBy}, SYSDATE
)
</insert>
<update
id=
"updateSysOrg"
parameterType=
"SysOrg"
>
update SYS_ORG
<set>
<if
test=
"jgmc != null and jgmc != ''"
>
JGMC = #{jgmc},
</if>
<if
test=
"jgjc != null"
>
JGJC = #{jgjc},
</if>
<if
test=
"ywmc != null"
>
YWMC = #{ywmc},
</if>
<if
test=
"jgdm != null and jgdm != ''"
>
JGDM = #{jgdm},
</if>
<if
test=
"fzr != null and fzr != ''"
>
FZR = #{fzr},
</if>
<if
test=
"jglb != null and jglb != ''"
>
JGLB = #{jglb},
</if>
<if
test=
"jgxzjb != null and jgxzjb != ''"
>
JGXZJB = #{jgxzjb},
</if>
<if
test=
"jglscj != null and jglscj != ''"
>
JGLSCJ = #{jglscj},
</if>
<if
test=
"sjsfxzzgjg != null and sjsfxzzgjg != ''"
>
SJSFXZZGJG = #{sjsfxzzgjg},
</if>
<if
test=
"lxdh != null"
>
LXDH = #{lxdh},
</if>
<if
test=
"czhm != null"
>
CZHM = #{czhm},
</if>
<if
test=
"dzyx != null"
>
DZYX = #{dzyx},
</if>
<if
test=
"xzqhdm != null and xzqhdm != ''"
>
XZQHDM = #{xzqhdm},
</if>
<if
test=
"dz != null"
>
DZ = #{dz},
</if>
<if
test=
"jd != null"
>
JD = #{jd},
</if>
<if
test=
"wd != null"
>
WD = #{wd},
</if>
<if
test=
"status != null"
>
ORG_STATUS = #{status},
</if>
UPDATE_BY = #{updateBy},
UPDATE_TIME = SYSDATE
</set>
where JGBM = #{jgbm} and DELETED = 0
</update>
<update
id=
"deleteSysOrgByJgbm"
>
update SYS_ORG
set DELETED = 1, UPDATE_BY = #{updateBy}, UPDATE_TIME = SYSDATE
where JGBM = #{jgbm} and DELETED = 0
</update>
<update
id=
"updateSysOrgStatus"
>
update SYS_ORG
set ORG_STATUS = #{status}, UPDATE_BY = #{updateBy}, UPDATE_TIME = SYSDATE
where JGBM = #{jgbm} and DELETED = 0
</update>
</mapper>
05-dev-env/code/platform/sql/CreateVideoDev.java
0 → 100644
View file @
2525f48a
import
java.io.BufferedReader
;
import
java.io.FileInputStream
;
import
java.io.InputStreamReader
;
import
java.nio.charset.StandardCharsets
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.Statement
;
public
class
CreateVideoDev
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
if
(
args
.
length
==
0
)
{
System
.
err
.
println
(
"Usage: CreateVideoDev <sql-file>"
);
System
.
exit
(
1
);
}
String
url
=
"jdbc:dm://8.142.21.6:5236?schema=JZ_TEST"
;
String
username
=
"SYSDBA"
;
String
password
=
"Dameng1@34"
;
String
sqlFile
=
args
[
0
];
Class
.
forName
(
"dm.jdbc.driver.DmDriver"
);
Connection
conn
=
DriverManager
.
getConnection
(
url
,
username
,
password
);
conn
.
setAutoCommit
(
false
);
Statement
stmt
=
conn
.
createStatement
();
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
new
FileInputStream
(
sqlFile
),
StandardCharsets
.
UTF_8
));
StringBuilder
sqlBuilder
=
new
StringBuilder
();
String
line
;
int
count
=
0
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
// strip UTF-8 BOM if present on first line
if
(
count
==
0
&&
line
.
length
()
>
0
&&
line
.
charAt
(
0
)
==
'\
uFEFF
'
)
{
line
=
line
.
substring
(
1
);
}
line
=
line
.
trim
();
if
(
line
.
isEmpty
()
||
line
.
startsWith
(
"--"
))
{
continue
;
}
sqlBuilder
.
append
(
line
).
append
(
" "
);
if
(
line
.
endsWith
(
";"
))
{
String
sql
=
sqlBuilder
.
toString
().
trim
();
System
.
out
.
println
(
"EXEC: "
+
sql
);
stmt
.
executeUpdate
(
sql
);
count
++;
sqlBuilder
=
new
StringBuilder
();
}
}
conn
.
commit
();
reader
.
close
();
stmt
.
close
();
conn
.
close
();
System
.
out
.
println
(
"Done. statements="
+
count
);
}
}
05-dev-env/code/platform/sql/create_sys_org.sql
0 → 100644
View file @
2525f48a
-- 司法行政机构管理 SYS_ORG(达梦8)
-- 模式:JZ_TEST
-- 开发环境结构变更时可先 DROP 再 CREATE
DROP
TABLE
IF
EXISTS
SYS_ORG
;
CREATE
TABLE
SYS_ORG
(
JGBM
VARCHAR
(
18
)
NOT
NULL
,
JGMC
VARCHAR
(
300
)
NOT
NULL
,
JGJC
VARCHAR
(
60
)
NULL
,
YWMC
VARCHAR
(
60
)
NULL
,
JGDM
VARCHAR
(
20
)
NOT
NULL
,
FZR
VARCHAR
(
20
)
NOT
NULL
,
JGLB
VARCHAR
(
4
)
NOT
NULL
,
JGXZJB
VARCHAR
(
2
)
NOT
NULL
,
JGLSCJ
VARCHAR
(
2
)
NOT
NULL
,
SJSFXZZGJG
VARCHAR
(
18
)
NOT
NULL
,
LXDH
VARCHAR
(
40
)
NULL
,
CZHM
VARCHAR
(
40
)
NULL
,
DZYX
VARCHAR
(
60
)
NULL
,
XZQHDM
VARCHAR
(
6
)
NOT
NULL
,
DZ
VARCHAR
(
200
)
NULL
,
JD
DECIMAL
(
12
,
4
)
NULL
,
WD
DECIMAL
(
12
,
4
)
NULL
,
ORG_STATUS
TINYINT
NOT
NULL
DEFAULT
1
,
DELETED
TINYINT
NOT
NULL
DEFAULT
0
,
CREATE_BY
VARCHAR
(
64
)
NULL
,
CREATE_TIME
DATETIME
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
,
UPDATE_BY
VARCHAR
(
64
)
NULL
,
UPDATE_TIME
DATETIME
NULL
,
PRIMARY
KEY
(
JGBM
)
);
COMMENT
ON
TABLE
SYS_ORG
IS
'司法行政机关基础信息(标准表3)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGBM
IS
'机构编码(主键)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGMC
IS
'机构名称'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGJC
IS
'机构简称'
;
COMMENT
ON
COLUMN
SYS_ORG
.
YWMC
IS
'英文名称'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGDM
IS
'机构代码(业务唯一)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
FZR
IS
'负责人'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGLB
IS
'机构类别'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGXZJB
IS
'机构行政级别'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGLSCJ
IS
'机构隶属层级'
;
COMMENT
ON
COLUMN
SYS_ORG
.
SJSFXZZGJG
IS
'上级司法行政机关编码'
;
COMMENT
ON
COLUMN
SYS_ORG
.
LXDH
IS
'联系电话'
;
COMMENT
ON
COLUMN
SYS_ORG
.
CZHM
IS
'传真号码'
;
COMMENT
ON
COLUMN
SYS_ORG
.
DZYX
IS
'电子邮箱'
;
COMMENT
ON
COLUMN
SYS_ORG
.
XZQHDM
IS
'行政区划代码'
;
COMMENT
ON
COLUMN
SYS_ORG
.
DZ
IS
'地址'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JD
IS
'经度'
;
COMMENT
ON
COLUMN
SYS_ORG
.
WD
IS
'纬度'
;
COMMENT
ON
COLUMN
SYS_ORG
.
ORG_STATUS
IS
'状态(0停用 1正常)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
DELETED
IS
'逻辑删除(0未删 1已删)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
CREATE_BY
IS
'创建者'
;
COMMENT
ON
COLUMN
SYS_ORG
.
CREATE_TIME
IS
'创建时间'
;
COMMENT
ON
COLUMN
SYS_ORG
.
UPDATE_BY
IS
'更新者'
;
COMMENT
ON
COLUMN
SYS_ORG
.
UPDATE_TIME
IS
'更新时间'
;
CREATE
UNIQUE
INDEX
UK_SYS_ORG_JGDM
ON
SYS_ORG
(
JGDM
,
DELETED
);
CREATE
INDEX
IDX_SYS_ORG_PARENT
ON
SYS_ORG
(
SJSFXZZGJG
,
DELETED
);
CREATE
INDEX
IDX_SYS_ORG_AREA
ON
SYS_ORG
(
XZQHDM
);
CREATE
INDEX
IDX_SYS_ORG_NAME
ON
SYS_ORG
(
JGMC
);
CREATE
INDEX
IDX_SYS_ORG_STATUS
ON
SYS_ORG
(
ORG_STATUS
,
DELETED
);
\ No newline at end of file
05-dev-env/code/platform/sql/create_video_dev.sql
0 → 100644
View file @
2525f48a
-- 58 视频设备(司法所视频设备/摄像头台账)
CREATE
TABLE
IF
NOT
EXISTS
video_dev
(
VID
VARCHAR
(
32
)
NOT
NULL
,
DEV_NAME
VARCHAR
(
100
)
NOT
NULL
,
DEV_IP
VARCHAR
(
50
)
NOT
NULL
,
CHANNEL
INT
NOT
NULL
,
JGBM
VARCHAR
(
18
)
NULL
,
LOCATION
VARCHAR
(
200
)
NULL
,
DEV_STATUS
TINYINT
NULL
,
CREATE_TIME
DATETIME
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
,
PRIMARY
KEY
(
VID
)
);
COMMENT
ON
TABLE
video_dev
IS
'司法所视频设备(需求扩展)'
;
05-dev-env/code/platform/sql/sys_org_menu.sql
0 → 100644
View file @
2525f48a
-- 司法行政机构管理菜单及按钮权限(达梦8 / JZ_TEST)
-- 请在 sys_menu 中确认父菜单 ID,默认挂载在「系统管理(1)」下,可按需调整 parent_id
-- 主菜单(menu_id 请按环境调整,避免冲突)
INSERT
INTO
sys_menu
(
menu_id
,
menu_name
,
parent_id
,
order_num
,
path
,
component
,
query
,
route_name
,
is_frame
,
is_cache
,
menu_type
,
visible
,
status
,
perms
,
icon
,
create_by
,
create_time
,
update_by
,
update_time
,
remark
)
VALUES
(
2100
,
'司法行政机构'
,
1
,
10
,
'org'
,
'busi/org/index'
,
''
,
''
,
1
,
0
,
'C'
,
'0'
,
'0'
,
'busi:org:list'
,
'tree'
,
'admin'
,
SYSDATE
,
''
,
NULL
,
'司法行政机构管理菜单'
);
-- 按钮权限
INSERT
INTO
sys_menu
(
menu_id
,
menu_name
,
parent_id
,
order_num
,
path
,
component
,
query
,
route_name
,
is_frame
,
is_cache
,
menu_type
,
visible
,
status
,
perms
,
icon
,
create_by
,
create_time
,
update_by
,
update_time
,
remark
)
VALUES
(
2101
,
'机构查询'
,
2100
,
1
,
'#'
,
''
,
''
,
''
,
1
,
0
,
'F'
,
'0'
,
'0'
,
'busi:org:query'
,
'#'
,
'admin'
,
SYSDATE
,
''
,
NULL
,
''
);
INSERT
INTO
sys_menu
(
menu_id
,
menu_name
,
parent_id
,
order_num
,
path
,
component
,
query
,
route_name
,
is_frame
,
is_cache
,
menu_type
,
visible
,
status
,
perms
,
icon
,
create_by
,
create_time
,
update_by
,
update_time
,
remark
)
VALUES
(
2102
,
'机构新增'
,
2100
,
2
,
'#'
,
''
,
''
,
''
,
1
,
0
,
'F'
,
'0'
,
'0'
,
'busi:org:add'
,
'#'
,
'admin'
,
SYSDATE
,
''
,
NULL
,
''
);
INSERT
INTO
sys_menu
(
menu_id
,
menu_name
,
parent_id
,
order_num
,
path
,
component
,
query
,
route_name
,
is_frame
,
is_cache
,
menu_type
,
visible
,
status
,
perms
,
icon
,
create_by
,
create_time
,
update_by
,
update_time
,
remark
)
VALUES
(
2103
,
'机构修改'
,
2100
,
3
,
'#'
,
''
,
''
,
''
,
1
,
0
,
'F'
,
'0'
,
'0'
,
'busi:org:edit'
,
'#'
,
'admin'
,
SYSDATE
,
''
,
NULL
,
''
);
INSERT
INTO
sys_menu
(
menu_id
,
menu_name
,
parent_id
,
order_num
,
path
,
component
,
query
,
route_name
,
is_frame
,
is_cache
,
menu_type
,
visible
,
status
,
perms
,
icon
,
create_by
,
create_time
,
update_by
,
update_time
,
remark
)
VALUES
(
2104
,
'机构删除'
,
2100
,
4
,
'#'
,
''
,
''
,
''
,
1
,
0
,
'F'
,
'0'
,
'0'
,
'busi:org:remove'
,
'#'
,
'admin'
,
SYSDATE
,
''
,
NULL
,
''
);
-- 为超级管理员角色授权(role_id=1)
INSERT
INTO
sys_role_menu
(
role_id
,
menu_id
)
VALUES
(
1
,
2100
);
INSERT
INTO
sys_role_menu
(
role_id
,
menu_id
)
VALUES
(
1
,
2101
);
INSERT
INTO
sys_role_menu
(
role_id
,
menu_id
)
VALUES
(
1
,
2102
);
INSERT
INTO
sys_role_menu
(
role_id
,
menu_id
)
VALUES
(
1
,
2103
);
INSERT
INTO
sys_role_menu
(
role_id
,
menu_id
)
VALUES
(
1
,
2104
);
05-dev-env/code/platform/sql/update_sys_org_comments.sql
0 → 100644
View file @
2525f48a
-- 更新 SYS_ORG 表及字段中文注释(达梦8 / JZ_TEST)
COMMENT
ON
TABLE
SYS_ORG
IS
'司法行政机关基础信息(标准表3)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGBM
IS
'机构编码(主键)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGMC
IS
'机构名称'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGJC
IS
'机构简称'
;
COMMENT
ON
COLUMN
SYS_ORG
.
YWMC
IS
'英文名称'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGDM
IS
'机构代码(业务唯一)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
FZR
IS
'负责人'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGLB
IS
'机构类别'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGXZJB
IS
'机构行政级别'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JGLSCJ
IS
'机构隶属层级'
;
COMMENT
ON
COLUMN
SYS_ORG
.
SJSFXZZGJG
IS
'上级司法行政机关编码'
;
COMMENT
ON
COLUMN
SYS_ORG
.
LXDH
IS
'联系电话'
;
COMMENT
ON
COLUMN
SYS_ORG
.
CZHM
IS
'传真号码'
;
COMMENT
ON
COLUMN
SYS_ORG
.
DZYX
IS
'电子邮箱'
;
COMMENT
ON
COLUMN
SYS_ORG
.
XZQHDM
IS
'行政区划代码'
;
COMMENT
ON
COLUMN
SYS_ORG
.
DZ
IS
'地址'
;
COMMENT
ON
COLUMN
SYS_ORG
.
JD
IS
'经度'
;
COMMENT
ON
COLUMN
SYS_ORG
.
WD
IS
'纬度'
;
COMMENT
ON
COLUMN
SYS_ORG
.
ORG_STATUS
IS
'状态(0停用 1正常)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
DELETED
IS
'逻辑删除(0未删 1已删)'
;
COMMENT
ON
COLUMN
SYS_ORG
.
CREATE_BY
IS
'创建者'
;
COMMENT
ON
COLUMN
SYS_ORG
.
CREATE_TIME
IS
'创建时间'
;
COMMENT
ON
COLUMN
SYS_ORG
.
UPDATE_BY
IS
'更新者'
;
COMMENT
ON
COLUMN
SYS_ORG
.
UPDATE_TIME
IS
'更新时间'
;
\ No newline at end of file
10-delivery/plan/智慧矫正平台_WBS与开发计划.xlsx
View file @
2525f48a
No preview for this file type
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论