master:store_customer_product_discount添加prod_art_num字段;

pull/1121/head
liujiang 2025-11-01 13:53:02 +08:00
parent 486be57891
commit dd9e14fb79
12 changed files with 40 additions and 33 deletions

View File

@ -361,7 +361,8 @@ public class FhbOtherBizAfterController extends BaseController {
fhbArtNoList.forEach(fhbArtNo -> {
// 处理档口客户商品优惠
this.handleCusDisc(fhbArtNo, fhbExistArtNoColorMap, fhbCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, storeProd.getStoreId(), storeProd.getId(), prodCusDiscList);
this.handleCusDisc(fhbArtNo, fhbExistArtNoColorMap, fhbCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap,
storeProd.getStoreId(), storeProd.getId(), prodCusDiscList);
});
});
@ -404,7 +405,7 @@ public class FhbOtherBizAfterController extends BaseController {
StoreCustomer storeCus = Optional.ofNullable(buJuStoreCusMap.get(fhbCusDisc.getCustomerName()))
.orElseThrow(() -> new ServiceException("没有步橘系统对应的客户!" + fhbCusDisc.getCustomerName(), HttpStatus.ERROR));
// 将FHB客户优惠 转为步橘系统优惠
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId())
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setProdArtNum(fhbCusDisc.getArtNo()).setStoreCusId(storeCus.getId())
.setStoreCusName(storeCus.getCusName()).setStoreProdColorId(buJuProdColor.getId()).setDiscount(fhbCusDisc.getDiscount()));
}
});

View File

@ -514,7 +514,8 @@ public class GtAndFhbBizController extends BaseController {
this.handleProdStock(fhbArtNoList, fhbStockGroupMap, buJuProdColorMap, storeProd.getStoreId(), storeProd.getId(), storeProd.getProdArtNum(), prodStockList);
fhbArtNoList.forEach(fhbArtNo -> {
// 处理档口客户商品优惠
this.handleCusDisc(fhbArtNo, fhbExistArtNoColorMap, fhbCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, storeProd.getStoreId(), storeProd.getId(), prodCusDiscList);
this.handleCusDisc(fhbArtNo, fhbExistArtNoColorMap, fhbCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, storeProd.getStoreId(),
storeProd.getId(), storeProd.getProdArtNum(), prodCusDiscList);
});
});
// 档口客户优惠
@ -619,8 +620,8 @@ public class GtAndFhbBizController extends BaseController {
*/
private void handleCusDisc(String fhbAtrNo, Map<String, Set<String>> fhbExistArtNoColorMap,
Map<String, Map<String, List<FhbCusDiscountVO.SMCDRecordVO>>> fhbCusDiscGroupMap,
Map<String, StoreProductColor> buJuProdColorMap, Map<String, StoreCustomer> buJuStoreCusMap, Long storeId, Long storeProdId,
List<StoreCustomerProductDiscount> prodCusDiscList) {
Map<String, StoreProductColor> buJuProdColorMap, Map<String, StoreCustomer> buJuStoreCusMap,
Long storeId, Long storeProdId, String prodArtNum, List<StoreCustomerProductDiscount> prodCusDiscList) {
// FHB货号下有哪些颜色存在客户优惠
Map<String, List<FhbCusDiscountVO.SMCDRecordVO>> fhbColorCusDiscMap = fhbCusDiscGroupMap.get(fhbAtrNo);
if (MapUtils.isEmpty(fhbColorCusDiscMap)) {
@ -644,7 +645,7 @@ public class GtAndFhbBizController extends BaseController {
StoreCustomer storeCus = Optional.ofNullable(buJuStoreCusMap.get(fhbCusDisc.getCustomerName()))
.orElseThrow(() -> new ServiceException("没有步橘系统对应的客户!" + fhbCusDisc.getCustomerName(), HttpStatus.ERROR));
// 将FHB客户优惠 转为步橘系统优惠
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId())
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId()).setProdArtNum(prodArtNum)
.setStoreCusName(storeCus.getCusName()).setStoreProdColorId(buJuProdColor.getId()).setDiscount(fhbCusDisc.getDiscount()));
}
});

View File

