diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostProfit.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostProfit.java index 221c061a0..0b9f7224c 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostProfit.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostProfit.java @@ -1,10 +1,10 @@ -/** +/** * @Project: emis * @Title: EmisTmsCostProfit.java * @author linfso * @date 2024-10-10 01:53:23 * @Copyright: ShangHai Duta 2022 All rights reserved. - * @version v1.0 + * @version v1.0 * @Description:

运输运单利润统计表 实体类

*/ @@ -52,6 +52,18 @@ public class EmisTmsCostProfit extends BaseEntity private BigDecimal costFee; /* 运单利润 */ private BigDecimal billProfit; + /* 理赔金额 */ + private BigDecimal satisfyMoney; + /* 折让金额 */ + private BigDecimal allowanceMoney; + /* 抵扣金额 */ + private BigDecimal deductionMoney; + /* 其他金额 */ + private BigDecimal otherMoney; + /* 批次状态 1:已完成,2:未完成,3:部分完成 */ + private String batchStatus; + /* 成本状态 1:已完成,2:未完成,3:部分完成 */ + private String costStatus; // 扩展参数 private EmisWaybill waybillDetail; diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisInvoiceCancellationServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisInvoiceCancellationServiceImpl.java index a4a1577e9..01a38635e 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisInvoiceCancellationServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisInvoiceCancellationServiceImpl.java @@ -44,7 +44,15 @@ public class EmisInvoiceCancellationServiceImpl implements IEmisInvoiceCancellat @Override public EmisInvoiceCancellation selectEmisInvoiceCancellationById(Long id) { - return emisInvoiceCancellationMapper.selectEmisInvoiceCancellationById(id); + EmisInvoiceCancellation emisInvoiceCancellation = emisInvoiceCancellationMapper.selectEmisInvoiceCancellationById(id); +// if (emisInvoiceCancellation == null) { +// return emisInvoiceCancellation; +// } +// if (emisInvoiceCancellation.getEmisSettleInvoiceRecord() == null) { +// return emisInvoiceCancellation; +// } +// emisInvoiceCancellation.getEmisSettleInvoiceRecord().setInvoiceStatus("2"); + return emisInvoiceCancellation; } /** 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 1dbaa8e48..7cf979c33 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 @@ -77,6 +77,12 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT @Autowired private EmisTmsCostQuotePriceMapper emisTmsCostQuotePriceMapper; + @Autowired + private EmisSettleSubBillMapper emisSettleSubBillMapper; + + @Autowired + private EmisSettleBillMapper emisSettleBillMapper; + /** * 查询TMS运输成本账单 * @param id TMS运输成本账单主键 @@ -1260,7 +1266,36 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT // 获取主单成本费用 double costFee=emisTmsCostFeeSplitMapper.getCostFeeByMainBillCode(mainBillCode); updProfit.setCostFee(BigDecimal.valueOf(costFee)); - updProfit.setBillProfit(emisTmsCostProfit.getBillFee().subtract(updProfit.getCostFee())); + + // 根据mainBillCode查询账单表获取理赔金额、折让金额、抵扣金额、其他金额 + List settleSubBillList = emisSettleSubBillMapper.selectSettleSubBillListByBillCode(mainBillCode); + if (CollectionUtils.isNotEmpty(settleSubBillList)) { + // 获取第一个子账单的settleBillNo + String settleBillNo = settleSubBillList.get(0).getSettleBillNo(); + if (StringUtils.isNotBlank(settleBillNo)) { + // 查询该总账单下的所有子账单,判断是否只对应一个运单 + List allSubBillList = emisSettleSubBillMapper.selectSubBillListBySettleBillNo(settleBillNo); + if (CollectionUtils.isNotEmpty(allSubBillList) && allSubBillList.size() == 1) { + // 账单只对应一个运单,查询总账单获取理赔金额、折让金额、抵扣金额、其他金额 + EmisSettleBill settleBill = emisSettleBillMapper.selectSettleBillBySettleBillNo(settleBillNo); + if (settleBill != null) { + updProfit.setSatisfyMoney(settleBill.getSatisfyMoney() != null ? settleBill.getSatisfyMoney() : BigDecimal.ZERO); + updProfit.setAllowanceMoney(settleBill.getAllowanceMoney() != null ? settleBill.getAllowanceMoney() : BigDecimal.ZERO); + updProfit.setDeductionMoney(settleBill.getDeductionMoney() != null ? settleBill.getDeductionMoney() : BigDecimal.ZERO); + updProfit.setOtherMoney(settleBill.getOtherMoney() != null ? settleBill.getOtherMoney() : BigDecimal.ZERO); + } + } + } + } + + // 计算运单利润:运单费用 - 运输成本 - 理赔金额 - 折让金额 - 抵扣金额 - 其他金额 + BigDecimal billProfit = emisTmsCostProfit.getBillFee() + .subtract(updProfit.getCostFee()) + .subtract(updProfit.getSatisfyMoney() != null ? updProfit.getSatisfyMoney() : BigDecimal.ZERO) + .subtract(updProfit.getAllowanceMoney() != null ? updProfit.getAllowanceMoney() : BigDecimal.ZERO) + .subtract(updProfit.getDeductionMoney() != null ? updProfit.getDeductionMoney() : BigDecimal.ZERO) + .subtract(updProfit.getOtherMoney() != null ? updProfit.getOtherMoney() : BigDecimal.ZERO); + updProfit.setBillProfit(billProfit); emisTmsCostProfitMapper.updateEmisTmsCostProfit(updProfit); } diff --git a/emis-biz/src/main/resources/mapper/EmisTmsCostProfitMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsCostProfitMapper.xml index b1cfdcad1..b8a255def 100644 --- a/emis-biz/src/main/resources/mapper/EmisTmsCostProfitMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTmsCostProfitMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -12,6 +12,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + @@ -24,6 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, bill_code,bill_month, standard_fee, bill_fee, cost_fee, bill_profit, + satisfy_money, allowance_money, deduction_money, other_money, remark, del_flag, create_by, create_time, update_by, update_time, create_site, update_site from emis_tms_cost_profit @@ -32,7 +39,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -155,15 +208,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and update_site = #{updateSite} limit 1 - + @@ -178,6 +231,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bill_fee, cost_fee, bill_profit, + satisfy_money, + allowance_money, + deduction_money, + other_money, remark, del_flag, create_by, @@ -195,6 +252,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{billFee}, #{costFee}, #{billProfit}, + #{satisfyMoney}, + #{allowanceMoney}, + #{deductionMoney}, + #{otherMoney}, #{remark}, #{delFlag}, #{createBy}, @@ -215,6 +276,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bill_fee = #{billFee}, cost_fee = #{costFee}, bill_profit = #{billProfit}, + satisfy_money = #{satisfyMoney}, + allowance_money = #{allowanceMoney}, + deduction_money = #{deductionMoney}, + other_money = #{otherMoney}, remark = #{remark}, del_flag = #{delFlag}, create_by = #{createBy}, @@ -237,4 +302,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} - \ No newline at end of file +