diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeRel.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeRel.java
index e163376b1..ac4a1edf8 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeRel.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeRel.java
@@ -42,18 +42,6 @@ public class EmisTmsCostFeeRel extends BaseEntity
private String costNo;
/* 运单号 */
private String billCode;
- /* 成本费用类型 字典 emis_cost_fee_type */
- private String feeType;
- /* 成本分摊类型 1-按重量 2-按体积 3-按票 */
- private String splitType;
- /* 分摊成本 */
- private BigDecimal costFee;
- /* 总体积 */
- private BigDecimal totalVolume;
- /* 实际重量 */
- private BigDecimal billWeight;
- /* 计算备注 */
- private String calcRemark;
// 扩展参数
private EmisWaybill waybillDetail;
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeFeeitemMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeFeeitemMapper.java
index 0dce230cd..cebdc3ed8 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeFeeitemMapper.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeFeeitemMapper.java
@@ -13,6 +13,8 @@ package com.xdadan.erp.emis.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xdadan.erp.emis.domain.EmisTmsCostFeeFeeitem;
+import com.xdadan.erp.emis.domain.EmisTmsCostFeeRel;
+
/**
* @ClassName EmisTmsCostFeeFeeitemMapper
* @Description
成本费用条目 Mapper 接口
@@ -36,6 +38,7 @@ public interface EmisTmsCostFeeFeeitemMapper extends BaseMapper selectEmisTmsCostFeeFeeitemList(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem);
+ public List selectEmisTmsCostFeeFeeitemByCostNo(String costNo);
/**
* 检查是否重复
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 b05573692..b16abe33f 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
@@ -49,7 +49,6 @@ public interface EmisTmsCostFeeRelMapper extends BaseMapper
public List selectEmisTmsCostFeeRelListByBillCode(String billCode);
- public double getCostFeeByBillCode(String billCode);
/**
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeSplitMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeSplitMapper.java
index 9a5115a95..c16f2a18a 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeSplitMapper.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeSplitMapper.java
@@ -44,7 +44,10 @@ public interface EmisTmsCostFeeSplitMapper extends BaseMapper listFeeRel=emisTmsCostFeeRelMapper.selectEmisTmsCostFeeRelListByCostNo(costNo);
- if(CollectionUtil.isEmpty(listFeeRel)){
+ // 获取子单号
+ List listBillCodeRel=emisTmsCostFeeRelMapper.selectEmisTmsCostFeeRelListByCostNo(costNo);
+ if(CollectionUtil.isEmpty(listBillCodeRel)){
throw new EmisBizError(EmisBizErrorType.FAIL,"子运单数量为空,请检查");
}
+ // 获取子费用
+ List listFeeItemRel=emisTmsCostFeeFeeitemMapper.selectEmisTmsCostFeeFeeitemByCostNo(costNo);
+ if(CollectionUtil.isEmpty(listFeeItemRel)){
+ throw new EmisBizError(EmisBizErrorType.FAIL,"费用为空,请检查");
+ }
+
+
Integer pieceNumber = 0;
// 计算总重量
- for (EmisTmsCostFeeRel feeRel: listFeeRel) {
+ for (EmisTmsCostFeeRel billCodeRel: listBillCodeRel) {
// 获取运单信息
- EmisWaybill emisWaybill=feeRel.getWaybillDetail();
+ EmisWaybill emisWaybill=billCodeRel.getWaybillDetail();
// 累加应收
totalWeight=totalWeight.add(emisWaybill.getBillWeight());
totalVolume=totalVolume.add(emisWaybill.getTotalVolume());
pieceNumber=pieceNumber+emisWaybill.getParcelQty();
}
- Integer sendPieceSum = listFeeRel.size();
+ Integer sendPieceSum = listBillCodeRel.size();
// 计算分摊成本
- for (EmisTmsCostFeeRel feeRel: listFeeRel) {
- EmisTmsCostFeeRel updRel = new EmisTmsCostFeeRel();
- updRel.setId(feeRel.getId());
- updRel.setFeeType(old.getFeeType());
- updRel.setSplitType(old.getSplitType());
+ for (EmisTmsCostFeeRel billCodeItem: listBillCodeRel) {
- BigDecimal splitCostFee=BigDecimal.ZERO;
- BigDecimal splitRate=BigDecimal.ZERO;
- // 按重量分摊
- if("1".equals(updRel.getSplitType()) ){
- splitRate = feeRel.getWaybillDetail().getBillWeight().divide(totalWeight,BigDecimal.ROUND_CEILING);
- }
- // 按体积
- else if("2".equals(updRel.getSplitType()) ){
- splitRate = feeRel.getWaybillDetail().getTotalVolume().divide(totalVolume,BigDecimal.ROUND_CEILING);
- }
- // 按票
- else if("3".equals(updRel.getSplitType()) ){
- splitRate = BigDecimal.valueOf(1.0D/(double)sendPieceSum);
- }
- splitCostFee = old.getCostFee().multiply(splitRate);
- updRel.setCostFee(splitCostFee);
+ // 循环费用类型
+ for (EmisTmsCostFeeFeeitem feeItem: listFeeItemRel) {
- updRel.setBillWeight(feeRel.getWaybillDetail().getBillWeight());
- updRel.setTotalVolume(feeRel.getWaybillDetail().getTotalVolume());
+ EmisTmsCostFeeSplit splitItem = new EmisTmsCostFeeSplit();
+ splitItem.setFeeItemId(feeItem.getId());
+ splitItem.setFeeType(oldCostFee.getFeeType());
+ splitItem.setSplitType(oldCostFee.getSplitType());
- emisTmsCostFeeRelMapper.updateEmisTmsCostFeeRel(updRel);
+ BigDecimal splitCostFee = BigDecimal.ZERO;
+ BigDecimal splitRate = BigDecimal.ZERO;
+ // 按重量分摊
+ if ("1".equals(oldCostFee.getSplitType())) {
+ splitRate = billCodeItem.getWaybillDetail().getBillWeight().divide(totalWeight, BigDecimal.ROUND_CEILING);
+ }
+ // 按体积
+ else if ("2".equals(oldCostFee.getSplitType())) {
+ splitRate = billCodeItem.getWaybillDetail().getTotalVolume().divide(totalVolume, BigDecimal.ROUND_CEILING);
+ }
+ // 按票
+ else if ("3".equals(oldCostFee.getSplitType())) {
+ splitRate = BigDecimal.valueOf(1.0D / (double) sendPieceSum);
+ }
+ splitCostFee = oldCostFee.getCostFee().multiply(splitRate);
+ splitItem.setCostFee(splitCostFee);
+
+ splitItem.setBillWeight(billCodeItem.getWaybillDetail().getBillWeight());
+ splitItem.setTotalVolume(billCodeItem.getWaybillDetail().getTotalVolume());
+
+ // 插入分摊明细数据
+ emisTmsCostFeeSplitMapper.insertEmisTmsCostFeeSplit(splitItem);
+ }
}
EmisTmsCostFee emisTmsCostFee = new EmisTmsCostFee();
- emisTmsCostFee.setId(old.getId());
+ emisTmsCostFee.setId(oldCostFee.getId());
// 总票数 总件数 总重量 总体积
emisTmsCostFee.setSendPieceSum(sendPieceSum);
emisTmsCostFee.setPieceNumber(pieceNumber);
@@ -209,8 +225,8 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
emisTmsCostFee.setTotalVolume(totalVolume);
emisTmsCostFeeMapper.updateEmisTmsCostFee(emisTmsCostFee);
- // 重算单个运单费用
- for (EmisTmsCostFeeRel feeRel: listFeeRel) {
+ // 重算每一单成本分摊重算,利润
+ for (EmisTmsCostFeeRel feeRel: listBillCodeRel) {
try {
reCalcCostFeeByBillCode(feeRel.getBillCode());
}catch (Exception ex){
@@ -221,7 +237,7 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
}
/**
- * 重算每一单成本分摊重算
+ * 重算每一单成本分摊重算,利润
* @param billCode
* @return
* @throws EmisBizError
@@ -246,7 +262,7 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
updProfit.setBillFee(emisTmsCostProfit.getBillFee());
// 获取成本费用
- double costFee=emisTmsCostFeeRelMapper.getCostFeeByBillCode(billCode);
+ double costFee=emisTmsCostFeeSplitMapper.getCostFeeByBillCode(billCode);
updProfit.setCostFee(BigDecimal.valueOf(costFee));
updProfit.setBillProfit(emisTmsCostProfit.getBillFee().subtract(updProfit.getCostFee()));
emisTmsCostProfitMapper.updateEmisTmsCostProfit(updProfit);
diff --git a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeFeeitemMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeFeeitemMapper.xml
index e01f44b45..bc55ab59d 100644
--- a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeFeeitemMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeFeeitemMapper.xml
@@ -66,7 +66,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from emis_tms_cost_fee_feeitem a
where a.id = #{id}
-
+
+
+
insert into emis_tms_cost_fee_feeitem
diff --git a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeRelMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeRelMapper.xml
index f58612bbd..ba318e912 100644
--- a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeRelMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeRelMapper.xml
@@ -8,12 +8,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-
-
-
-
-
-
@@ -26,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- select id, cost_no, bill_code, fee_type, split_type, cost_fee, total_volume, bill_weight, calc_remark, remark, del_flag, create_by, create_time, update_by, update_time, create_site, update_site from emis_tms_cost_fee_rel
+ select id, cost_no, bill_code, remark, del_flag, create_by, create_time, update_by, update_time, create_site, update_site from emis_tms_cost_fee_rel
-
+
insert into emis_tms_cost_fee_rel
diff --git a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeSplitMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeSplitMapper.xml
index c8fcd63ad..83ae31a86 100644
--- a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeSplitMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeSplitMapper.xml
@@ -145,12 +145,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id}
+
+
- delete from emis_tms_cost_fee_split where id = #{id}
+ update emis_tms_cost_fee_split set del_flag='1' where id = #{id}
- delete from emis_tms_cost_fee_split where id in
+ update emis_tms_cost_fee_split set del_flag='1' where id in
#{id}