From 99a036114a0cf07e93b31f9ec3151660afe33fea Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Tue, 22 Jul 2025 11:42:59 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=20=20TMS=E7=B3=BB=E7=BB=9F=20-=20?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AE=A1=E7=90=86=20-=20=E6=9C=88=E7=BB=93?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=95=8C=E9=9D=A2=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E8=B0=83=E6=95=B4=20=20=20=E6=9C=88=E7=BB=93?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E5=AF=BC=E5=85=A5=E9=AA=8C=E9=87=8D=E9=80=BB?= =?UTF-8?q?=E8=BE=91bug=E4=BF=AE=E5=A4=8D=20=20=E4=BF=AE=E6=94=B9=E8=BF=90?= =?UTF-8?q?=E5=8D=95selectOne=20bug=E4=BF=AE=E5=A4=8D=20committer:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/EmisWaybillProblemInfoMapper.java | 2 +- .../EmisWaybillProblemInfoServiceImpl.java | 48 ++++++++++++------- .../mapper/EmisWaybillProblemInfoMapper.xml | 1 + 3 files changed, 33 insertions(+), 18 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillProblemInfoMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillProblemInfoMapper.java index be638e97b..b7850818f 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillProblemInfoMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillProblemInfoMapper.java @@ -94,7 +94,7 @@ public interface EmisWaybillProblemInfoMapper extends BaseMapper selectEmisWaybillProblemInfoByBillCode(@Param("billCode") String billCode); /** * 根据运单号查 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillProblemInfoServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillProblemInfoServiceImpl.java index 5aa890813..0e0d5b0a1 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillProblemInfoServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillProblemInfoServiceImpl.java @@ -160,28 +160,42 @@ public class EmisWaybillProblemInfoServiceImpl extends EmisBaseService implement */ @Override public void deleteEmisWaybillProblemInfoByBillCode(String billCode) { - EmisWaybillProblemInfo emisWaybillProblemInfo = emisWaybillProblemInfoMapper.selectEmisWaybillProblemInfoByBillCode(billCode); - if (emisWaybillProblemInfo == null) { + // 查询所有该运单下的问题件 + List problemList = emisWaybillProblemInfoMapper + .selectEmisWaybillProblemInfoByBillCode(billCode); + if (problemList == null || problemList.isEmpty()) { return; } - // 删除该问题件的扫描轨迹 - emisTmsScanRecordMapper.deletePromScanRecord(emisWaybillProblemInfo.getId().toString(), emisWaybillProblemInfo.getMainBillCode()); - - // 删除问题件 - emisWaybillProblemInfoMapper.deleteEmisWaybillProblemInfoById(emisWaybillProblemInfo.getId()); - - // 获取运单信息 - EmisWaybill waybill = getWaybillByBillCode(emisWaybillProblemInfo.getBillCode()); - if (!"6".equals(waybill.getPaymentType())) { - // 重新计算提成 - emisCommissionProfitService.reCalcProfitByBillCode(emisWaybillProblemInfo.getBillCode(),null); + // 记录是否需要重算提成 + boolean needReCalcProfit = false; + String mainBillCode = null; + for (EmisWaybillProblemInfo emisWaybillProblemInfo : problemList) { + // 删除该问题件的扫描轨迹 + emisTmsScanRecordMapper.deletePromScanRecord(emisWaybillProblemInfo.getId().toString(), + emisWaybillProblemInfo.getMainBillCode()); + // 删除问题件 + emisWaybillProblemInfoMapper.deleteEmisWaybillProblemInfoById(emisWaybillProblemInfo.getId()); + // 判断是否需要重算提成 + EmisWaybill waybill = getWaybillByBillCode(emisWaybillProblemInfo.getBillCode()); + if (waybill != null && !"6".equals(waybill.getPaymentType())) { + needReCalcProfit = true; + } + // 记录mainBillCode用于后续取消登记 + if (mainBillCode == null) { + mainBillCode = emisWaybillProblemInfo.getMainBillCode(); + } + } + // 重新计算提成 + if (needReCalcProfit) { + emisCommissionProfitService.reCalcProfitByBillCode(billCode, null); } - // 删除运单的问题件记录 - EmisWaybill emisWaybill = new EmisWaybill(); - emisWaybill.setBillCode(emisWaybillProblemInfo.getMainBillCode()); - emisWaybillMapper.cancelProblemRegister(emisWaybill); + if (mainBillCode != null) { + EmisWaybill emisWaybill = new EmisWaybill(); + emisWaybill.setBillCode(mainBillCode); + emisWaybillMapper.cancelProblemRegister(emisWaybill); + } } /** diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillProblemInfoMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillProblemInfoMapper.xml index 160faf975..0dce8d299 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillProblemInfoMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillProblemInfoMapper.xml @@ -131,6 +131,7 @@ select id, bill_code, main_bill_code, bl_sub_bill, problem_type, problem_title, problem_cause, send_site, send_site_code, register_man_code, register_man_dept, register_site_code, register_date, register_save_date, data_from, status, is_send_site_register, bl_reversion, reversion_str, reversion_man, reversion_man_code, reversion_site_code, reversion_date, bl_checkok, deal_result, bl_see, file_path, del_flag, create_by, create_time, update_by, update_time, remark, create_site, update_site from emis_waybill_problem_info a where a.bill_code = #{billCode} + and a.problem_type in ('173','170')