@ -426,7 +426,8 @@ public class GtAndTyBiz2Controller extends BaseController {
tyAtrNoList.forEach(tyAtrNo -> {
// 处理客户优惠
this.handleCusDisc(tyAtrNo, tyExistArtNoColorMap, tyCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, prodCusDiscList, storeProd.getStoreId(), storeProd.getId());
this.handleCusDisc(tyAtrNo, tyExistArtNoColorMap, tyCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, prodCusDiscList,
storeProd.getStoreId(), storeProd.getId(), storeProd.getProdArtNum());
});
@ -580,7 +581,7 @@ public class GtAndTyBiz2Controller extends BaseController {
*/
private void handleCusDisc(String tyAtrNo, Map<String, Set<String>> tyExistArtNoColorMap, Map<String, Map<String, List<TyCusDiscImportVO>>> tyCusDiscGroupMap,
Map<String, StoreProductColor> buJuProdColorMap, Map<String, StoreCustomer> buJuStoreCusMap,
List<StoreCustomerProductDiscount> prodCusDiscList, Long storeId, Long storeProdId) {
List<StoreCustomerProductDiscount> prodCusDiscList, Long storeId, Long storeProdId, String prodArtNum) {
// TY货号下有哪些颜色存在客户优惠
Map<String, List<TyCusDiscImportVO>> tyColorCusDiscMap = tyCusDiscGroupMap.get(tyAtrNo);
if (MapUtils.isEmpty(tyColorCusDiscMap)) {
@ -601,7 +602,7 @@ public class GtAndTyBiz2Controller extends BaseController {
StoreProductColor buJuProdColor = Optional.ofNullable(buJuProdColorMap.get(tyColor)).orElseThrow(() -> new ServiceException("没有步橘系统对应的颜色!" + tyColor, HttpStatus.ERROR));
StoreCustomer storeCus = Optional.ofNullable(buJuStoreCusMap.get(tyCusDisc.getCusName())).orElseThrow(() -> new ServiceException("没有步橘系统对应的客户!" + tyCusDisc.getCusName(), HttpStatus.ERROR));
// 将FHB客户优惠 转为步橘系统优惠
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId())
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId()).setProdArtNum(prodArtNum)
.setStoreCusName(storeCus.getCusName()).setStoreProdColorId(buJuProdColor.getId()).setDiscount(tyCusDisc.getDiscount()));
});
});

View File

@ -468,7 +468,8 @@ public class GtAndTyBizController extends BaseController {
tyAtrNoList.forEach(tyAtrNo -> {
// 处理客户优惠
this.handleCusDisc(tyAtrNo, tyExistArtNoColorMap, tyCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, prodCusDiscList, storeProd.getStoreId(), storeProd.getId());
this.handleCusDisc(tyAtrNo, tyExistArtNoColorMap, tyCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, prodCusDiscList,
storeProd.getStoreId(), storeProd.getId(), storeProd.getProdArtNum());
});
@ -623,7 +624,7 @@ public class GtAndTyBizController extends BaseController {
private void handleCusDisc(String tyAtrNo, Map<String, Set<String>> tyExistArtNoColorMap,
Map<String, Map<String, List<TyCusDiscImportVO>>> tyCusDiscGroupMap,
Map<String, StoreProductColor> buJuProdColorMap, Map<String, StoreCustomer> buJuStoreCusMap,
List<StoreCustomerProductDiscount> prodCusDiscList, Long storeId, Long storeProdId) {
List<StoreCustomerProductDiscount> prodCusDiscList, Long storeId, Long storeProdId, String prodArtNum) {
// TY货号下有哪些颜色存在客户优惠
Map<String, List<TyCusDiscImportVO>> tyColorCusDiscMap = tyCusDiscGroupMap.get(tyAtrNo);
if (MapUtils.isEmpty(tyColorCusDiscMap)) {
@ -644,7 +645,7 @@ public class GtAndTyBizController extends BaseController {
StoreProductColor buJuProdColor = Optional.ofNullable(buJuProdColorMap.get(tyColor)).orElseThrow(() -> new ServiceException("没有步橘系统对应的颜色!" + tyColor, HttpStatus.ERROR));
StoreCustomer storeCus = Optional.ofNullable(buJuStoreCusMap.get(tyCusDisc.getCusName())).orElseThrow(() -> new ServiceException("没有步橘系统对应的客户!" + tyCusDisc.getCusName(), HttpStatus.ERROR));
// 将FHB客户优惠 转为步橘系统优惠
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId())
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId()).setProdArtNum(prodArtNum)
.setStoreCusName(storeCus.getCusName()).setStoreProdColorId(buJuProdColor.getId()).setDiscount(tyCusDisc.getDiscount()));
});
});

