提交代码到GIT,修改了满意度调查的问卷
This commit is contained in:
1 parent
c809141195
commit
1c8e15cc0f
43 files changed
+3487
-1606
No files matched your search
@@ -0,0 +1,43 @@
|
||||
# 代码调整记录 2025-07-01
|
||||
|
||||
## 基本信息
|
||||
- 日期:2025-07-01 10:30:15
|
||||
- 开发者:Cursor AI
|
||||
- 类型:功能完善
|
||||
|
||||
## 调整内容
|
||||
|
||||
### 1. 完善满意度调查题目选项管理功能
|
||||
|
||||
#### 修改内容
|
||||
- 完善了题目选项管理功能,实现了选项的批量管理(包括新增、修改、删除)
|
||||
- 实现了题目选项的加载显示
|
||||
- 优化了选项编辑界面的交互体验
|
||||
|
||||
#### 涉及文件
|
||||
- `web/src/views/hq/satQuestion/index.vue`:完善了选项管理相关函数
|
||||
- `web/src/api/hq/satOption/types.ts`:更新了选项数据类型定义,确保与后端字段匹配
|
||||
|
||||
#### 实现方式
|
||||
由于后端没有直接提供批量操作API,采用了以下策略实现选项批量管理:
|
||||
1. 加载选项:调用`listSatOption`加载已有选项数据
|
||||
2. 更新选项:针对有ID的选项调用`updateSatOption`进行更新
|
||||
3. 新增选项:针对没有ID的选项调用`addSatOption`进行新增
|
||||
4. 删除选项:对比前后选项ID差异,对不再存在的选项调用`delSatOption`进行删除
|
||||
|
||||
#### 数据字段映射
|
||||
处理了前后端字段命名差异问题:
|
||||
- 前端编辑界面:`optionContent` → 后端API:`optionText`
|
||||
- 前端编辑界面:`optionScore` → 后端API:`optionValue`
|
||||
- 前端编辑界面:`optionOrder` → 后端API:`sortOrder`
|
||||
|
||||
## 测试信息
|
||||
- 测试人员:开发自测
|
||||
- 测试结果:功能正常,可以完成选项的批量管理
|
||||
|
||||
## 遗留问题
|
||||
- 无
|
||||
|
||||
## 备注
|
||||
- 本次实现方案没有使用事务处理,如果后续需要保证数据一致性,建议后端增加批量操作接口
|
||||
- 如果选项数量较多,可考虑进一步优化批量操作的性能
|
||||
@@ -0,0 +1,35 @@
|
||||
# 满意度调查选项排序优化记录
|
||||
|
||||
## 变更时间: 2025-07-17 16:15:30
|
||||
|
||||
## 问题描述
|
||||
满意度调查模块中,题目选项的显示顺序不是按照预期的排序字段(optionOrder)排序,而是默认按ID字段排序,导致选项显示顺序可能与设计不符。
|
||||
|
||||
## 变更内容
|
||||
修改了选项查询逻辑中的排序规则:
|
||||
|
||||
- 将原来仅按ID字段(id)升序排序修改为:
|
||||
1. 首先按选项排序字段(optionOrder)升序排序
|
||||
2. 然后按ID字段(id)升序排序作为次要排序条件
|
||||
|
||||
这样保证了选项按照用户设定的顺序显示,同时保持排序的稳定性。
|
||||
|
||||
## 变更文件
|
||||
1. `backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/service/impl/HqSatOptionServiceImpl.java`
|
||||
|
||||
## 技术细节
|
||||
修改了`buildQueryWrapper`方法中的排序语句:
|
||||
```java
|
||||
// 修改前
|
||||
lqw.orderByAsc(HqSatOption::getId);
|
||||
|
||||
// 修改后
|
||||
lqw.orderByAsc(HqSatOption::getOptionOrder).orderByAsc(HqSatOption::getId);
|
||||
```
|
||||
|
||||
## 测试验证
|
||||
- 通过接口`/hq/satQuestion/{questionId}/options`检查返回的选项列表,确认选项已按照optionOrder字段升序排列
|
||||
- 验证相同optionOrder值的选项按照ID升序排列
|
||||
|
||||
## 变更人员
|
||||
Cursor AI
|
||||
@@ -0,0 +1,24 @@
|
||||
# 满意度调查问题选项过滤修复记录
|
||||
|
||||
## 变更时间: 2025-07-17 15:30:45
|
||||
|
||||
## 问题描述
|
||||
满意度调查模块中,在查看问题选项时,系统返回的是所有选项数据,而不是按问题ID(question_id)进行过滤。这导致每个问题显示了所有选项,混淆了用户理解。
|
||||
|
||||
## 变更内容
|
||||
修改了后端API实现,确保根据问题ID过滤选项数据:
|
||||
|
||||
- 在`HqSatQuestionController`的`getQuestionOptions`方法中,使用`questionId`参数对选项数据进行过滤
|
||||
- 移除了注释中的"选项针对所有单选题和多选题通用,不区分具体题目",因为选项应该是特定于每个问题的
|
||||
|
||||
## 变更文件
|
||||
1. `backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/controller/HqSatQuestionController.java`
|
||||
|
||||
## 相关API文档
|
||||
此次变更影响了`docs/开发文档/API/后勤满意度调查API.md`中的选项获取API,但无需修改文档内容,因为API路径和参数未变,只是实现逻辑变更。
|
||||
|
||||
## 测试验证
|
||||
通过访问`/hq/satQuestion/{questionId}/options`接口,确认返回的选项数据已正确按问题ID过滤。
|
||||
|
||||
## 变更人员
|
||||
Cursor AI
|
||||
@@ -0,0 +1,46 @@
|
||||
# 代码调整记录 2025-07-17
|
||||
|
||||
## 基本信息
|
||||
- 日期:2025-07-17 15:10:45
|
||||
- 开发者:Cursor AI
|
||||
- 类型:功能增强
|
||||
|
||||
## 调整内容
|
||||
|
||||
### 1. 增加保存题目选项时自动计算并更新题目分值功能
|
||||
|
||||
#### 功能描述
|
||||
在保存题目选项时,自动计算题目分值并更新到题目表中,计算规则如下:
|
||||
1. 单选题的分值是题目选项中最大的分值
|
||||
2. 多选题的分值是所有题目选项的分值之和
|
||||
|
||||
#### 修改内容
|
||||
1. 在前端类型定义文件中添加题目分值字段:
|
||||
- `SatQuestionVO` 和 `SatQuestionForm` 中增加 `score` 字段
|
||||
|
||||
2. 在`saveOptions`函数中添加计算和更新题目分值的逻辑:
|
||||
- 根据题目类型判断计算方式
|
||||
- 单选题:取所有选项中最大分值
|
||||
- 多选题:取所有选项分值之和
|
||||
- 调用`updateSatQuestion`接口更新题目分值
|
||||
|
||||
#### 涉及文件
|
||||
- `web/src/api/hq/satQuestion/types.ts`
|
||||
- `web/src/views/hq/satQuestion/index.vue`
|
||||
|
||||
#### 实现方式
|
||||
1. 过滤有效选项(排除空内容选项)
|
||||
2. 根据题目类型计算分值:
|
||||
- 单选题:`Math.max(...validOptions.map(opt => Number(opt.optionScore) || 0))`
|
||||
- 多选题:`validOptions.reduce((sum, opt) => sum + (Number(opt.optionScore) || 0), 0)`
|
||||
3. 调用更新接口,仅更新题目ID和分值字段
|
||||
|
||||
## 测试信息
|
||||
- 测试方式:创建/修改选项后检查题目分值是否正确更新
|
||||
- 测试内容:
|
||||
1. 单选题:确认分值为最大选项分值
|
||||
2. 多选题:确认分值为所有选项分值之和
|
||||
|
||||
## 备注
|
||||
- 此功能使题目分值能够实时反映选项的变化,方便后续在问卷中计算总分
|
||||
- 数据库表`hq_sat_question`中已有`score`字段,无需额外更改数据库结构
|
||||
@@ -0,0 +1,47 @@
|
||||
# 变更管理记录:修复问卷题库查询接口的ID参数不生效问题
|
||||
|
||||
**日期**: 2025-07-17 15:30:45
|
||||
**类型**: Bug修复
|
||||
**开发人员**: Cursor
|
||||
|
||||
## 问题描述
|
||||
|
||||
问卷题库查询接口(`/hq/satQuestion/list`)在使用ID参数进行查询时,无论传递什么ID值都返回相同的结果。例如:
|
||||
- 请求1: `http://localhost/dev-api/hq/satQuestion/list?pageSize=1&pageNum=1&id=1937751675921375243`
|
||||
- 请求2: `http://localhost/dev-api/hq/satQuestion/list?pageSize=1&pageNum=1&id=1937751675921375248`
|
||||
|
||||
这两个请求返回相同的数据,这表明ID参数没有被正确应用到查询条件中。
|
||||
|
||||
## 原因分析
|
||||
|
||||
在`HqSatQuestionServiceImpl`类的`buildQueryWrapper`方法中,没有对`id`参数进行处理,导致无论传递什么ID值,都会忽略ID条件,返回相同的查询结果。
|
||||
|
||||
## 修改内容
|
||||
|
||||
在`HqSatQuestionServiceImpl`类的`buildQueryWrapper`方法中添加ID查询条件:
|
||||
|
||||
```java
|
||||
private LambdaQueryWrapper<HqSatQuestion> buildQueryWrapper(HqSatQuestionBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<HqSatQuestion> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByAsc(HqSatQuestion::getId);
|
||||
// 添加ID查询条件
|
||||
lqw.eq(bo.getId() != null, HqSatQuestion::getId, bo.getId());
|
||||
// ... 其他查询条件 ...
|
||||
return lqw;
|
||||
}
|
||||
```
|
||||
|
||||
## 影响范围
|
||||
|
||||
- 涉及文件: `backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/service/impl/HqSatQuestionServiceImpl.java`
|
||||
- 影响接口: `/hq/satQuestion/list`
|
||||
- 影响功能: 问卷题目查询功能,通过ID查询问卷题目
|
||||
|
||||
## 测试结果
|
||||
|
||||
修改后,通过不同ID参数调用接口可以正确返回对应ID的题目数据,或者在ID不存在时返回空列表。
|
||||
|
||||
## 注意事项
|
||||
|
||||
这个问题可能会影响到其他基于同样模式实现的查询接口,建议检查其他查询接口的实现,确保都正确处理了ID参数。
|
||||
@@ -0,0 +1,57 @@
|
||||
# 代码调整记录 2025-07-17
|
||||
|
||||
## 基本信息
|
||||
- 日期:2025-07-17 14:20:30
|
||||
- 开发者:Cursor AI
|
||||
- 类型:Bug修复
|
||||
|
||||
## 调整内容
|
||||
|
||||
### 1. 修复满意度调查题目选项实体类与数据库表结构不匹配问题
|
||||
|
||||
#### 问题描述
|
||||
数据库表 `hq_sat_option` 结构已更新,但Java实体类未同步调整,导致操作选项时出现SQL异常:
|
||||
```
|
||||
org.springframework.jdbc.BadSqlGrammarException: Unknown column 'option_text' in 'field list'
|
||||
```
|
||||
|
||||
#### 修改内容
|
||||
1. 更新了四个与选项相关的类,将属性名称修改为与数据库字段对应:
|
||||
- `HqSatOption.java`(实体类)
|
||||
- `HqSatOptionBo.java`(业务对象)
|
||||
- `HqSatOptionVo.java`(值对象)
|
||||
- `HqSatOptionServiceImpl.java`(Service实现类)
|
||||
|
||||
2. 字段映射调整:
|
||||
- `optionText` → `optionContent`
|
||||
- `optionValue` → `optionScore`
|
||||
- `sortOrder` → `optionOrder`
|
||||
- `deleted` 类型从 `Long` 改为 `String`
|
||||
- 新增字段 `questionId`(题目ID)
|
||||
- 新增字段 `isDefault`(是否默认选项)
|
||||
- 移除 `remark` 字段
|
||||
- 在VO类中增加了基础字段(createBy, createTime, updateBy, updateTime)以符合VO类规范
|
||||
|
||||
3. 类注释更新:
|
||||
- 将 "评分选项" 更新为 "满意度调查题目选项",使表意更明确
|
||||
|
||||
4. Service实现类调整:
|
||||
- 修改了`buildQueryWrapper`方法中的Lambda表达式,更新为使用新的字段名
|
||||
- 添加了对新字段`questionId`和`isDefault`的查询条件支持
|
||||
|
||||
#### 涉及文件
|
||||
- `/backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/domain/HqSatOption.java`
|
||||
- `/backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/domain/bo/HqSatOptionBo.java`
|
||||
- `/backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/domain/vo/HqSatOptionVo.java`
|
||||
- `/backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/service/impl/HqSatOptionServiceImpl.java`
|
||||
|
||||
#### 变更原因
|
||||
根据项目规范要求,数据库表结构变更后,需要同步更新相关Java实体类。本次修改确保了Java代码与数据库表结构的一致性。
|
||||
|
||||
## 测试信息
|
||||
- 测试方式:修复后重新尝试保存题目选项
|
||||
- 测试结果:选项可以正常保存,SQL异常已解决
|
||||
|
||||
## 备注
|
||||
- 数据库表`hq_sat_option`结构的变更来自于`docs/设计文档/database/hzdyjs_xg.sql`文件
|
||||
- 遵循VO类基础字段规范,确保VO类包含统一的基础字段
|
||||
@@ -0,0 +1,62 @@
|
||||
# 代码调整记录 - 2025-07-17
|
||||
|
||||
## 基本信息
|
||||
|
||||
- **日期**:2025-07-17 16:30:45
|
||||
- **操作人**:wuzilong
|
||||
- **模块**:后勤满意度调查系统
|
||||
- **功能点**:题目选项保存功能
|
||||
- **调整类型**:功能修复
|
||||
|
||||
## 问题描述
|
||||
|
||||
在满意度调查系统的题目管理页面中,当通过"设置选项"弹窗保存选项数据时,如果用户快速连续点击保存按钮,会触发服务端的幂等性控制,导致出现"不允许重复提交,请稍候再试"的错误提示,影响用户体验。
|
||||
|
||||
## 修复内容
|
||||
|
||||
修改了 `web/src/views/hq/satQuestion/index.vue` 文件,为选项保存功能添加前端防重复提交机制:
|
||||
|
||||
1. 在 `optionDialog` 对象中添加 `saveLoading` 状态变量
|
||||
2. 在 `saveOptions` 函数开始处添加状态检查,防止重复调用
|
||||
3. 为保存按钮添加 `:loading="optionDialog.saveLoading"` 绑定,在处理中禁用按钮
|
||||
4. 在请求完成后(无论成功或失败)重置 `saveLoading` 状态
|
||||
|
||||
## 技术说明
|
||||
|
||||
这是一个前端防重复提交的典型实现方式,具体流程如下:
|
||||
```
|
||||
1. 用户点击保存按钮 -> 检查saveLoading状态
|
||||
2. 如果saveLoading为true,直接返回不执行任何操作
|
||||
3. 如果saveLoading为false,设置为true并禁用按钮
|
||||
4. 执行保存操作
|
||||
5. 操作完成后(无论成功或失败)重置saveLoading为false
|
||||
```
|
||||
|
||||
此修复与前一次选项排序更新显示功能的修复配合,提供了更完整的用户体验:
|
||||
1. 防止重复提交错误
|
||||
2. 保存操作加载状态可视化
|
||||
3. 保存后立即显示更新的排序结果
|
||||
|
||||
## 测试方法
|
||||
|
||||
1. 进入后勤满意度调查系统 -> 题库管理
|
||||
2. 选择一个单选或多选题,点击"设置选项"按钮
|
||||
3. 修改选项内容或排序值
|
||||
4. 快速连续多次点击"保存"按钮
|
||||
5. 验证按钮是否显示loading状态,且不会出现重复提交错误
|
||||
6. 验证数据保存成功后,排序值正确更新
|
||||
|
||||
## 相关日志
|
||||
|
||||
后端日志显示在修复前存在多个重复的PUT请求,导致幂等性控制触发:
|
||||
|
||||
```
|
||||
2025-07-17 21:37:58 [XNIO-1 task-2] ERROR o.d.c.w.h.GlobalExceptionHandler
|
||||
- 不允许重复提交,请稍候再试
|
||||
2025-07-17 21:37:58 [XNIO-1 task-7] ERROR o.d.c.w.h.GlobalExceptionHandler
|
||||
- 不允许重复提交,请稍候再试
|
||||
```
|
||||
|
||||
## 相关API文档
|
||||
|
||||
该功能的API文档位于:`docs/开发文档/API/后勤满意度调查API.md`
|
||||
@@ -0,0 +1,48 @@
|
||||
# 代码调整记录 - 2025-07-17
|
||||
|
||||
## 基本信息
|
||||
|
||||
- **日期**:2025-07-17 15:45:26
|
||||
- **操作人**:wuzilong
|
||||
- **模块**:后勤满意度调查系统
|
||||
- **功能点**:题目选项排序功能
|
||||
- **调整类型**:功能修复
|
||||
|
||||
## 问题描述
|
||||
|
||||
在满意度调查系统的题目管理页面中,当通过"设置选项"弹窗修改选项的排序值并保存时,虽然系统提示保存成功,但排序值没有在界面上更新,需要关闭弹窗后重新打开才能看到最新的排序值。
|
||||
|
||||
## 修复内容
|
||||
|
||||
修改了 `web/src/views/hq/satQuestion/index.vue` 文件中的 `saveOptions` 函数,在保存选项数据后不再关闭弹窗,而是立即重新加载选项数据并更新界面显示,使用户可以立即看到排序值的变化。
|
||||
|
||||
具体修改:
|
||||
1. 保存成功后不再自动关闭对话框
|
||||
2. 保存成功后立即从服务器获取最新的选项数据
|
||||
3. 根据 `optionOrder` 字段重新对选项进行排序显示
|
||||
|
||||
## 技术说明
|
||||
|
||||
原来的实现中,保存选项后会刷新题目列表(`getList()`),但直接关闭了选项弹窗,导致用户无法在当前操作中看到排序更新结果。
|
||||
|
||||
修改后的流程:
|
||||
```
|
||||
1. 用户修改排序值 -> 点击保存
|
||||
2. 服务端保存数据成功
|
||||
3. 重新从服务器获取该题目的最新选项数据
|
||||
4. 按optionOrder字段排序
|
||||
5. 更新弹窗中的选项列表数据
|
||||
6. 用户可以看到排序结果,确认无误后手动关闭弹窗
|
||||
```
|
||||
|
||||
## 测试方法
|
||||
|
||||
1. 进入后勤满意度调查系统 -> 题库管理
|
||||
2. 选择一个单选或多选题,点击"设置选项"按钮
|
||||
3. 修改任意选项的排序值
|
||||
4. 点击"保存"按钮
|
||||
5. 验证排序值是否立即在界面上更新
|
||||
|
||||
## 相关API文档
|
||||
|
||||
该功能的API文档位于:`docs/开发文档/API/后勤满意度调查API.md`
|
||||
+368
-584
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,41 @@
|
||||
-- 满意度调查问卷结束时间扫描任务SQL脚本
|
||||
-- 创建日期: 2025-07-01
|
||||
-- 功能说明: 用于支持满意度调查问卷结束时间扫描任务的数据库配置
|
||||
|
||||
-- 确认hq_sat_survey表中的字段结构
|
||||
/*
|
||||
表结构说明:
|
||||
hq_sat_survey表需具备以下字段:
|
||||
- id: 主键,雪花ID
|
||||
- title: 问卷标题
|
||||
- start_time: 开始时间,datetime类型
|
||||
- end_time: 结束时间,datetime类型
|
||||
- status: 状态,整数类型(0:草稿, 1:进行中, 2:已结束)
|
||||
- tenant_id: 租户ID
|
||||
- create_by: 创建者
|
||||
- create_time: 创建时间
|
||||
- update_by: 更新者
|
||||
- update_time: 更新时间
|
||||
- deleted: 逻辑删除标记(0:未删除, 1:已删除)
|
||||
*/
|
||||
|
||||
-- 在snailjob任务调度系统中注册任务
|
||||
-- 备注: 以下SQL仅为参考,实际操作通过snailjob管理界面完成
|
||||
/*
|
||||
INSERT INTO snail_job_instance (
|
||||
id, app_name, namespace, job_name, job_handler, timeout_seconds, concurrent_type, cron_expression,
|
||||
delay_seconds, last_execute_time, execute_times, next_trigger_time,
|
||||
status, retry_count, retry_interval, tenant_id, remark
|
||||
) VALUES (
|
||||
NEXT VAL FOR sequence_name, 'ruoyi-job', 'default', '满意度调查结束时间扫描', 'surveyEndTimeJobExecutor', 60,
|
||||
'SERIAL', '0 0/30 * * * ?', 0, NULL, 0, NULL, 1, 3, 10, '000000', '自动将过期问卷状态标记为已结束'
|
||||
);
|
||||
*/
|
||||
|
||||
-- 任务注册说明:
|
||||
-- 定时策略: 每30分钟执行一次 (0 0/30 * * * ?)
|
||||
-- 执行器: surveyEndTimeJobExecutor
|
||||
-- 并发策略: 串行执行
|
||||
-- 超时时间: 60秒
|
||||
-- 重试次数: 3次
|
||||
-- 重试间隔: 10秒
|
||||
@@ -785,6 +785,7 @@ CREATE TABLE `hq_sat_detail` (
|
||||
`deleted` tinyint(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||||
`record_id` bigint(20) NOT NULL COMMENT '答题记录ID',
|
||||
`question_id` bigint(20) NOT NULL COMMENT '题目ID',
|
||||
`option_id` bigint(20) NOT NULL COMMENT '题目选项ID',
|
||||
`answer_score` int(11) DEFAULT '0' COMMENT '答案分数',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`id`),
|
||||
@@ -836,33 +837,32 @@ COMMIT;
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `hq_sat_option`;
|
||||
CREATE TABLE `hq_sat_option` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`tenant_id` varchar(20) NOT NULL COMMENT '租户编号',
|
||||
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
||||
`id` bigint(20) NOT NULL COMMENT '选项ID',
|
||||
`question_id` bigint(20) NOT NULL COMMENT '题目ID',
|
||||
`option_content` varchar(255) NOT NULL COMMENT '选项内容',
|
||||
`option_score` int(11) DEFAULT 0 COMMENT '选项分值',
|
||||
`option_order` int(11) DEFAULT 0 COMMENT '选项排序',
|
||||
`is_default` char(1) DEFAULT 'N' COMMENT '是否默认选项(Y是 N否)',
|
||||
`tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`deleted` tinyint(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||||
`option_text` varchar(50) NOT NULL COMMENT '选项文本',
|
||||
`option_value` int(11) NOT NULL COMMENT '选项分值',
|
||||
`sort_order` int(11) DEFAULT '0' COMMENT '排序',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_tenant_id` (`tenant_id`),
|
||||
KEY `idx_status` (`status`),
|
||||
KEY `idx_sort_order` (`sort_order`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='评分选项表';
|
||||
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
||||
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `idx_question_id` (`question_id`) COMMENT '题目ID索引'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='满意度调查题目选项表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of hq_sat_option
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `hq_sat_option` (`id`, `tenant_id`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`, `option_text`, `option_value`, `sort_order`, `status`, `remark`) VALUES (1, '000000', NULL, NULL, '2025-06-24 18:30:17', NULL, NULL, 0, '非常满意', 5, 1, '0', NULL);
|
||||
INSERT INTO `hq_sat_option` (`id`, `tenant_id`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`, `option_text`, `option_value`, `sort_order`, `status`, `remark`) VALUES (2, '000000', NULL, NULL, '2025-06-24 18:30:17', NULL, NULL, 0, '满意', 3, 2, '0', NULL);
|
||||
INSERT INTO `hq_sat_option` (`id`, `tenant_id`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`, `option_text`, `option_value`, `sort_order`, `status`, `remark`) VALUES (3, '000000', NULL, NULL, '2025-06-24 18:30:17', NULL, NULL, 0, '一般', 1, 3, '0', NULL);
|
||||
INSERT INTO `hq_sat_option` (`id`, `tenant_id`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`, `option_text`, `option_value`, `sort_order`, `status`, `remark`) VALUES (4, '000000', NULL, NULL, '2025-06-24 18:30:17', NULL, NULL, 0, '不满意', 0, 4, '0', NULL);
|
||||
INSERT INTO `hq_sat_option` (`id`, `question_id`, `option_content`, `option_score`, `option_order`, `is_default`, `tenant_id`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`) VALUES (1937810382736855041, 1937751489358733313, '非常满意', 5, 1, 'N', '000000', 1, '2025-06-25 17:50:18', 1, '2025-06-25 17:50:18', '0');
|
||||
INSERT INTO `hq_sat_option` (`id`, `question_id`, `option_content`, `option_score`, `option_order`, `is_default`, `tenant_id`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`) VALUES (1937810382736855042, 1937751489358733313, '满意', 4, 2, 'N', '000000', 1, '2025-06-25 17:50:18', 1, '2025-06-25 17:50:18', '0');
|
||||
INSERT INTO `hq_sat_option` (`id`, `question_id`, `option_content`, `option_score`, `option_order`, `is_default`, `tenant_id`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`) VALUES (1937810382736855043, 1937751489358733313, '一般', 3, 3, 'N', '000000', 1, '2025-06-25 17:50:18', 1, '2025-06-25 17:50:18', '0');
|
||||
INSERT INTO `hq_sat_option` (`id`, `question_id`, `option_content`, `option_score`, `option_order`, `is_default`, `tenant_id`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`) VALUES (1937810382736855044, 1937751489358733313, '不满意', 1, 4, 'N', '000000', 1, '2025-06-25 17:50:18', 1, '2025-06-25 17:50:18', '0');
|
||||
INSERT INTO `hq_sat_option` (`id`, `question_id`, `option_content`, `option_score`, `option_order`, `is_default`, `tenant_id`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`) VALUES (1937810382736855045, 1937751489358733313, '非常不满意', 0, 5, 'N', '000000', 1, '2025-06-25 17:50:18', 1, '2025-06-25 17:50:18', '0');
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
@@ -880,6 +880,7 @@ CREATE TABLE `hq_sat_question` (
|
||||
`deleted` tinyint(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||||
`question_title` varchar(200) NOT NULL COMMENT '题目标题',
|
||||
`question_content` text COMMENT '题目内容(支持富文本)',
|
||||
`score` int(11) DEFAULT 0 COMMENT '题目分值',
|
||||
`category_id` bigint(20) NOT NULL COMMENT '所属分类ID',
|
||||
`question_type` char(1) DEFAULT '1' COMMENT '题目类型(1单选题 2多选题 3问答题)',
|
||||
`is_required` tinyint(1) DEFAULT '1' COMMENT '是否必填(0否 1是)',
|
||||
@@ -1011,6 +1012,7 @@ CREATE TABLE `hq_sat_survey` (
|
||||
`target_group` varchar(100) NOT NULL COMMENT '目标群体(1学生 2教职工 3全体)',
|
||||
`start_time` datetime NOT NULL COMMENT '开始时间',
|
||||
`end_time` datetime NOT NULL COMMENT '结束时间',
|
||||
`score` int(11) DEFAULT 0 COMMENT '问卷总分值',
|
||||
`max_submit_times` int(11) DEFAULT '1' COMMENT '最大提交次数(0不限制)',
|
||||
`is_anonymous` tinyint(1) DEFAULT '0' COMMENT '是否匿名(0否 1是)',
|
||||
`is_published` tinyint(1) DEFAULT '0' COMMENT '是否发布(0否 1是)',
|
||||
|
||||
Reference in new issue
Block a user