diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisQuotePrice.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisQuotePrice.java index c744b4742..079c66e4d 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisQuotePrice.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisQuotePrice.java @@ -130,4 +130,7 @@ public class EmisQuotePrice extends BaseEntity private List exprList; + // 计算报价日期 + private Date calcDate; + } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisQuotePriceMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisQuotePriceMapper.java index 62e5c0b7f..0ef455a64 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisQuotePriceMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisQuotePriceMapper.java @@ -36,6 +36,13 @@ public interface EmisQuotePriceMapper extends BaseMapper */ public List selectEmisQuotePriceList(EmisQuotePrice emisQuotePrice); + /** + * 根据计算日期获取当时有效报价 + * @param emisQuotePrice + * @return + */ + public List selectQuotePriceListByCalcDate(EmisQuotePrice emisQuotePrice); + /** * 新增 * diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index 5ec36d85d..7d7f8e130 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -3646,6 +3646,7 @@ public class EmisBaseService { } + /** * 获取有效产品报价 * @param lineCode @@ -3653,6 +3654,9 @@ public class EmisBaseService { * @param sendSiteCode * @param destSiteCode * @param billType + * @param customerCode + * @param custNo + * @param calcDate * @return */ public List getValidQuotePriceList( @@ -3662,13 +3666,16 @@ public class EmisBaseService { String destSiteCode, String billType, String customerCode, - String custNo + String custNo, + Date calcDate ) { EmisQuotePrice queryEmisQuotePrice = new EmisQuotePrice(); queryEmisQuotePrice.setTransLineCode(lineCode); queryEmisQuotePrice.setProdCode(prodCode); queryEmisQuotePrice.setStatus(1); + queryEmisQuotePrice.setCalcDate(calcDate); + // 有效报价 在有效期内,并且未失效的报价 queryEmisQuotePrice.getParams().put("quoteStatus",4); queryEmisQuotePrice.setBillType(billType); @@ -3686,7 +3693,9 @@ public class EmisBaseService { queryEmisQuotePrice.setCustomerCode(null); queryEmisQuotePrice.setCustNo(custNo); - List listQuoteVip = emisQuotePriceMapper.selectEmisQuotePriceList(queryEmisQuotePrice); +// bug: 1704 按照运单号开单日期去报价表抓取对应的报价进行计算 +// List listQuoteVip = emisQuotePriceMapper.selectEmisQuotePriceList(queryEmisQuotePrice); + List listQuoteVip = emisQuotePriceMapper.selectQuotePriceListByCalcDate(queryEmisQuotePrice); for (EmisQuotePrice item : listQuoteVip) { existsMap.put(item.getFeeType(), "1"); listQuoteValid.add(item); @@ -3696,7 +3705,11 @@ public class EmisBaseService { queryEmisQuotePrice.setCustomerCode(null); queryEmisQuotePrice.setCustNo(null); queryEmisQuotePrice.setQuoteType("1,2"); - List listQuote = emisQuotePriceMapper.selectEmisQuotePriceList(queryEmisQuotePrice); + queryEmisQuotePrice.setCalcDate(calcDate); + +// bug: 1704 按照运单号开单日期去报价表抓取对应的报价进行计算 + // List listQuote = emisQuotePriceMapper.selectEmisQuotePriceList(queryEmisQuotePrice); + List listQuote = emisQuotePriceMapper.selectQuotePriceListByCalcDate(queryEmisQuotePrice); for (EmisQuotePrice item:listQuote) { if(existsMap.containsKey(item.getFeeType())){ continue; diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 60d50f294..a6b692bb6 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -3892,10 +3892,15 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb emisWaybill.setSettlementWeight(BigDecimal.ZERO); } + // 如果寄件日期是空的则取当前时间 + if(emisWaybill.getSendDate() == null){ + emisWaybill.setSendDate(new Date()); + } + // bug: 1704 按照运单号开单日期去报价表抓取对应的报价进行计算 List emisQuotePriceList=getValidQuotePriceList(emisWaybill.getTransLineType(),emisWaybill.getProductType(), emisWaybill.getSendSiteCode(),emisWaybill.getDispatchUnderlingSiteCode(), - emisWaybill.getCalcFeeType(),emisWaybill.getCustomerCode(),emisWaybill.getCustNo() + emisWaybill.getCalcFeeType(),emisWaybill.getCustomerCode(),emisWaybill.getCustNo(),emisWaybill.getSendDate() ); diff --git a/emis-biz/src/main/resources/mapper/EmisQuotePriceMapper.xml b/emis-biz/src/main/resources/mapper/EmisQuotePriceMapper.xml index 0608b74b2..bbd24942e 100644 --- a/emis-biz/src/main/resources/mapper/EmisQuotePriceMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisQuotePriceMapper.xml @@ -141,7 +141,6 @@ ) - and status=1 @@ -159,6 +158,109 @@ order by create_time desc + + +