修改基础价格版本功能
This commit is contained in:
@@ -20,6 +20,12 @@ public interface BmsProductCountryMapper
|
||||
/** 按明细行主键更新可编辑字段(重量段/运费/挂号费/尺寸/尾程/时效/生效失效日期) */
|
||||
public int updateBmsProductCountry(BmsProductCountry country);
|
||||
|
||||
/** Import overlay: update price/zone/attrs on matched country row */
|
||||
public int updateBmsProductCountryImport(BmsProductCountry country);
|
||||
|
||||
/** Bind legacy open row to a version */
|
||||
public int updatePpvId(@Param("detailId") Long detailId, @Param("ppvId") Long ppvId);
|
||||
|
||||
public int deleteByProductId(Long productId);
|
||||
|
||||
public int deleteByProductCode(String productCode);
|
||||
@@ -44,6 +50,29 @@ public interface BmsProductCountryMapper
|
||||
@Param("productCode") String productCode,
|
||||
@Param("effectiveDate") Date effectiveDate);
|
||||
|
||||
/** Open country rows (expire_date is null) for product */
|
||||
public List<BmsProductCountry> selectOpenByProductCode(@Param("productCode") String productCode);
|
||||
|
||||
/** Country rows under a price version */
|
||||
public List<BmsProductCountry> selectByPpvId(@Param("ppvId") Long ppvId);
|
||||
|
||||
/** Copy open/source version rows into a new version (new ppv_id / product_id / effective_date) */
|
||||
public int copyCountriesFromVersion(
|
||||
@Param("srcPpvId") Long srcPpvId,
|
||||
@Param("newPpvId") Long newPpvId,
|
||||
@Param("productId") Long productId,
|
||||
@Param("productCode") String productCode,
|
||||
@Param("effectiveDate") Date effectiveDate,
|
||||
@Param("status") String status);
|
||||
|
||||
/** Copy currently open rows (legacy / no ppv_id) into a new version */
|
||||
public int copyOpenCountriesToVersion(
|
||||
@Param("productCode") String productCode,
|
||||
@Param("newPpvId") Long newPpvId,
|
||||
@Param("productId") Long productId,
|
||||
@Param("effectiveDate") Date effectiveDate,
|
||||
@Param("status") String status);
|
||||
|
||||
/**
|
||||
* Match by product + country + weight + bizDate (+ optional zoneCode).
|
||||
* When zoneCode is empty, prefer rows without zone.
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package com.bms.price.mapper;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.bms.price.domain.BmsProductPriceVersion;
|
||||
|
||||
/**
|
||||
* Product base price version
|
||||
*/
|
||||
public interface BmsProductPriceVersionMapper
|
||||
{
|
||||
public BmsProductPriceVersion selectBmsProductPriceVersionById(Long ppvId);
|
||||
|
||||
/** Open version (expire_date is null), prefer latest effective_date */
|
||||
public BmsProductPriceVersion selectOpenByProductCode(@Param("productCode") String productCode);
|
||||
|
||||
public BmsProductPriceVersion selectByProductCodeAndEffectiveDate(
|
||||
@Param("productCode") String productCode,
|
||||
@Param("effectiveDate") Date effectiveDate);
|
||||
|
||||
public Integer selectMaxVersionSeq(@Param("productCode") String productCode);
|
||||
|
||||
/** Distinct effective_date options for package create dropdown (desc) */
|
||||
public List<BmsProductPriceVersion> selectVersionOptions();
|
||||
|
||||
public int insertBmsProductPriceVersion(BmsProductPriceVersion version);
|
||||
|
||||
public int updateBmsProductPriceVersion(BmsProductPriceVersion version);
|
||||
|
||||
/** Close open versions: set expire_date = newEffectiveDate where effective_date < newEffectiveDate */
|
||||
public int expireOpenByProductCode(
|
||||
@Param("productCode") String productCode,
|
||||
@Param("newEffectiveDate") Date newEffectiveDate);
|
||||
|
||||
/** Recompute status from effective_date / expire_date vs today */
|
||||
public int refreshStatusByDates();
|
||||
}
|
||||
@@ -42,19 +42,22 @@ public interface PrcPriceSetDetailMapper
|
||||
public int copyDetailsFromVersion(@Param("srcPsvId") Long srcPsvId, @Param("newPsvId") Long newPsvId);
|
||||
|
||||
/**
|
||||
* FIXED: insert details from active product + country library (asOf window or openOnly fallback).
|
||||
* @return inserted row count
|
||||
* FIXED: insert details from product country library.
|
||||
* When baseVersionNo is set, pull that base-price version only;
|
||||
* otherwise asOf window or openOnly fallback.
|
||||
*/
|
||||
public int insertFixedDetailsFromLibrary(
|
||||
@Param("priceSetId") Long priceSetId,
|
||||
@Param("psvId") Long psvId,
|
||||
@Param("asOf") Date asOf,
|
||||
@Param("openOnly") boolean openOnly);
|
||||
@Param("openOnly") boolean openOnly,
|
||||
@Param("baseVersionNo") String baseVersionNo);
|
||||
|
||||
/** DISCOUNT: one detail row per active product */
|
||||
/** DISCOUNT: one detail row per product (optionally scoped to base version_no) */
|
||||
public int insertDiscountDetailsFromLibrary(
|
||||
@Param("priceSetId") Long priceSetId,
|
||||
@Param("psvId") Long psvId);
|
||||
@Param("psvId") Long psvId,
|
||||
@Param("baseVersionNo") String baseVersionNo);
|
||||
|
||||
/** FIXED: product + country + zone + productCountryId / weight; optional psvId scopes to version */
|
||||
public PrcPriceSetDetail selectFixedMatch(
|
||||
|
||||
Reference in New Issue
Block a user