From b7ed8f573a30d80bac6aeedea9fe4d52e64819f4 Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Tue, 26 Aug 2025 18:44:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../material/ma/mapper/MachineMapper.java | 8 +++ .../ma/service/impl/MachineServiceImpl.java | 32 +++++++----- .../impl/RepairInputDetailsServiceImpl.java | 2 +- .../mapper/material/ma/MachineMapper.xml | 51 +++++++++++++++++++ .../mapper/material/repair/RepairMapper.xml | 1 + 5 files changed, 80 insertions(+), 14 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java index ff358075..e6cca4df 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java @@ -212,4 +212,12 @@ public interface MachineMapper LeaseApplyInfo getBackParentId(Machine machine); LeaseApplyInfo getBackUnitAndProject(LeaseApplyInfo leaseInfoBack); + + + /** + * 新增批量更新方法 + * @param samples + * @return + */ + int batchUpdateSynchReport(@Param("list") List samples); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/MachineServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/MachineServiceImpl.java index 546665eb..c6e716d3 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/MachineServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/MachineServiceImpl.java @@ -29,6 +29,7 @@ import com.bonus.material.ma.mapper.MachineMapper; import com.bonus.material.ma.domain.Machine; import com.bonus.material.ma.service.IMachineService; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; @@ -302,35 +303,40 @@ public class MachineServiceImpl implements IMachineService } @Override - @Transactional - public AjaxResult synchReport(Machine machine) - { + @Transactional(rollbackFor = Exception.class) + public AjaxResult synchReport(Machine machine) { try { String pdfUrl = machine.getPdf(); - String checkTime = machine.getCheckTimeSynch()+ " 00:00:00"; - String nextCheckTime = machine.getNextCheckTimeSynch()+ " 00:00:00"; + String checkTime = machine.getCheckTimeSynch() + " 00:00:00"; + String nextCheckTime = machine.getNextCheckTimeSynch() + " 00:00:00"; String reportName = machine.getReportName(); String reportNum = machine.getReportNum(); - if(machine.getSamples()!=null && machine.getSamples().size()>0){ - int numAll = 0; - for(SampleSync sample : machine.getSamples()){ + + List samples = machine.getSamples(); + if(samples != null && !samples.isEmpty()){ + // 批量设置属性 + for(SampleSync sample : samples){ sample.setCheckTimeSynch(checkTime); sample.setNextCheckTimeSynch(nextCheckTime); sample.setPdf(pdfUrl); sample.setReportName(reportName); sample.setReportNum(reportNum); - int result = machineMapper.updateSynchReport(sample); - numAll += result; } - if(numAll>0){ - return success("同步成功"); + // 使用批量更新 + int numAll = machineMapper.batchUpdateSynchReport(samples); + if(numAll > 0){ + return success("同步成功,更新了 " + numAll + " 条记录"); }else{ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return error("同步失败,暂无相关的机具编码"); } } + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return error("同步失败,暂无相关的机具编码"); } catch (Exception e) { - return error("同步报告失败:" + e.getMessage()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error(e.getMessage()); + return error("同步报告失败"); } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java index 1f4c00a0..920d2600 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java @@ -505,7 +505,7 @@ public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService RepairInputInfo repairInputInfo = new RepairInputInfo(); repairInputInfo.setTypeId(repairInputDetails.getTypeId()); repairInputInfo.setInputNum(repairInputDetails.getInputNum()); - repairInputDetailsMapper.updateNum(repairInputInfo); +// repairInputDetailsMapper.updateNum(repairInputInfo); Long newTaskId = insertTt(repairInputDetails.getTaskId()); result += insertTta(newTaskId, repairInputDetails); result += insertWxTask(newTaskId, repairInputDetails); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml index 3b58cc4b..24ff397f 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml @@ -548,6 +548,57 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where ma_id = #{maId} + + UPDATE ma_machine + SET + check_man = CASE ma_code + + WHEN #{item.selfCode} THEN #{item.tester} + + END, + inspect_man = CASE ma_code + + WHEN #{item.selfCode} THEN #{item.tester} + + END, + this_check_time = CASE ma_code + + WHEN #{item.selfCode} THEN #{item.checkTimeSynch} + + END, + next_check_time = CASE ma_code + + WHEN #{item.selfCode} THEN #{item.nextCheckTimeSynch} + + END, + inspect_status = CASE ma_code + + WHEN #{item.selfCode} THEN #{item.result} + + END, + ex_code = CASE ma_code + + WHEN #{item.selfCode} THEN #{item.reportNum} + + END, + ex_url = CASE ma_code + + WHEN #{item.selfCode} THEN #{item.pdf} + + END, + ex_name = CASE ma_code + + WHEN #{item.selfCode} THEN #{item.reportName} + + END, + ex_up_time = NOW() + WHERE ma_code IN ( + + #{item.selfCode} + + ) + +