diff --git a/src/main/java/com/dev/stms/server/service/order/pojo/DefaultOrderManager.java b/src/main/java/com/dev/stms/server/service/order/pojo/DefaultOrderManager.java index dd5eb99..f8919ad 100644 --- a/src/main/java/com/dev/stms/server/service/order/pojo/DefaultOrderManager.java +++ b/src/main/java/com/dev/stms/server/service/order/pojo/DefaultOrderManager.java @@ -1554,7 +1554,9 @@ public class DefaultOrderManager extends DefaultBaseManager implements this.createWHSLFee(order); } else if (cusCode.equals("WL")) { this.createWLFee(order); - } else { + } else if (cusCode.equals("LX")) { + this.createLXFee(order); + }else { // ZY,FT,DKN,JL,GQCQ order.setWeightThree(order.getWeight()); if (cusCode.equals("JL") || cusCode.equals("lk")) { @@ -9230,8 +9232,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements this.commonDao.store(fee); order.setFreight(order.getPredictFee()); this.commonDao.store(order); - feeManager.refreshBillFee(order.getId(), - BillObjectType.ORDER, Boolean.TRUE); } else { if (fee.getTotalFee() - order.getPredictFee() == 0) { continue; @@ -9242,9 +9242,7 @@ public class DefaultOrderManager extends DefaultBaseManager implements fee.setTotalFee(order.getPredictFee()); fee.setDescription(order.getPredictFee() + "货值"); this.commonDao.store(fee); - feeManager.refreshBillFee(order.getId(), - BillObjectType.ORDER, Boolean.TRUE); - + } order.setFreight(order.getPredictFee()); this.commonDao.store(order); @@ -9276,8 +9274,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements order.setFreight(order.getPredictFee()); this.commonDao.store(order); } - feeManager.refreshBillFee(order.getId(), - BillObjectType.ORDER, Boolean.TRUE); } } } @@ -9363,8 +9359,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements + cr.getDeliveryFee(); feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "送货费", price); - feeManager.refreshBillFee(order.getId(), - BillObjectType.ORDER, Boolean.TRUE); } } if (mdOrders.size() > 0) { @@ -9372,8 +9366,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements price = 30 / mdOrders.size(); feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "提货费", price); - feeManager.refreshBillFee(order.getId(), - BillObjectType.ORDER, Boolean.TRUE); } } @@ -9383,8 +9375,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements + cr.getDeliveryFee(); feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "送货费", price); - feeManager.refreshBillFee(order.getId(), - BillObjectType.ORDER, Boolean.TRUE); // feeManager.createContractFee(order.getRelateBill3(), // order.getId(), BillObjectType.ORDER, order, cr, price, 1, // FeePayReceive.RECEIVE, false, shf); @@ -9408,8 +9398,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements .saveInputFee(o.getId(), BillObjectType.ORDER, null, "提货费", thff); - feeManager.refreshBillFee(o.getId(), - BillObjectType.ORDER, Boolean.TRUE); } } } @@ -9444,14 +9432,10 @@ public class DefaultOrderManager extends DefaultBaseManager implements price = 1100 / volume * o.getVolume(); feeManager.saveInputFee(o.getId(), billObject, null, "运输费", price); - feeManager.refreshBillFee(o.getId(), billObject, - Boolean.TRUE); } else { price = 100 * o.getVolume(); feeManager.saveInputFee(o.getId(), billObject, null, "运输费", price); - feeManager.refreshBillFee(o.getId(), billObject, - Boolean.TRUE); } } } @@ -9647,8 +9631,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements double ysf = order.getQuantity() * price; feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "运输费", ysf); - feeManager.refreshBillFee(order.getId(), BillObjectType.ORDER, - Boolean.TRUE); } } @@ -9674,8 +9656,78 @@ public class DefaultOrderManager extends DefaultBaseManager implements double ysf = price / zvolume * order.getVolume(); feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "运输费", ysf); - feeManager.refreshBillFee(order.getId(), BillObjectType.ORDER, - Boolean.TRUE); + } + + void createLXFee(Order order) { + //理想客户2种计费方式:1.按车型;2.按线路 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (order.getExtends1()==null) { + //按线路 + String con_hql="from Contract co where co.balance.id=:id"; + List Contracts = commonDao.findByQuery(con_hql, + new String[] { "id" }, new Object[] { order.getConsignor().getId() }); + if (Contracts.isEmpty()) { + return; + } + + //合同 + Contract con = Contracts.get(0); + String cr_hql="from ContractRate cr where cr.contract.id=:id and cr.routeFee.fromCity.id=:fromCityId and cr.routeFee.toCity.id=:toCityId"; + List ContractRates = commonDao.findByQuery(cr_hql, + new String[] { "id", "fromCityId", "toCityId" }, + new Object[] { con.getId(),order.getFromCityCountiy().getId(),order.getToCityCountiy().getId()}); + if (ContractRates.isEmpty()) { + return; + } + + //合同明细 + ContractRate cr = ContractRates.get(0); + + // 价格 + double price = cr.getVehiclePrice(); + + // 单票体积 + double volume = order.getVolume(); + + // 总体积 + String totalVolume_hql="select nvl(sum(o.volume),0) from Order o where o.consignor.id=:id and to_char(o.planFromDate,'yyyy-MM-dd')=:planFromDate and o.toName=:toName"; + double totalVolume = (Double) commonDao.findByQuery(totalVolume_hql, + new String[] { "id", "planFromDate", "toName" }, + new Object[] { order.getConsignor().getId(),sdf.format(order.getPlanFromDate()),order.getToName()}).get(0); + + //小于1个方按最低起步价算 + if(totalVolume<1){ + price=cr.getMinPrice();//最低起步价 + } + + // 运输费分摊到每票;送货费分摊到每票 + double ysf = DoubleUtils.format2Fraction(price * volume / totalVolume); + feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null,"运输费", ysf); + + }else{ + //按车型 + String totalVolume_hql="select nvl(sum(o.volume),0) from Order o where o.consignor.id=:id and to_char(o.planFromDate,'yyyy-MM-dd')=:planFromDate and o.extends1.id=:extends1Id"; + double totalVolume = (Double) commonDao.findByQuery(totalVolume_hql, + new String[] { "id", "planFromDate", "extends1Id" }, + new Object[] { order.getConsignor().getId(),sdf.format(order.getPlanFromDate()), + order.getExtends1().getId() }).get(0); + + // 车型价格 + double price = Double.parseDouble(order.getExtends1().getDescription()); + + // 单票体积 + double volume = order.getVolume(); + + //运输费 + double ysf = DoubleUtils.format2Fraction(price * volume / totalVolume); + feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null,"运输费", ysf); + + //送货费 + double shf_price=65.4; + double shf = DoubleUtils.format2Fraction(shf_price * volume / totalVolume); + feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null,"送货费", shf); + } + } void createZYJLFee(Order order) { @@ -9713,8 +9765,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements double totalFee = DoubleUtils.format3Fraction(price * volume); feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "运输费", totalFee); - feeManager.refreshBillFee(order.getId(), BillObjectType.ORDER, - Boolean.TRUE); if (zvolume < 1) { // 当日单门店合计方数不足1个方+50元送货费(长沙、南昌除外) if (order.getToCityCountiy().getName().equals("长沙市") @@ -9723,15 +9773,11 @@ public class DefaultOrderManager extends DefaultBaseManager implements double shf = 0; feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "送货费", shf); - feeManager.refreshBillFee(order.getId(), - BillObjectType.ORDER, Boolean.TRUE); } else { double shf = DoubleUtils.format3Fraction(50 / zvolume * volume); feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "送货费", shf); - feeManager.refreshBillFee(order.getId(), - BillObjectType.ORDER, Boolean.TRUE); } } @@ -9861,8 +9907,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements "运输费", ysf); feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "送货费", shf); - feeManager.refreshBillFee(order.getId(), BillObjectType.ORDER, - Boolean.TRUE); } @@ -9915,8 +9959,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements this.commonDao.store(f); feeManager.saveInputFee(order.getId(), BillObjectType.ORDER, null, "运输费", ysf); - feeManager.refreshBillFee(order.getId(), BillObjectType.ORDER, - Boolean.TRUE); } else { double zysf = price * 0.5 * volume / zvolume; // 运输费分摊到每票;送货费分摊到每票 @@ -9927,8 +9969,6 @@ public class DefaultOrderManager extends DefaultBaseManager implements + zvolume); f.setBeShare(Boolean.TRUE); this.commonDao.store(f); - feeManager.refreshBillFee(order.getId(), BillObjectType.ORDER, - Boolean.TRUE); } }