From e841fc04c9b3420cd55097e2ecfa5bc7763114b9 Mon Sep 17 00:00:00 2001 From: linfso Date: Fri, 4 Jul 2025 10:03:56 +0800 Subject: [PATCH] md --- .../impl/EmisTmsCostFeeServiceImpl.java | 41 ++++++++++++++----- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeServiceImpl.java index e205ca168..d5a9f8bef 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeServiceImpl.java @@ -198,8 +198,8 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT emisTmsCostFeeMapper.insertEmisTmsCostFee(emisTmsCostFee); emisTmsSiteBatchMapper.updateEnteringStatus(emisTmsCostFee.getBatchNo()); - // 计算分摊费用 -// reCalcSplitCostFee(costNo); + // 计算成本分摊费用 + reCalcCostFeeAll(costNo); return 1; } @@ -220,6 +220,7 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT @Transactional public int reCalcCostFeeByBillCode(String billCode) throws EmisBizError { + long start = System.currentTimeMillis(); // 获取运单基础数据 EmisWaybill waybill=emisWaybillMapper.selectWaybillBaseInfoByBillCode(billCode); if(waybill==null){ @@ -257,6 +258,9 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT mergeCostFeeByBillCode(billCode); + long end = System.currentTimeMillis(); + log.error("==reCalcCostFeeByBillCode==> escape time:" + (end - start) + "ms"); + return 1; } @@ -490,7 +494,7 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT splitItem.setDestPlace(quotePriceItem.getNextSiteName()); splitItem.setBillMonth(DateUtils.parseDateToStr(DateUtils.YYYY_MM, waybill.getSendDate())); - splitItem.setTradeDate(waybill.getSignDate()); + splitItem.setTradeDate(quotePriceItem.getEtd()); // 成本分摊 splitItem.setFeeType("1002"); // 网点机场短驳费 @@ -680,12 +684,11 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT mainWaybill=waybill; } - // 计算固定成本费用-取件费 + // 计算固定成本费用 reCalcFixedCostFee(billCode,mainBillCode,waybill,mainWaybill); } // 计算总批次的费用 - reCalcCostFeeOnlyOne(costNo,null,false); // 合并运单费用 @@ -798,6 +801,7 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT */ @Override public int reCalcCostFeeOnlyOne(String costNo,String calcBillCode,boolean isMerge) throws EmisBizError { + long start = System.currentTimeMillis(); // 获取最新的数据 EmisTmsCostFee oldCostFee = emisTmsCostFeeMapper.selectEmisTmsCostFeeByCostNo(costNo); // /* 总票数 总重量 总体积 */ @@ -982,6 +986,9 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT } } } + + long end = System.currentTimeMillis(); + log.info("==reCalcCostFeeOnlyOne==> escape time:" + (end - start) + "ms"); return 1; } @@ -1029,6 +1036,7 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT log.info("==>费用计算:==>:{}:{}-{}=",mainBillCode+":"+billCode,updProfit.getBillFee(),updProfit.getCostFee(),updProfit.getBillProfit()); + return 1; } @@ -1106,7 +1114,7 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT emisTmsCostFeeMapper.updateEmisTmsCostFee(emisTmsCostFee); // 计算分摊费用 -// reCalcCostFeeOnlyOne(costNo); + reCalcCostFeeAll(costNo); return 1; } @@ -1134,16 +1142,27 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT * @param id TMS运输成本账单主键 * @return 结果 */ + @Transactional @Override public int deleteEmisTmsCostFeeById(Long id) { EmisTmsCostFee emisTmsCostFee=emisTmsCostFeeMapper.selectEmisTmsCostFeeById(id); + // 删除该成本关联的费用 + emisTmsCostFeeSplitMapper.deleteEmisTmsCostFeeSplitByCostNo(emisTmsCostFee.getCostNo()); emisTmsCostFeeMapper.deleteEmisTmsCostFeeById(id); -// try { -// reCalcCostFeeOnlyOne(emisTmsCostFee.getCostNo()); -// } catch (EmisBizError emisBizError) { -// emisBizError.printStackTrace(); -// } + + // 重新计算运单成本 + List listBillCodeRel=emisTmsCostFeeMapper.selectCostFeeRelListByCostNo(emisTmsCostFee.getCostNo()); + if(!CollectionUtil.isEmpty(listBillCodeRel)){ + for(CostFeeWaybillRel item:listBillCodeRel){ + try { + mergeCostFeeByBillCode(item.getBillCode()); + }catch (Exception ex){ + ex.printStackTrace(); + } + } + } + return 1; }