View File

@ -345,7 +345,8 @@ public class TYOtherBizAfterController extends BaseController {
tyAtrNoList.forEach(tyAtrNo -> {
// 处理客户优惠
this.handleCusDisc(tyAtrNo, tyExistArtNoColorMap, tyCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, prodCusDiscList, storeProd.getStoreId(), storeProd.getId());
this.handleCusDisc(tyAtrNo, tyExistArtNoColorMap, tyCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, prodCusDiscList,
storeProd.getStoreId(), storeProd.getId(), storeProd.getProdArtNum());
});
@ -422,7 +423,7 @@ public class TYOtherBizAfterController extends BaseController {
*/
private void handleCusDisc(String tyAtrNo, Map<String, Set<String>> tyExistArtNoColorMap, Map<String, Map<String, List<TyCusDiscImportVO>>> tyCusDiscGroupMap,
Map<String, StoreProductColor> buJuProdColorMap, Map<String, StoreCustomer> buJuStoreCusMap,
List<StoreCustomerProductDiscount> prodCusDiscList, Long storeId, Long storeProdId) {
List<StoreCustomerProductDiscount> prodCusDiscList, Long storeId, Long storeProdId, String prodArtNum) {
// TY货号下有哪些颜色存在客户优惠
Map<String, List<TyCusDiscImportVO>> tyColorCusDiscMap = tyCusDiscGroupMap.get(tyAtrNo);
if (MapUtils.isEmpty(tyColorCusDiscMap)) {
@ -443,7 +444,7 @@ public class TYOtherBizAfterController extends BaseController {
StoreProductColor buJuProdColor = Optional.ofNullable(buJuProdColorMap.get(tyColor)).orElseThrow(() -> new ServiceException("没有步橘系统对应的颜色!" + tyColor, HttpStatus.ERROR));
StoreCustomer storeCus = Optional.ofNullable(buJuStoreCusMap.get(tyCusDisc.getCusName())).orElseThrow(() -> new ServiceException("没有步橘系统对应的客户!" + tyCusDisc.getCusName(), HttpStatus.ERROR));
// 将FHB客户优惠 转为步橘系统优惠
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId())
prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId()).setProdArtNum(prodArtNum)
.setStoreCusName(storeCus.getCusName()).setStoreProdColorId(buJuProdColor.getId()).setDiscount(tyCusDisc.getDiscount()));
});
});

View File

