diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeMapper.java index 95eec4c82..9d35cbca8 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeMapper.java @@ -54,6 +54,9 @@ public interface EmisTmsCostFeeMapper extends BaseMapper // 获取最小化的运单信息 public EmisWaybill selectThinWaybillInfoByCostFeeCalc(String billCode); + + public List selectThinWaybillListByMainBillCode(String mainBillCode); + // 成本和费用关系 public List selectCostFeeRelListByCostNo(String costNo); 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 cf355e3be..9f605730e 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 @@ -240,10 +240,13 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT }else{ mainWaybill=waybill; } + // 虚拟单备注 + String virtualRemark=mainWaybill.getVirtualRemark(); // 计算固定成本费用-取件费 reCalcFixedCostFee(billCode,mainBillCode,waybill,mainWaybill); + // 搜索已录入成本的费用分摊 List listBillCodeRel=emisTmsCostFeeMapper.selectCostFeeRelListByBillCode(billCode); if(!CollectionUtil.isEmpty(listBillCodeRel)){ @@ -256,6 +259,34 @@ public class EmisTmsCostFeeServiceImpl extends EmisBaseService implements IEmisT } } + // 计算同主单下的虚拟单 + if(!StringUtils.isEmpty(virtualRemark)) { + List listChildWaybill=emisTmsCostFeeMapper.selectThinWaybillListByMainBillCode(mainBillCode); + if(CollectionUtils.isEmpty(listChildWaybill)){ + for(CostFeeWaybillRel childItem:listChildWaybill){ + + String childBillCode=childItem.getBillCode(); + + if(childBillCode.equals(billCode)){ + continue; + } + + // 计算虚拟单的每一个批次 + List listChildBillCodeRel=emisTmsCostFeeMapper.selectCostFeeRelListByBillCode(childBillCode); + if(!CollectionUtil.isEmpty(listChildBillCodeRel)){ + for(CostFeeWaybillRel item:listChildBillCodeRel){ + try { + reCalcCostFeeOnlyOne(item.getCostNo(),childBillCode,false); + }catch (Exception ex){ + ex.printStackTrace(); + } + } + } + + } + } + } + mergeCostFeeByBillCode(billCode); diff --git a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeMapper.xml index b51ccab40..4fc735cdc 100644 --- a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeMapper.xml @@ -136,6 +136,7 @@ a.settlement_weight as settlementWeight, a.freight as freight, a.bl_virtual as blVirtual, + a.virtual_remark as virtualRemark, a.master_bill_code as masterBillCode, a.send_date as sendDate, a.take_piece_employee_code as takePieceEmployeeCode, @@ -145,11 +146,35 @@ a.dispatch_underling_site_code as dispatchUnderlingSiteCode, a.dispatch_date as dispatchDate - FROM emis_waybill a WHERE a.del_flag = '0' and bill_code=#{billCode} + +