Commit 2525f48a by xiaowei

修改了wbs工作分配表

parent 44d0238c
---
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**,或在同轮对话内立即修复,禁止提交乱码版本。
---
---
description: 全项目代码通用强制自检清单(与 .cursor/rules/ai-checklist.mdc 同步)
globs: ["**/*.java","**/*.vue","**/*.js","**/*.sql","**/*.xml"]
alwaysApply: true
......
---
---
description: 达梦8 DM8数据库全局规范(与 .cursor/rules 同步)
globs: ["**/*.sql","**/*Mapper.xml","**/domain/**/*.java"]
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
# 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。
- 含中文的新文件禁止提交乱码版本;无法保证编码时先用英文占位并在同轮修复。
---
---
description: 全栈协作规范(与 .cursor/rules/fullstack-collaboration.mdc 同步)
globs: ["**/*.java","**/*.vue","**/*.js","**/*.sql"]
alwaysApply: true
......
---
---
description: Java编码红线(与 .cursor/rules/java-coding-standards.mdc 同步)
globs: ["**/*.java"]
alwaysApply: false
alwaysApply: true
---
# Java 编码红线(RuoYi Cloud)
......
---
---
description: 对象转换规范(与 .cursor/rules/java-convert.mdc 同步)
globs: ["**/*ServiceImpl.java","**/*Controller.java"]
alwaysApply: false
alwaysApply: true
---
# 对象转换规范
......
---
---
description: 枚举与字典同步(与 .cursor/rules/java-dict-enum-sync.mdc 同步)
globs: ["**/*Enum.java","**/*.sql"]
alwaysApply: false
alwaysApply: true
---
# 枚举与数据字典
......
---
---
description: Domain/VO 规范(与 .cursor/rules/java-do-vo.mdc 同步)
globs: ["**/domain/**/*.java"]
alwaysApply: false
alwaysApply: true
---
# Domain 实体规范
......
---
---
description: 业务异常规范(与 .cursor/rules/java-error-code.mdc 同步)
globs: ["**/*ServiceImpl.java"]
alwaysApply: false
alwaysApply: true
---
# 业务异常规范
......
---
---
description: 防重复提交规范(与 .cursor/rules/java-idempotent.mdc 同步)
globs: ["**/*Controller.java","**/*.vue"]
alwaysApply: false
alwaysApply: true
---
# 防重复提交规范
......
---
---
description: Mapper 与 XML 规范(与 .cursor/rules/java-mapper.mdc 同步)
globs: ["**/*Mapper.java","**/*Mapper.xml"]
alwaysApply: false
alwaysApply: true
---
# Mapper 层规范(MyBatis + 达梦 8)
......
---
---
description: 命名规范(与 .cursor/rules/java-naming.mdc 同步)
globs: ["**/*.java","**/*.sql"]
alwaysApply: false
alwaysApply: true
---
# 命名规范
......
---
---
description: 操作日志 @Log 规范(与 .cursor/rules/java-operate-log.mdc 同步)
globs: ["**/*Controller.java"]
alwaysApply: false
alwaysApply: true
---
# 操作日志规范(@Log)
......
---
---
description: RuoYi Cloud 工程架构(与 .cursor/rules/java-architecture.mdc 同步)
globs: ["**/*.java","**/pom.xml"]
alwaysApply: false
alwaysApply: true
---
# RuoYi Cloud 3.6.8 架构
......
---
---
description: Controller/Service 规范(与 .cursor/rules/java-service-controller.mdc 同步)
globs: ["**/controller/**/*.java","**/service/**/*.java"]
alwaysApply: false
alwaysApply: true
---
# Controller & Service 规范(RuoYi Cloud)
......
---
---
description: ruoyi-ui 前端规范(与 .cursor/rules/vue-frontend.mdc 同步)
globs: ["**/ruoyi-ui/**/*.vue","**/ruoyi-ui/**/*.js"]
alwaysApply: false
alwaysApply: true
---
# 前端规范(Vue2 + Element UI)
......
# 智慧矫正项目强制约束(RuoYi Cloud 3.6.8)
---
---
description: 智慧矫正项目强制约束(RuoYi Cloud + 达梦DM8)
globs: ["**/*.java","**/*.vue","**/*.js","**/*.sql","**/*.xml"]
alwaysApply: true
---
# 智慧矫正项目强制约束(RuoYi Cloud 3.6.8)
> 详细规则见 `.cursor/rules/`,本文件为摘要。
......
{
"java.compile.nullAnalysis.mode": "automatic",
"java.configuration.updateBuildConfiguration": "automatic"
"java.configuration.updateBuildConfiguration": "automatic",
"files.encoding": "utf8"
}
\ No newline at end of file
......@@ -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>
......
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:";
}
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
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();
}
}
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;
}
}
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;
}
}
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;
}
}
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;
}
}
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
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);
}
<?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>
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);
}
}
-- 司法行政机构管理 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
-- 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 '司法所视频设备(需求扩展)';
-- 司法行政机构管理菜单及按钮权限(达梦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);
-- 更新 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
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论