This commit is contained in:
zlwu committed 2025-07-26 17:54:01 +08:00
1 parent 3b3d2bb157
commit 94f07a059b
69 files changed
+2787 -643

No files matched your search

@@ -0,0 +1,141 @@
# 学生信息管理-宿舍楼栋字段优化变更记录
## 📅 变更信息
- **变更日期**: 2025-01-01
- **变更人员**: AI Assistant
- **变更类型**: 功能优化
- **影响模块**: 学生信息管理 - 新增/编辑弹窗
## 🎯 变更目标
优化学生信息管理中的宿舍楼栋字段,从手动输入改为通过API获取的树形下拉选择,并为楼栋名称添加性别标识。
## 📋 变更内容
### 1. 前端页面修改
**文件**: `web/src/views/studentMsg/studentMsg/index.vue`
#### 1.1 添加状态变量
```typescript
const dormBuildingOptions = ref([]); // 宿舍楼栋选项
```
#### 1.2 新增API调用函数
```typescript
/** 获取宿舍楼栋树形数据 */
const getDormBuildingTree = async () => {
try {
const res = await service.get('/xgss/dormBuildingTree/list');
if (res && res.data) {
// 处理数据,为楼栋名称添加性别标识
const processTreeData = (nodes: any[]): any[] => {
return nodes.map(node => {
const processedNode = { ...node };
// 如果是楼栋类型,添加性别标识
if (node.type === 'building' && node.buildingType) {
const genderPrefix = node.buildingType === 1 ? '(男)' : node.buildingType === 2 ? '(女)' : '';
processedNode.label = genderPrefix + node.label;
processedNode.name = genderPrefix + node.name;
}
// 递归处理子节点
if (node.children && node.children.length > 0) {
processedNode.children = processTreeData(node.children);
}
return processedNode;
});
};
dormBuildingOptions.value = processTreeData(res.data);
}
} catch (error) {
console.error('获取宿舍楼栋数据失败:', error);
ElMessage.error('获取宿舍楼栋数据失败');
}
};
```
#### 1.3 宿舍楼栋字段改为树形选择器
**位置**: 学籍信息Tab
```vue
<el-form-item label="宿舍楼栋" prop="dormitoryBuilding">
<el-tree-select
v-model="form.dormitoryBuilding"
:data="dormBuildingOptions"
:props="{
label: 'label',
value: 'id',
children: 'children',
disabled: (data) => data.type !== 'building'
}"
:check-strictly="true"
:render-after-expand="false"
placeholder="请选择宿舍楼栋"
filterable
clearable
style="width: 100%"
/>
</el-form-item>
```
#### 1.4 组件初始化调用
```typescript
onMounted(() => {
getDeptTree(); // 初始化部门数据
getRegionTree(); // 初始化行政区划数据
getDormBuildingTree(); // 初始化宿舍楼栋数据 - 新增
getList(); // 初始化列表数据
});
```
## 🔧 技术实现要点
### 1. API接口
- **URL**: `/xgss/dormBuildingTree/list`
- **方法**: GET
- **入参**: 无
- **返回**: 树形结构的宿舍楼栋数据
### 2. 数据处理逻辑
- 根据 `buildingType` 字段添加性别标识:
- `buildingType = 1`: 添加"(男)"前缀
- `buildingType = 2`: 添加"(女)"前缀
- 递归处理树形数据结构
- 保持原有数据结构不变,仅添加前缀
### 3. 选择限制
- 只能选择 `type === 'building'` 的节点
- 其他类型节点自动禁用
- 支持搜索过滤功能
## ✅ 功能验证
### 1. 界面功能
- [x] 宿舍楼栋字段显示为树形下拉选择器
- [x] 楼栋名称正确显示性别标识
- [x] 只能选择楼栋类型节点
- [x] 支持搜索和清空功能
### 2. 数据交互
- [x] API正确调用
- [x] 数据正确解析和处理
- [x] 树形结构正确显示
- [x] 选择值正确保存
## 🎯 预期效果
1. **用户体验优化**: 从手动输入改为选择,减少输入错误
2. **数据标准化**: 确保宿舍楼栋数据的规范性和一致性
3. **性别标识**: 清晰显示楼栋的性别属性,便于管理
4. **数据准确性**: 通过API获取最新的楼栋信息
## 📝 注意事项
1. 确保后端API `/xgss/dormBuildingTree/list` 正常可用
2. 数据结构需包含 `type`、`buildingType`、`label`、`id` 等字段
3. 如果API调用失败,会显示错误提示信息
4. 选择器支持键盘导航和筛选功能
## 🔄 后续优化建议
1. 可考虑添加楼栋可用性状态显示
2. 可添加楼栋详细信息预览功能
3. 可根据学生性别自动过滤对应性别的楼栋
@@ -0,0 +1,107 @@
# 学生信息管理用户验证逻辑修复记录
**修复时间**: 2025-01-01 14:30:00
**修复人员**: AI Assistant
**影响模块**: 学工管理 - 学生信息管理
**修复类型**: 代码错误修复
## 问题描述
XgStudentMsgController中的add方法存在多个代码错误:
1. **变量名错误**: 使用了未定义的`user`变量,应该使用参数`bo`
2. **导入缺失**: 缺少`StringUtils`和`SysUserBo`的导入
3. **服务未注入**: 引用了`tenantService`但未正确注入`ISysTenantService`
4. **方法调用错误**: 用户验证方法需要`SysUserBo`对象参数,而不是`String`
## 错误代码片段
```java
// 错误的代码
if (!userService.checkUserNameUnique(user)) {
return R.fail("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
}
```
## 修复方案
### 1. 添加必要的导入
```java
import org.dromara.common.core.utils.StringUtils;
import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.service.ISysTenantService;
```
### 2. 注入租户服务
```java
private final ISysTenantService tenantService;
```
### 3. 修正用户验证逻辑
```java
// 验证学号作为用户名的唯一性
if (StringUtils.isNotBlank(bo.getStudentNo())) {
SysUserBo tempUser = new SysUserBo();
tempUser.setUserName(bo.getStudentNo());
if (!userService.checkUserNameUnique(tempUser)) {
return R.fail("新增学生'" + bo.getName() + "'失败,学号'" + bo.getStudentNo() + "'已被使用作为登录账号");
}
}
// 验证手机号唯一性(如果提供了手机号)
if (StringUtils.isNotBlank(bo.getPhone())) {
SysUserBo tempUser = new SysUserBo();
tempUser.setPhonenumber(bo.getPhone());
if (!userService.checkPhoneUnique(tempUser)) {
return R.fail("新增学生'" + bo.getName() + "'失败,手机号码'" + bo.getPhone() + "'已存在");
}
}
// 验证邮箱唯一性(如果提供了邮箱)
if (StringUtils.isNotBlank(bo.getEmail())) {
SysUserBo tempUser = new SysUserBo();
tempUser.setEmail(bo.getEmail());
if (!userService.checkEmailUnique(tempUser)) {
return R.fail("新增学生'" + bo.getName() + "'失败,邮箱账号'" + bo.getEmail() + "'已存在");
}
}
```
## 修复文件列表
- `backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgStudentMsgController.java`
## 修复效果
1. ✅ **编译错误解决**: 消除了所有编译错误
2. ✅ **逻辑正确**: 用户验证逻辑适配学生信息的字段(学号、手机号、邮箱)
3. ✅ **错误消息优化**: 错误提示信息更加清晰和用户友好
4. ✅ **服务注入完整**: 租户服务正确注入,支持多租户用户额度检查
## 业务逻辑说明
此修复确保了学生信息创建时的用户验证机制正常工作:
1. **学号唯一性**: 学号将作为系统用户名,必须保证唯一性
2. **联系方式唯一性**: 手机号和邮箱在系统中必须唯一(如果提供)
3. **租户额度检查**: 在多租户环境下检查用户创建额度
4. **自动用户创建**: 通过验证后,Service层会自动为学生创建对应的系统用户账号
## 关联说明
该验证逻辑与`XgStudentMsgServiceImpl.insertByBo`方法中的用户创建逻辑配套使用,确保数据一致性和业务完整性。
## 测试建议
1. 测试学号重复时的错误提示
2. 测试手机号重复时的错误提示
3. 测试邮箱重复时的错误提示
4. 测试多租户环境下的用户额度限制
5. 测试正常学生信息创建和用户账号自动生成
---
**备注**: 此次修复遵循了项目的编码规范和错误处理标准,确保了学生信息管理模块的稳定性和可靠性。
@@ -0,0 +1,117 @@
# 学生用户操作限制功能开发记录
**变更时间**: 2025-01-01 14:30:00
**开发者**: Cursor AI
**变更类型**: 功能增强
**影响模块**: 系统管理-用户管理
## 变更概述
在用户管理界面中,当用户的 `accountType` 为 "2"(学生用户)时,禁用所有管理操作,包括修改、删除、状态调整、重置密码、分配角色等。
## 详细变更内容
### 1. 前端类型定义更新
**文件**: `web/src/api/system/user/types.ts`
- 在 `UserVO` 接口中添加 `accountType: string` 字段
### 2. 用户管理页面功能限制
**文件**: `web/src/views/system/user/index.vue`
#### 2.1 新增计算属性
- `isSelectedStudentUser`: 判断选中的单个用户是否为学生用户
- `hasSelectedStudentUser`: 判断选中的用户中是否包含学生用户
#### 2.2 批量操作按钮限制
- **修改按钮**: 当选中学生用户时禁用 (`isSelectedStudentUser`)
- **删除按钮**: 当选中用户包含学生用户时禁用 (`hasSelectedStudentUser`)
#### 2.3 表格操作限制
- **状态开关**: 学生用户的状态开关设为禁用状态
- **行操作按钮**: 学生用户隐藏所有操作按钮(修改、删除、重置密码、分配角色)
- **学生用户标识**: 在操作列显示"学生用户"文字提示
#### 2.4 操作函数校验
- `handleDelete()`: 检查并阻止删除学生用户
- `handleStatusChange()`: 检查并阻止修改学生用户状态
- `handleAuthRole()`: 检查并阻止为学生用户分配角色
- `handleResetPwd()`: 检查并阻止重置学生用户密码
- `handleUpdate()`: 检查并阻止修改学生用户信息
#### 2.5 用户体验优化
- 所有被禁止的操作都会显示友好的错误提示信息
- 学生用户在操作列显示"学生用户"标识,鼠标悬停显示"学生用户不允许操作"提示
## 技术实现要点
### 条件判断逻辑
```javascript
// 单个学生用户判断
scope.row.accountType === '2'
// 批量操作中包含学生用户判断
selectedUsers.value.some(user => user.accountType === '2')
```
### 状态开关禁用
```vue
<el-switch
v-model="scope.row.status"
active-value="0"
inactive-value="1"
:disabled="scope.row.accountType === '2'"
@change="handleStatusChange(scope.row)"
></el-switch>
```
### 操作按钮条件显示
```vue
<el-tooltip v-if="scope.row.userId !== 1 && scope.row.accountType !== '2'" content="修改" placement="top">
<el-button v-hasPermi="['system:user:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
</el-tooltip>
```
## 功能验证
### 测试场景
1. ✅ 学生用户状态开关被禁用
2. ✅ 学生用户不显示修改、删除、重置密码、分配角色按钮
3. ✅ 选中学生用户时批量修改按钮被禁用
4. ✅ 选中包含学生用户的多个用户时批量删除按钮被禁用
5. ✅ 所有被禁止的操作都显示友好提示信息
6. ✅ 学生用户在操作列显示"学生用户"标识
### 错误提示信息
- "学生用户不允许删除操作"
- "学生用户不允许修改状态"
- "学生用户不允许分配角色操作"
- "学生用户不允许重置密码操作"
- "学生用户不允许修改操作"
- "选中的用户中包含学生用户,不允许删除操作"
## 影响范围
### 直接影响
- 系统管理员无法通过用户管理界面修改学生用户信息
- 学生用户的账号状态无法通过界面调整
- 学生用户无法被删除、重置密码或分配角色
### 兼容性
- 保持了对管理员用户(userId === 1)的原有保护逻辑
- 不影响非学生用户的正常管理功能
- 向下兼容,对没有 accountType 字段的用户不影响
## 后续优化建议
1. 考虑添加学生用户专用的管理界面,提供受限的编辑功能
2. 可以考虑增加配置项,允许超级管理员临时开启学生用户的管理权限
3. 添加学生用户批量导入/导出功能的特殊处理逻辑
## 相关文档
- API文档: `docs/开发文档/API/用户认证登录API.md`
- 数据库设计: `docs/设计文档/database/mysql-database-standard.md`
- 前端开发规范: `.cursor/cursorrules-frontend.md`
@@ -0,0 +1,120 @@
# 代码调整记录 - 2025-01-01 - system
## 2025-01-01 23:xx:xx - 学生信息管理表单只读字段优化
### 变更内容
优化学生信息新增/编辑表单中自动填充字段的显示效果,将从班级信息自动填充的字段设置为只读状态。
### 修改文件
- `web/src/views/studentMsg/studentMsg/index.vue`
### 具体修改
1. **班级信息相关字段设置为disabled状态**:
- 班级名称 (className) - 改为disabled
- 学院名称 (collegeName) - 改为disabled
- 专业名称 (majorName) - 改为disabled
- 班主任姓名 (classTeacherName) - 改为disabled
2. **学籍信息相关字段设置为disabled状态**:
- 学历层次 (academicLevel) - 改为disabled
- 年级 (grade) - 改为disabled
- 入学年份 (enrollmentYear) - 改为disabled
- 学制 (schoolSystem) - 改为disabled
### 变更原因
- 这些字段在新增学生时从选中的班级信息自动填充
- 设置为disabled状态可以明确告知用户这些字段是自动填充的
- 防止用户误操作导致数据不一致
- 提供更好的用户体验,明确区分可编辑和不可编辑字段
### 技术影响
- 提升表单的用户体验
- 确保数据一致性
- 视觉上明确区分自动填充字段和手动输入字段
### 测试要点
- 新增学生时,从班级树选择班级后,相关字段应正确填充且显示为disabled状态
- 编辑学生时,这些字段应保持可编辑状态(因为可能需要修正数据)
---
## 📋 变更概览
- **日期**: 2025-01-01
- **操作员**: system
- **变更类型**: 功能优化
- **影响模块**: 学工管理-学生信息管理
---
## 🎯 本次变更
### 2025-01-01 12:30:00 - 学生信息管理页面新增按钮条件显示
**变更文件**:
- `web/src/views/studentMsg/studentMsg/index.vue`
**变更内容**:
1. **新增响应式变量**:
- 添加 `currentSelectedNode` 用于存储当前选中的部门节点信息
2. **新增计算属性**:
- 添加 `showAddButton` 计算属性,判断是否显示新增按钮
- 判断逻辑:只有当 `deptCategory` 以 "bj-" 开头时才显示新增按钮
3. **修改节点点击事件**:
- 在 `handleNodeClick` 方法中保存当前选中的节点信息到 `currentSelectedNode`
4. **修改新增按钮显示**:
- 在新增按钮的 `el-col` 组件上添加 `v-if="showAddButton"` 条件
5. **修改重置操作**:
- 在 `resetQuery` 方法中清空 `currentSelectedNode` 以隐藏新增按钮
**技术实现**:
```vue
// 1. 导入 computed 函数
import { getCurrentInstance, ref, reactive, toRefs, watchEffect, onMounted, computed } from 'vue';
// 2. 新增变量和计算属性
const currentSelectedNode = ref<any>(null);
const showAddButton = computed(() => {
if (!currentSelectedNode.value) {
return false;
}
return currentSelectedNode.value.deptCategory && currentSelectedNode.value.deptCategory.startsWith('bj-');
});
// 3. 修改模板
<el-col :span="1.5" v-if="showAddButton">
<el-button type="primary" plain icon="Plus" @click="handleAdd()">新增</el-button>
</el-col>
```
**业务价值**:
- 🎯 **权限控制**: 确保只有在班级节点才能新增学生,符合业务逻辑
- 🔒 **数据安全**: 防止在错误的组织层级下创建学生数据
- 👥 **用户体验**: 清晰的界面提示,避免用户在非班级节点进行无效操作
- 📊 **数据完整性**: 确保学生数据与正确的班级关联
**测试建议**:
1. 点击非班级节点,确认新增按钮隐藏
2. 点击班级节点(deptCategory 以 bj- 开头),确认新增按钮显示
3. 执行重置操作,确认新增按钮隐藏
4. 测试新增学生功能正常
---
## 📝 技术规范遵循
✅ **前端开发规范**: 遵循 Vue 3 Composition API 规范
✅ **响应式设计**: 使用 computed 实现响应式显示逻辑
✅ **代码清洁**: 添加详细注释说明业务逻辑
✅ **用户体验**: 条件显示提升界面友好性
---
## 🔗 相关文档
- **前端开发规范**: `.cursor/cursorrules-frontend.md`
- **学生信息管理API**: `docs/开发文档/API/学生信息管理API.md`
- **项目规范总览**: `.cursor/rules.md`
@@ -23,14 +23,14 @@
### 1. 性别字段数据不一致问题
**问题描述**:
- 数据库表:`gender char(1) COMMENT '性别(M-男 F-女)'`
- 数据库表:`gender char(1) COMMENT '性别(0-男 1-女)'`
- 前端原始使用:`sys_user_sex`字典(0-男 1-女 2-未知)
- 导致新增时提示"性别必须是F"的错误
**根本原因**: 前后端性别数据格式不统一
**修复方案**:
- 创建专用字典:`zsjy_gender`(M-男 F-女)
- 创建专用字典:`zsjy_gender`(0-男 1-女)
- 更新前端页面使用新字典
- 修正身份证自动识别输出M/F格式
@@ -105,7 +105,7 @@ form.value.gender = genderCode % 2 === 1 ? 'M' : 'F';
| `id` | bigint(20) | NOT NULL | 主键ID | ✅ 正常 |
| `name` | varchar(50) | NOT NULL | 姓名 | ✅ 正常 |
| `id_card` | varchar(18) | NOT NULL | 身份证号 | ✅ 正常 |
| `gender` | char(1) | NOT NULL | 性别(M-男 F-女) | ✅ 已修复 |
| `gender` | char(1) | NOT NULL | 性别(0-男 1-女) | ✅ 已修复 |
| `is_boarding` | tinyint(1) | DEFAULT 0 | 是否住校(0-否 1-是) | ✅ 正常 |
| `birth_date` | date | NULL | 出生年月 | ✅ 正常 |
| `phone1` | varchar(20) | NOT NULL | 联系手机号码1 | ✅ 正常 |
@@ -21,7 +21,7 @@
### 1. 性别字段显示问题
**问题描述**:
- 数据库表定义:`gender char(1) COMMENT '性别(M-男 F-女)'`
- 数据库表定义:`gender char(1) COMMENT '性别(0-男 1-女)'`
- 前端使用:`zsjy_gender`字典
- 但字典数据标签值可能被改动或未正确配置,导致显示代码而非文字
@@ -0,0 +1,131 @@
# 代码调整记录 - 2025-07-24 - Cursor
## 📋 调整概览
- **调整日期**: 2025-07-24 10:30:00
- **调整人员**: Cursor AI
- **调整模块**: 系统管理 - 用户信息管理
- **调整类型**: 功能增强
---
## 🎯 本次调整
### 1. 用户信息更新同步学生信息功能
**文件**: `backend/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java`
#### 调整内容
1. **导入新增**:
- 添加 `JdbcTemplate` 相关导入
- 添加 `@Autowired` 注解导入
2. **依赖注入**:
```java
@Autowired
private JdbcTemplate jdbcTemplate;
```
3. **方法增强**: `updateUserProfile()` 方法
- 添加 `@Transactional` 事务控制
- 新增学生信息同步逻辑
- 当 `accountType = "2"` 时自动更新 `xg_student_msg` 表
#### 实现逻辑
```java
// 判断账号类型为学生(accountType = "2")时,同步更新学生信息表
if ("2".equals(user.getAccountType()) && result > 0) {
try {
String updateSql = "UPDATE xg_student_msg SET " +
"name = ?, email = ?, gender = ?, phone = ?, update_time = NOW() " +
"WHERE id = ? AND deleted = 0";
jdbcTemplate.update(updateSql,
user.getNickName(), // 昵称对应学生姓名
user.getEmail(), // 邮箱
user.getSex(), // 性别
user.getPhonenumber(), // 手机号
user.getUserId() // 用户ID对应学生ID
);
} catch (Exception e) {
// 异常处理和日志记录
}
}
```
#### 字段映射关系
| 用户表字段 | 学生表字段 | 说明 |
|-----------|-----------|------|
| `nickName` | `name` | 用户昵称 → 学生姓名 |
| `email` | `email` | 邮箱地址 |
| `sex` | `gender` | 性别信息 |
| `phonenumber` | `phone` | 手机号码 |
| `userId` | `id` | 用户ID → 学生ID |
---
## ✅ 功能特性
### 🔐 安全控制
- ✅ **条件判断**: 仅当 `accountType = "2"` 时执行同步
- ✅ **事务控制**: 确保数据一致性
- ✅ **异常隔离**: 学生信息更新失败不影响用户信息更新
### 📊 数据同步
- ✅ **实时同步**: 用户信息更新时自动同步学生信息
- ✅ **逻辑删除**: 仅更新未删除的学生记录 (`deleted = 0`)
- ✅ **时间戳**: 自动更新修改时间
### 📝 操作日志
- ✅ **成功日志**: 记录同步成功信息
- ✅ **错误日志**: 记录同步失败详情
- ✅ **用户ID**: 便于问题排查
---
## 🧪 测试建议
### 测试场景
1. **正常场景**: 学生用户(`accountType = "2"`)更新个人信息
2. **条件验证**: 非学生用户更新信息时不触发同步
3. **异常处理**: 学生表不存在对应记录时的处理
4. **事务验证**: 确保同步失败时不影响用户信息更新
### 测试数据
```sql
-- 测试用户数据 (accountType = "2")
UPDATE sys_user SET account_type = '2' WHERE user_id = 123;
-- 对应学生数据
SELECT * FROM xg_student_msg WHERE id = 123;
```
---
## 📖 相关文档
### 更新的文档
- 需要更新: API文档 - 用户信息管理部分
- 需要更新: 学生信息管理相关文档
### 参考规范
- 数据库规范: `docs/设计文档/database/mysql-database-standard.md`
- 后端开发规范: `.cursor/cursorrules-backend.md`
---
## 🔄 后续计划
### 优化建议
1. **性能优化**: 考虑批量更新场景的优化
2. **监控告警**: 添加同步失败的监控机制
3. **配置化**: 将同步逻辑配置化,支持开关控制
### 扩展功能
1. **双向同步**: 考虑学生信息更新时反向同步用户信息
2. **字段扩展**: 支持更多字段的自动同步
3. **异步同步**: 对于非关键更新采用异步同步机制
---
**✅ 调整状态**: 已完成
**🔍 验证状态**: 待测试
**📝 文档状态**: 已记录
@@ -74,7 +74,7 @@ public TableDataInfo<ZsjyEnrollmentProcessVo> queryPageList(ZsjyEnrollmentProces
```java
/**
* 性别(M-男 F-女)- 从enrollment_info表获取
* 性别(0-男 1-女)- 从enrollment_info表获取
*/
private String gender;
@@ -42,7 +42,7 @@
| studentNo | string | 否 | 学号 |
| name | string | 否 | 姓名(模糊查询) |
| idCard | string | 否 | 身份证号 |
| gender | string | 否 | 性别:M-男,F-女 |
| gender | string | 否 | 性别:0-男,1-女 |
| studentStatus | string | 否 | 学籍状态 |
| enrollmentYear | integer | 否 | 入学年份 |
| majorCode | string | 否 | 专业代码 |
@@ -51,7 +51,7 @@
| pageSize | Integer | 是 | 每页记录数 |
| name | String | 否 | 姓名,支持模糊查询 |
| idCard | String | 否 | 身份证号 |
| gender | String | 否 | 性别(M-男 F-女) |
| gender | String | 否 | 性别(0-男 1-女) |
| examNumber | String | 否 | 准考证号 |
| phone1 | String | 否 | 联系电话 |
| examRegion | String | 否 | 中考地区 |
@@ -67,7 +67,7 @@
| id | Long | 主键ID |
| name | String | 姓名 |
| idCard | String | 身份证号 |
| gender | String | 性别(M-男 F-女) |
| gender | String | 性别(0-男 1-女) |
| phone1 | String | 联系电话 |
| examNumber | String | 准考证号 |
| examRegion | String | 中考地区 |
@@ -99,7 +99,7 @@
| id | Long | 主键ID |
| name | String | 姓名 |
| idCard | String | 身份证号 |
| gender | String | 性别(M-男 F-女) |
| gender | String | 性别(0-男 1-女) |
| isBoarding | Integer | 是否住校(0-否 1-是) |
| birthDate | Date | 出生年月 |
| phone1 | String | 联系电话1 |
@@ -141,7 +141,7 @@
|---------|--------|---------|-----|
| name | String | 是 | 姓名 |
| idCard | String | 是 | 身份证号 |
| gender | String | 是 | 性别(M-男 F-女) |
| gender | String | 是 | 性别(0-男 1-女) |
| isBoarding | Integer | 否 | 是否住校(0-否 1-是) |
| birthDate | Date | 否 | 出生年月 |
| phone1 | String | 是 | 联系电话1 |
@@ -190,7 +190,7 @@
| id | Long | 是 | 主键ID |
| name | String | 是 | 姓名 |
| idCard | String | 是 | 身份证号 |
| gender | String | 是 | 性别(M-男 F-女) |
| gender | String | 是 | 性别(0-男 1-女) |
| isBoarding | Integer | 否 | 是否住校(0-否 1-是) |
| birthDate | Date | 否 | 出生年月 |
| phone1 | String | 是 | 联系电话1 |
@@ -37,7 +37,7 @@ public class EnrollmentInfoVo {
private Long id; // 主键ID
private String name; // 姓名
private String idCard; // 身份证号
private String gender; // 性别(M-男 F-女)
private String gender; // 性别(0-男 1-女)
private Boolean isBoarding; // 是否住校
private Date birthDate; // 出生日期
private String phone1; // 联系手机号码1
@@ -29,7 +29,7 @@ CREATE TABLE `xg_student_info` (
-- 基本信息
`student_id` varchar(32) NOT NULL COMMENT '学号',
`name` varchar(50) NOT NULL COMMENT '姓名',
`gender` char(1) NOT NULL COMMENT '性别:M-男,F-女',
`gender` char(1) NOT NULL COMMENT '性别:0-男,1-女',
`birth_date` date DEFAULT NULL COMMENT '出生日期',
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`nation` varchar(20) DEFAULT NULL COMMENT '民族',
@@ -35,7 +35,7 @@ CREATE TABLE `xg_student_info` (
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`name` varchar(50) NOT NULL COMMENT '姓名',
`name_pinyin` varchar(200) DEFAULT NULL COMMENT '姓名拼音',
`gender` char(1) NOT NULL COMMENT '性别:M-男,F-女',
`gender` char(1) NOT NULL COMMENT '性别:0-男,1-女',
`birth_date` date DEFAULT NULL COMMENT '出生日期',
`nation` varchar(20) DEFAULT NULL COMMENT '民族',
`political_status` varchar(20) DEFAULT NULL COMMENT '政治面貌',
@@ -180,7 +180,7 @@ CREATE TABLE `xg_student_info` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`student_no` varchar(32) NOT NULL COMMENT '学号',
`name` varchar(50) NOT NULL COMMENT '姓名',
`gender` char(1) DEFAULT NULL COMMENT '性别:M-男,F-女',
`gender` char(1) DEFAULT NULL COMMENT '性别:0-男,1-女',
`birth_date` date DEFAULT NULL COMMENT '出生日期',
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`nation` varchar(20) DEFAULT NULL COMMENT '民族',
@@ -182,7 +182,7 @@ CREATE TABLE IF NOT EXISTS `xg_student_info` (
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`name` varchar(50) NOT NULL COMMENT '姓名',
`name_pinyin` varchar(200) DEFAULT NULL COMMENT '姓名拼音',
`gender` char(1) NOT NULL COMMENT '性别:M-男,F-女',
`gender` char(1) NOT NULL COMMENT '性别:0-男,1-女',
`birth_date` date DEFAULT NULL COMMENT '出生日期',
`nation` varchar(20) DEFAULT NULL COMMENT '民族',
`political_status` varchar(20) DEFAULT NULL COMMENT '政治面貌',
@@ -31,7 +31,7 @@ CREATE TABLE `xg_student_info` (
`name_english` varchar(100) DEFAULT NULL COMMENT '英文姓名',
`former_name` varchar(50) DEFAULT NULL COMMENT '曾用名',
`name_pinyin` varchar(200) DEFAULT NULL COMMENT '姓名拼音',
`gender` char(1) NOT NULL COMMENT '性别:M-男,F-女',
`gender` char(1) NOT NULL COMMENT '性别:0-男,1-女',
`birth_date` date DEFAULT NULL COMMENT '出生日期',
`nation` varchar(20) DEFAULT NULL COMMENT '民族',
`political_status` varchar(20) DEFAULT NULL COMMENT '政治面貌',
@@ -39,6 +39,7 @@ CREATE TABLE `xg_class_msg` (
`class_type` varchar(20) DEFAULT '1' COMMENT '班级类型:1-中级工 2-高级工 3-预备技师 4-技师 5-中高职一体',
`grade` varchar(10) NOT NULL COMMENT '年级',
`enrollment_year` int(4) NOT NULL COMMENT '入学年份',
`school_system` int(2) DEFAULT '4' COMMENT '学制(年)',
`graduation_year` int(4) DEFAULT NULL COMMENT '毕业年份',
`training_type` varchar(20) DEFAULT NULL COMMENT '培养方式:全日制,在职,函授,夜大等',
`degree_type` varchar(20) DEFAULT NULL COMMENT '学位类型:学士,硕士,博士,专科',
@@ -31,7 +31,7 @@ CREATE TABLE `zsjy_enrollment_info` (
-- 基本信息
`name` varchar(50) NOT NULL COMMENT '姓名',
`id_card` varchar(18) NOT NULL COMMENT '身份证号',
`gender` char(1) NOT NULL COMMENT '性别(M-男 F-女)',
`gender` char(1) NOT NULL COMMENT '性别(0-男 1-女)',
`is_boarding` tinyint(1) DEFAULT 0 COMMENT '是否住校(0-否 1-是)',
`birth_date` date DEFAULT NULL COMMENT '出生年月',
`phone1` varchar(20) NOT NULL COMMENT '联系手机号码1',
@@ -31,7 +31,7 @@ CREATE TABLE `zsjy_enrollment_info` (
-- 基本信息
`name` varchar(50) NOT NULL COMMENT '姓名',
`id_card` varchar(18) NOT NULL COMMENT '身份证号',
`gender` char(1) NOT NULL COMMENT '性别(M-男 F-女)',
`gender` char(1) NOT NULL COMMENT '性别(0-男 1-女)',
`is_boarding` tinyint(1) DEFAULT 0 COMMENT '是否住校(0-否 1-是)',
`birth_date` date DEFAULT NULL COMMENT '出生年月',
`phone1` varchar(20) NOT NULL COMMENT '联系手机号码1',
@@ -48,7 +48,7 @@ CREATE TABLE `zsjy_enrollment_info` (
-- 基本信息
`name` varchar(50) NOT NULL COMMENT '姓名',
`id_card` varchar(18) NOT NULL COMMENT '身份证号',
`gender` char(1) NOT NULL COMMENT '性别(M-男 F-女)',
`gender` char(1) NOT NULL COMMENT '性别(0-男 1-女)',
`is_boarding` tinyint(1) DEFAULT 0 COMMENT '是否住校(0-否 1-是)',
`birth_date` date DEFAULT NULL COMMENT '出生年月',
`phone1` varchar(20) NOT NULL COMMENT '联系手机号码1',