diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeRelMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeRelMapper.java index ddbf5497c..b05573692 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeRelMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeRelMapper.java @@ -85,6 +85,11 @@ public interface EmisTmsCostFeeRelMapper extends BaseMapper */ public int deleteEmisTmsCostFeeRelById(Long id); + + public int deleteEmisTmsCostFeeRelByCostNo(String costNo); + + + /** * 批量删除 * diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeService.java index e05740d08..1aee87d80 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeService.java @@ -59,7 +59,7 @@ public interface IEmisTmsCostFeeService * @param emisTmsCostFee TMS运输成本账单 * @return 结果 */ - public int updateEmisTmsCostFee(EmisTmsCostFee emisTmsCostFee); + public int updateEmisTmsCostFee(EmisTmsCostFee emisTmsCostFee) throws EmisBizError; /** * 批量删除TMS运输成本账单 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 d336b031f..92dd8070b 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 @@ -257,9 +257,31 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService * @return 结果 */ @Override - public int updateEmisTmsCostFee(EmisTmsCostFee emisTmsCostFee) + @Transactional + public int updateEmisTmsCostFee(EmisTmsCostFee emisTmsCostFee) throws EmisBizError { - return emisTmsCostFeeMapper.updateEmisTmsCostFee(emisTmsCostFee); + // 删除旧的数据 + emisTmsCostFeeRelMapper.deleteEmisTmsCostFeeRelByCostNo(emisTmsCostFee.getCostNo()); + // billRelList + if(CollectionUtils.isEmpty(emisTmsCostFee.getBillRelList())){ + throw new EmisBizError(EmisBizErrorType.FAIL,"关联单号不能为空"); + } + + String costNo=emisTmsCostFee.getCostNo(); + + // 插入关联单号 + for (EmisTmsCostFeeRel costFeeRel:emisTmsCostFee.getBillRelList() + ) { + EmisTmsCostFeeRel newCostFeeRel = new EmisTmsCostFeeRel(); + newCostFeeRel.setCostNo(costNo); + newCostFeeRel.setBillCode(costFeeRel.getBillCode()); + emisTmsCostFeeRelMapper.insertEmisTmsCostFeeRel(newCostFeeRel); + } + + // 计算分摊费用 + reCalcSplitCostFee(costNo); + + return 1; } /** diff --git a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeRelMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeRelMapper.xml index 5d516b803..f58612bbd 100644 --- a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeRelMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeRelMapper.xml @@ -164,6 +164,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + update emis_tms_cost_fee_rel set del_flag='1' where cost_no = #{costNo} + + update emis_tms_cost_fee_rel set del_flag='1' where id = #{id}