@ -35,6 +35,9 @@ public class StoreCusProdBatchDiscountVO {
@NotNull(message = "档口商品ID不能为空!")
@ApiModelProperty(value = "档口商品ID", required = true)
private Long storeProdId;
@NotBlank(message = "商品货号不能为空!")
@ApiModelProperty(value = "商品货号", required = true)
private String prodArtNum;
@NotNull(message = "档口商品颜色ID不能为空!")
@ApiModelProperty(value = "档口商品颜色ID", required = true)
private Long storeProdColorId;

View File

@ -3319,6 +3319,7 @@ CREATE TABLE `store_customer_product_discount`
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '档口客户销售优惠ID',
`store_id` bigint UNSIGNED NOT NULL COMMENT '档口ID',
`store_prod_id` bigint UNSIGNED NOT NULL COMMENT '档口商品ID',
`prod_art_num` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品货号',
`store_cus_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '档口客户名称',
`store_cus_id` bigint UNSIGNED NOT NULL COMMENT '档口客户ID',
`store_prod_color_id` bigint UNSIGNED NOT NULL COMMENT '档口商品颜色ID',

View File

@ -9,8 +9,6 @@ import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
/**
* store_customer_product_discount
*
@ -38,7 +36,10 @@ public class StoreCustomerProductDiscount extends XktBaseEntity {
*/
@Excel(name = "档口商品ID")
private Long storeProdId;
/**
*
*/
private String prodArtNum;
/**
* ID
*/

View File

@ -27,6 +27,8 @@ public class StoreCusProdBatchDiscountDTO {
public static class DiscountItemDTO {
@ApiModelProperty(value = "档口商品ID")
private Long storeProdId;
@ApiModelProperty(value = "商品货号")
private String prodArtNum;
@ApiModelProperty(value = "档口商品颜色ID")
private Long storeProdColorId;
@ApiModelProperty(value = "优惠金额")

View File

@ -126,14 +126,9 @@ public class StoreCustomerProductDiscountServiceImpl implements IStoreCustomerPr
// 不存在优惠则新增
} else {
// 新增优惠
updateList.add(new StoreCustomerProductDiscount() {{
setDiscount(itemDTO.getDiscount());
setStoreId(batchDiscDTO.getStoreId());
setStoreCusName(itemDTO.getStoreCusName());
setStoreCusId(itemDTO.getStoreCusId());
setStoreProdColorId(itemDTO.getStoreProdColorId());
setStoreProdId(itemDTO.getStoreProdId());
}});
updateList.add(new StoreCustomerProductDiscount().setDiscount(itemDTO.getDiscount()).setStoreId(batchDiscDTO.getStoreId())
.setStoreCusName(itemDTO.getStoreCusName()).setStoreCusId(itemDTO.getStoreCusId()).setStoreProdColorId(itemDTO.getStoreProdColorId())
.setStoreProdId(itemDTO.getStoreProdId()).setProdArtNum(itemDTO.getProdArtNum()));
}
});
if (CollectionUtils.isEmpty(updateList)) {

View File

@ -514,7 +514,7 @@ public class StoreProductServiceImpl implements IStoreProductService {
.collect(Collectors.toList());
this.prodStockMapper.insert(prodStockList);
// 设置了档口商品全部优惠的客户,新增商品优惠
this.createStoreCusDiscount(prodColorList, storeProdId);
this.createStoreCusDiscount(prodColorList, storeProdId, prodArtNum);
}
/**
@ -1008,8 +1008,9 @@ public class StoreProductServiceImpl implements IStoreProductService {
*
* @param colorList
* @param storeProdId ID
* @param prodArtNum
*/
private void createStoreCusDiscount(List<StoreProductColor> colorList, Long storeProdId) {
private void createStoreCusDiscount(List<StoreProductColor> colorList, Long storeProdId, String prodArtNum) {
// 档口给那些客户设置了所有商品优惠
List<StoreCustomer> existCusDiscList = this.storeCusMapper.selectList(new LambdaQueryWrapper<StoreCustomer>()
.isNotNull(StoreCustomer::getAllProdDiscount).eq(StoreCustomer::getDelFlag, UNDELETED));
@ -1019,7 +1020,7 @@ public class StoreProductServiceImpl implements IStoreProductService {
List<StoreCustomerProductDiscount> cusDiscList = new ArrayList<>();
// 为这些客户绑定商品优惠
colorList.forEach(color -> existCusDiscList.forEach(storeCus -> cusDiscList.add(new StoreCustomerProductDiscount()
.setDiscount(storeCus.getAllProdDiscount()).setStoreId(storeCus.getStoreId()).setStoreProdId(storeProdId)
.setDiscount(storeCus.getAllProdDiscount()).setStoreId(storeCus.getStoreId()).setStoreProdId(storeProdId).setProdArtNum(prodArtNum)
.setStoreCusId(storeCus.getId()).setStoreCusName(storeCus.getCusName()).setStoreProdColorId(color.getId()))));
this.storeCusProdDiscMapper.insert(cusDiscList);
}

View File

@ -5,9 +5,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.ruoyi.xkt.mapper.StoreCustomerProductDiscountMapper">
<select id="selectDiscPage" resultType="com.ruoyi.xkt.dto.storeCusProdDiscount.StoreCusProdDiscPageResDTO">
SELECT DISTINCT
SELECT
scpd.id AS storeCusProdDiscId,
sp.prod_art_num AS prodArtNum,
scpd.prod_art_num AS prodArtNum,
scpd.store_id AS storeId,
scpd.store_prod_id AS storeProdId,
scpd.store_cus_id AS storeCusId,
@ -17,11 +17,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
scpd.update_time
FROM
store_customer_product_discount scpd
JOIN store_product sp ON scpd.store_prod_id = sp.id AND sp.del_flag = 0
WHERE
scpd.del_flag = 0 AND scpd.store_id = #{storeId}
<if test="cusName != null and cusName != ''"> AND scpd.store_cus_name like concat('%', #{cusName}, '%')</if>
<if test="prodArtNum != null and prodArtNum != ''"> AND sp.prod_art_num like concat('%', #{prodArtNum}, '%')</if>
<if test="prodArtNum != null and prodArtNum != ''"> AND scpd.prod_art_num like concat('%', #{prodArtNum}, '%')</if>
ORDER BY
scpd.update_time DESC,
scpd.store_prod_id,