From aaed24ffcbcf25dcb351fa5bc7255629c1f82f69 Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Thu, 15 Jan 2026 13:50:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/LossAssessmentMapper.java | 7 ++++++ .../impl/LossAssessmentServiceImpl.java | 6 ++++- .../lossAssessment/LossAssessmentMapper.xml | 16 +++++++++++++ .../mapper/material/repair/RepairMapper.xml | 24 ++++++++++++++----- 4 files changed, 46 insertions(+), 7 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/mapper/LossAssessmentMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/mapper/LossAssessmentMapper.java index 99980af4..573ae42a 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/mapper/LossAssessmentMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/mapper/LossAssessmentMapper.java @@ -249,4 +249,11 @@ public interface LossAssessmentMapper { * @return */ int delCost(RepairApplyDetails repairApplyDetails); + + /** + * 查询repair_task_details + * @param repairTaskDetails + * @return + */ + RepairTaskDetails selectRepairTaskDetailsById(RepairTaskDetails repairTaskDetails); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java index bc410d3d..37ff2ec5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java @@ -559,7 +559,11 @@ public class LossAssessmentServiceImpl implements LossAssessmentService { //3、重新生成维修数据 for (RepairTaskDetails repairTaskDetails : detailsList){ repairTaskDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); - mapper.insertRad(repairTaskDetails); + //查询数据是否已经插入 + RepairTaskDetails repairTaskDetails1 = mapper.selectRepairTaskDetailsById(repairTaskDetails); + if (repairTaskDetails1==null){ + mapper.insertRad(repairTaskDetails); + } } return AjaxResult.success("提交完成"); } else { diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml index d095a605..6bfce345 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml @@ -537,6 +537,22 @@ WHERE id = #{id} + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml index 096f72e0..f26f7ab4 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -445,8 +445,8 @@ ( SELECT COALESCE(SUM(rc.costs), 0) FROM repair_cost rc WHERE rc.repair_id = rad.id ) AS totalCost, rad2.`status` as dataStatus, mt.unit_value AS unitValue, - GROUP_CONCAT(rar.part_name) as partName, - GROUP_CONCAT(mpt.pa_name) as partInfo + rar.part_name as partName, + rar.part_info as partInfo from repair_apply_details rad left join ma_type mt on rad.type_id = mt.type_id @@ -457,14 +457,26 @@ left join ma_type mt3 ON mt2.parent_id = mt3.type_id and mt3.del_flag = '0' left join ma_type mt4 ON mt3.parent_id = mt4.type_id and mt4.del_flag = '0' left join repair_apply_details rad2 on rad2.task_id=rad.task_id and rad2.ma_id <=> rad.ma_id and rad2.type_id=rad.type_id and rad2.is_ds='1' - LEFT JOIN repair_apply_record rar on rar.task_id=rad.task_id and rar.ma_id <=> rad.ma_id and rar.type_id=rad.type_id and rar.is_ds='0' - LEFT JOIN ma_part_type mpt on mpt.pa_id=rar.part_id + LEFT JOIN ( + SELECT + task_id, + ma_id, + type_id, + GROUP_CONCAT(DISTINCT part_name) AS part_name, + GROUP_CONCAT(DISTINCT mpt.pa_name) AS part_info + FROM repair_apply_record rar + LEFT JOIN ma_part_type mpt ON mpt.pa_id = rar.part_id + WHERE rar.is_ds = '0' + GROUP BY task_id, ma_id, type_id + ) rar ON rar.task_id = rad.task_id + AND rar.ma_id <=> rad.ma_id + AND rar.type_id = rad.type_id ]]> - + JOIN ma_type_repair mtr ON mtr.type_id = rad.type_id AND mtr.user_id = #{userId} - + where rad.task_id = #{taskId} and rad.is_ds=0