فهرست منبع

提交物业维修单调整

zlwu 1 سال پیش
والد
کامیت
4db7c70511

+ 4 - 2
backend/ruoyi-admin/src/main/java/org/dromara/zhxy/service/impl/PmRepairOrderServiceImpl.java

@@ -932,10 +932,12 @@ public class PmRepairOrderServiceImpl implements IPmRepairOrderService {
             String currentUserName = loginUser.getUsername();
 
             // 7. 创建服务评价记录
+            Date evaluationTime = new Date();
             PmServiceEvaluation evaluation = new PmServiceEvaluation();
             evaluation.setOrderId(orderId);
             evaluation.setEvaluatorId(currentUserId);
             evaluation.setEvaluatorName(currentUserName);
+            evaluation.setEvaluationTime(evaluationTime); // 设置评价时间
 
             // 设置被评价维修员信息
             evaluation.setEvaluatedWorkerId(Long.valueOf(evaluationData.get("evaluatedWorkerId").toString()));
@@ -991,7 +993,7 @@ public class PmRepairOrderServiceImpl implements IPmRepairOrderService {
             updateOrder.setId(orderId);
             updateOrder.setOrderStatus("5"); // 已评价
             updateOrder.setEvaluationScore(evaluation.getOverallScore());
-            updateOrder.setEvaluationTime(new Date());
+            updateOrder.setEvaluationTime(evaluationTime); // 使用相同的评价时间
 
             boolean orderUpdated = baseMapper.updateById(updateOrder) > 0;
             if (!orderUpdated) {
@@ -1008,7 +1010,7 @@ public class PmRepairOrderServiceImpl implements IPmRepairOrderService {
                 evaluationProgress.setOperatorId(currentUserId);
                 evaluationProgress.setOperatorName(currentUserName);
                 evaluationProgress.setOperatorRole("user");
-                evaluationProgress.setOperationTime(new Date());
+                evaluationProgress.setOperationTime(evaluationTime); // 使用相同的评价时间
                 evaluationProgress.setRemark("满意度等级:" + evaluation.getSatisfactionLevel());
 
                 repairProgressMapper.insert(evaluationProgress);

+ 82 - 0
docs/变更管理/code-adjust-record-2025-06-30-wuzilong.md

@@ -4,6 +4,88 @@
 > 👤 **记录人员**: wuzilong  
 > 📌 **排序说明**: 本文件按照时间倒序排列,最新的变更记录在最上面
 
+## 调整记录 - 2025-06-30 22:50:00
+
+**变更 ID**: CHG-20250630-012
+**变更时间**: 2025-06-30 22:50:00
+**变更人员**: wuzilong/Cursor AI 辅助
+**变更类型**: 🐛 Bug 修复
+**影响级别**: 🟢 小变更
+
+### 📋 变更概述
+
+**变更目的**: 修复评价接口中 evaluation_time 字段未设置导致的数据库插入错误
+**影响范围**: 后端服务评价数据插入逻辑
+
+### 📁 涉及文件
+
+**后端文件**:
+
+-   backend/ruoyi-admin/src/main/java/org/dromara/zhxy/service/impl/PmRepairOrderServiceImpl.java
+
+### 🔧 变更内容详述
+
+**问题分析**:
+
+1. **错误信息**: `Field 'evaluation_time' doesn't have a default value`
+2. **根本原因**: 在创建 PmServiceEvaluation 记录时,没有设置 evaluationTime 字段的值
+3. **表现症状**: 前端显示评价提交失败,数据库插入操作因缺少必填字段而失败
+
+**修复方案**:
+
+1. **设置评价时间字段**:
+
+    ```java
+    // 修复前:缺少 evaluationTime 设置
+    PmServiceEvaluation evaluation = new PmServiceEvaluation();
+    // ... 其他字段设置
+
+    // 修复后:正确设置 evaluationTime
+    Date evaluationTime = new Date();
+    PmServiceEvaluation evaluation = new PmServiceEvaluation();
+    evaluation.setEvaluationTime(evaluationTime); // 设置评价时间
+    ```
+
+2. **确保时间一致性**:
+    - 评价记录的 `evaluationTime` 字段
+    - 工单记录的 `evaluationTime` 字段
+    - 进度记录的 `operationTime` 字段
+    - 三处使用相同的时间值,确保数据一致性
+
+### 🧪 测试验证
+
+**功能测试**:
+
+-   [x] ✅ 评价数据正确保存到数据库
+-   [x] ✅ evaluation_time 字段正确设置
+-   [x] ✅ 时间字段在相关表中保持一致
+
+**错误处理测试**:
+
+-   [x] ✅ 不再出现数据库字段缺失错误
+-   [x] ✅ 评价提交成功响应正常
+
+### 📝 备注
+
+**技术实现**:
+
+1. **字段补全**: 确保所有必填的数据库字段都有对应的值设置
+2. **时间一致性**: 使用同一个 Date 对象设置相关的时间字段
+3. **数据完整性**: 保证评价记录的完整性和准确性
+
+**修复前的问题**:
+
+-   ❌ 数据库插入失败,提示 evaluation_time 字段没有默认值
+-   ❌ 前端评价提交失败,用户无法完成评价操作
+
+**修复后的效果**:
+
+-   ✅ 评价数据正确插入数据库
+-   ✅ 所有时间字段保持一致
+-   ✅ 前端评价功能正常工作
+
+---
+
 ## 调整记录 - 2025-06-30 22:45:00
 
 **变更 ID**: CHG-20250630-011