From 0467712248a1e029fa498354bfc2ef632ab01533 Mon Sep 17 00:00:00 2001 From: mashuai Date: Tue, 24 Jun 2025 09:10:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E9=A9=B3=E5=9B=9E=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/RepairAuditDetailsMapper.java | 7 ++ .../repair/mapper/RepairCostMapper.java | 7 ++ .../mapper/RepairPartDetailsMapper.java | 7 ++ .../service/impl/RepairServiceImpl.java | 105 +++++++++++++++++- .../repair/RepairAuditDetailsMapper.xml | 10 ++ .../material/repair/RepairCostMapper.xml | 9 ++ .../repair/RepairPartDetailsMapper.xml | 10 ++ 7 files changed, 150 insertions(+), 5 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairAuditDetailsMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairAuditDetailsMapper.java index 6d1d17b9..88429860 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairAuditDetailsMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairAuditDetailsMapper.java @@ -160,4 +160,11 @@ public interface RepairAuditDetailsMapper { * @return */ List selectDetails(RepairHomeInfo repairHomeInfo); + + /** + * 删除repair_apply_record + * @param repairAuditDetails + * @return + */ + int deleteRepairRecordByTaskId(RepairAuditDetails repairAuditDetails); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairCostMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairCostMapper.java index 8b8ce378..35166859 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairCostMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairCostMapper.java @@ -57,4 +57,11 @@ public interface RepairCostMapper { * @return 结果 */ public int deleteRepairCostByIds(Long[] ids); + + /** + * 根据任务id删除维修详细 + * @param repairCost + * @return + */ + int deleteRepairCostByTaskId(RepairCost repairCost); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairPartDetailsMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairPartDetailsMapper.java index 04a4ecb1..c2360313 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairPartDetailsMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairPartDetailsMapper.java @@ -57,4 +57,11 @@ public interface RepairPartDetailsMapper { * @return 结果 */ public int deleteRepairPartDetailsByIds(Long[] ids); + + /** + * 批量删除维修配件详细 + * @param repairPartDetails + * @return + */ + int deleteRepairCostByTaskId(RepairPartDetails repairPartDetails); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java index 343304fa..437656d0 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -19,9 +19,7 @@ import com.bonus.material.ma.mapper.MachineMapper; import com.bonus.material.ma.mapper.PartTypeMapper; import com.bonus.material.repair.domain.*; import com.bonus.material.repair.domain.vo.*; -import com.bonus.material.repair.mapper.RepairApplyDetailsMapper; -import com.bonus.material.repair.mapper.RepairAuditDetailsMapper; -import com.bonus.material.repair.mapper.RepairMapper; +import com.bonus.material.repair.mapper.*; import com.bonus.material.repair.service.RepairService; import com.bonus.material.settlement.mapper.SltAgreementInfoMapper; import com.bonus.material.task.domain.TmTask; @@ -89,6 +87,12 @@ public class RepairServiceImpl implements RepairService { @Resource private MachineMapper machineMapper; + @Resource + private RepairCostMapper repairCostMapper; + + @Resource + private RepairPartDetailsMapper repairPartDetailsMapper; + // 1:内部维修 2:外部返厂维修 3:报废 private final int INNER_REPAIR = 1; // 需要严格匹配枚举值 RepairTypeEnum.INNER_REPAIR.getTypeId(); private final int RETURN_FACTORY = 2; // 需要严格匹配枚举值 RepairTypeEnum.RETURN_FACTORY.getTypeId(); @@ -1153,6 +1157,11 @@ public class RepairServiceImpl implements RepairService { return MaterialConstants.REPAIR_TASK_TYPE_LABEL + result + String.format("-%03d", thisMonthMaxOrder + 1); } + /** + * 驳回维修申请 + * @param bean + * @return + */ @Override @Transactional(rollbackFor = Exception.class) public AjaxResult rejectRepair(RepairTask bean) { @@ -1205,6 +1214,7 @@ public class RepairServiceImpl implements RepairService { if (result < 1) { throw new ServiceException("维修驳回失败,请联系管理员"); } + extractedTaskId(taskId); } else { throw new ServiceException("维修任务没有前置任务,不能驳回"); } @@ -1219,10 +1229,10 @@ public class RepairServiceImpl implements RepairService { if (repairedScrapNumber > 0) { throw new ServiceException("维修明细已有维修数据,不能驳回"); } - // 查询明细详情 - repairApplyDetails = repairApplyDetailsMapper.selectRepairApplyDetailsById(id); } for (Long id : bean.getIds()) { + // 查询明细详情 + repairApplyDetails = repairApplyDetailsMapper.selectRepairApplyDetailsById(id); if (repairApplyDetails != null) { if (repairApplyDetails.getMaId() != null) { machineMapper.updateStatus(repairApplyDetails.getMaId(), MaMachineStatusEnum.IN_USE.getStatus()); @@ -1238,6 +1248,9 @@ public class RepairServiceImpl implements RepairService { if (result < 1) { throw new ServiceException("维修驳回失败,请联系管理员"); } + if (repairApplyDetails != null) { + extractedByDetails(repairApplyDetails); + } } } } catch (final DataAccessException e) { @@ -1247,6 +1260,88 @@ public class RepairServiceImpl implements RepairService { return AjaxResult.success("执行完成"); } + /** + * 驳回至退料详情方法抽取 + * @param repairApplyDetails + */ + private void extractedByDetails(RepairApplyDetails repairApplyDetails) { + int result; + // 5.先根据taskId查询repair_apply_record表是否存在数据,存在则删除 + RepairAuditDetails repairAuditDetails = new RepairAuditDetails(); + repairAuditDetails.setTaskId(repairApplyDetails.getTaskId()); + repairAuditDetails.setTypeId(repairApplyDetails.getTypeId()); + repairAuditDetails.setMaId(repairApplyDetails.getMaId() == null ? null : repairApplyDetails.getMaId()); + List repairRecord = repairAuditDetailsMapper.getRepairRecord(repairAuditDetails); + if (!CollectionUtils.isEmpty(repairRecord)) { + result = repairAuditDetailsMapper.deleteRepairRecordByTaskId(repairAuditDetails); + if (result < 1) { + throw new ServiceException("维修驳回失败,请联系管理员"); + } + } + // 6. 先根据taskId查询repair_cost表是否存在数据,存在则删除 + RepairCost repairCost = new RepairCost(); + repairCost.setTaskId(repairApplyDetails.getTaskId()); + repairCost.setTypeId(repairApplyDetails.getTypeId()); + repairCost.setMaId(repairApplyDetails.getMaId() == null ? null : repairApplyDetails.getMaId()); + List repairCosts = repairCostMapper.selectRepairCostList(repairCost); + if (!CollectionUtils.isEmpty(repairCosts)) { + result = repairCostMapper.deleteRepairCostByTaskId(repairCost); + if (result < 1) { + throw new ServiceException("维修驳回失败,请联系管理员"); + } + } + // 7. 先根据taskId查询repair_part_details表是否存在数据,存在则删除 + RepairPartDetails repairPartDetails = new RepairPartDetails(); + repairPartDetails.setTaskId(repairApplyDetails.getTaskId()); + repairPartDetails.setTypeId(repairApplyDetails.getTypeId()); + repairPartDetails.setMaId(repairApplyDetails.getMaId() == null ? null : repairApplyDetails.getMaId()); + List repairPartDetailList = repairPartDetailsMapper.selectRepairPartDetailsList(repairPartDetails); + if (!CollectionUtils.isEmpty(repairPartDetailList)) { + result = repairPartDetailsMapper.deleteRepairCostByTaskId(repairPartDetails); + if (result < 1) { + throw new ServiceException("维修驳回失败,请联系管理员"); + } + } + } + + /** + * 驳回至退料任务单抽取 + * @param taskId + */ + private void extractedTaskId(Long taskId) { + int result; + // 5.先根据taskId查询repair_apply_record表是否存在数据,存在则删除 + RepairAuditDetails repairAuditDetails = new RepairAuditDetails(); + repairAuditDetails.setTaskId(taskId); + List repairRecord = repairAuditDetailsMapper.getRepairRecord(repairAuditDetails); + if (!CollectionUtils.isEmpty(repairRecord)) { + result = repairAuditDetailsMapper.deleteRepairRecordByTaskId(repairAuditDetails); + if (result < 1) { + throw new ServiceException("维修驳回失败,请联系管理员"); + } + } + // 6. 先根据taskId查询repair_cost表是否存在数据,存在则删除 + RepairCost repairCost = new RepairCost(); + repairCost.setTaskId(taskId); + List repairCosts = repairCostMapper.selectRepairCostList(repairCost); + if (!CollectionUtils.isEmpty(repairCosts)) { + result = repairCostMapper.deleteRepairCostByTaskId(repairCost); + if (result < 1) { + throw new ServiceException("维修驳回失败,请联系管理员"); + } + } + // 7. 先根据taskId查询repair_part_details表是否存在数据,存在则删除 + RepairPartDetails repairPartDetails = new RepairPartDetails(); + repairPartDetails.setTaskId(taskId); + List repairPartDetailList = repairPartDetailsMapper.selectRepairPartDetailsList(repairPartDetails); + if (!CollectionUtils.isEmpty(repairPartDetailList)) { + result = repairPartDetailsMapper.deleteRepairCostByTaskId(repairPartDetails); + if (result < 1) { + throw new ServiceException("维修驳回失败,请联系管理员"); + } + } + } + /** * 维修明细--批量合格--更新明细status,以及repairedNum */ diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairAuditDetailsMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairAuditDetailsMapper.xml index 243dcfec..cd3c3f1c 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairAuditDetailsMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairAuditDetailsMapper.xml @@ -299,6 +299,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + delete from repair_apply_record where task_id = #{taskId} + + and type_id = #{typeId} + + + and ma_id = #{maId} + + +