Browse Source

feat: 返利模板调整

master
Yen 2 months ago
parent
commit
9cadebf235
  1. 8
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebate.java
  2. 5
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java
  3. 15
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcCustomerDispatchVo.java
  4. 6
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcRebateVo.java
  5. 34
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/erp/entity/dto/TzcCustomerDispatchQuery.java
  6. 36
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/erp/entity/so/ErpDispatchSumPmsQuery.java
  7. 33
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/erp/entity/vo/ErpDispatchSumPmsVo.java
  8. 9
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/erp/mapper/ErpDispatchDataMapper.java
  9. 9
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4CostService.java
  10. 2
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplicationService.java
  11. 33
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4CostServiceImpl.java
  12. 15
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java
  13. 44
      cms-modules/cms-system/src/main/resources/mapper/erp/ErpDispatchDataMapper.xml

8
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebate.java

@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.mbp.handler.SplitStringTypeHandler;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
@ -22,7 +24,7 @@ import javax.validation.constraints.NotBlank;
* @since 2025-04-15
*/
@Data
@TableName("tzc_rebate")
@TableName(value = "tzc_rebate",autoResultMap = true)
public class TzcRebate implements Serializable {
private static final long serialVersionUID = 1L;
@ -96,6 +98,10 @@ public class TzcRebate implements Serializable {
/** 返利总金额 */
private BigDecimal rebateAmount;
/** 附件id */
@TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
private String[] attachIds;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;

5
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java

@ -76,6 +76,11 @@ public class TzcRebateParam{
/** 备注 */
private String remark;
/**
* 附件id
*/
private String[] attachIds;
/**
* 产品类型brandcategoryseriesspusku
*/

15
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcCustomerDispatchVo.java

@ -0,0 +1,15 @@
package com.qs.serve.modules.tzc.entity.vo;
import lombok.Data;
/**
* 返回客户的进货期间的总金额
* @author YenHex
* @since 2025/5/6
*/
@Data
public class TzcCustomerDispatchVo {
}

6
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcRebateVo.java

@ -1,7 +1,10 @@
package com.qs.serve.modules.tzc.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.qs.serve.mbp.handler.SplitStringTypeHandler;
import com.qs.serve.modules.tzc.entity.*;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import java.util.List;
@ -22,4 +25,7 @@ public class TzcRebateVo extends TzcRebate {
private List<TzcRebateLevelsVo> levelsList;
/** 附件列表 */
private List<?> attachList;
}

34
cms-modules/cms-system/src/main/java/com/qs/serve/modules/erp/entity/dto/TzcCustomerDispatchQuery.java

@ -0,0 +1,34 @@
package com.qs.serve.modules.erp.entity.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* 查询客户期间的请求参数
* @author YenHex
* @since 2025/5/6
*/
@Data
public class TzcCustomerDispatchQuery {
/**
* 客户编码
*/
String supplierCode;
LocalDate startDate;
LocalDate endDate;
BigDecimal totalAmount;
List<String> categoryIds;
List<String> spuIds;
List<String> skuIds;
}

36
cms-modules/cms-system/src/main/java/com/qs/serve/modules/erp/entity/so/ErpDispatchSumPmsQuery.java

@ -0,0 +1,36 @@
package com.qs.serve.modules.erp.entity.so;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* @author YenHex
* @since 2023/6/7
*/
@Data
public class ErpDispatchSumPmsQuery {
@NotNull
String supplierCode;
@NotNull
LocalDate startDate;
@NotNull
LocalDate endDate;
List<String> brandIds;
List<String> seriesIds;
List<String> categoryIds;
List<String> spuIds;
List<String> skuIds;
}

33
cms-modules/cms-system/src/main/java/com/qs/serve/modules/erp/entity/vo/ErpDispatchSumPmsVo.java

@ -0,0 +1,33 @@
package com.qs.serve.modules.erp.entity.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* @author YenHex
* @since 2023/6/7
*/
@Data
public class ErpDispatchSumPmsVo {
/**
* 客户编码
*/
String supplierCode;
LocalDate startDate;
LocalDate endDate;
BigDecimal totalAmount;
List<String> categoryIds;
List<String> spuIds;
List<String> skuIds;
}

9
cms-modules/cms-system/src/main/java/com/qs/serve/modules/erp/mapper/ErpDispatchDataMapper.java

@ -3,6 +3,8 @@ package com.qs.serve.modules.erp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.erp.entity.ErpDispatchData;
import com.qs.serve.modules.erp.entity.so.ErpDispatchSumPmsQuery;
import com.qs.serve.modules.erp.entity.vo.ErpDispatchSumPmsVo;
import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -71,5 +73,12 @@ public interface ErpDispatchDataMapper extends BaseMapper<ErpDispatchData> {
@InterceptorIgnore(tenantLine = "1")
List<ErpDispatchSumVo> querySumCost4BudgetTarger(@Param("skuCodes")List<String> skuCodes);
/**
* 查询发货单合计(根据品类维度)
* @return
*/
@InterceptorIgnore(tenantLine = "1")
List<ErpDispatchSumPmsVo> queryCusAmtByPms(@Param("query") ErpDispatchSumPmsQuery query);
}

9
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4CostService.java

@ -4,6 +4,7 @@ import com.qs.serve.modules.tzc.entity.*;
import com.qs.serve.modules.tzc.entity.bo.TzcRebateParam;
import com.qs.serve.modules.tzc.entity.vo.TzcRebateVo;
import java.math.BigDecimal;
import java.util.List;
/**
@ -34,5 +35,13 @@ public interface TzcRebateApplication4CostService {
List<TzcRebateCenter> centerList,
List<TzcRebateLevels> levelsList);
/**
* 获取命中返利坎级的信息
* @param dispatchAmt
* @param activityId
* @return
*/
Object getHitRebateInfo(BigDecimal dispatchAmt,Long activityId);
}

2
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplicationService.java

@ -25,5 +25,7 @@ public interface TzcRebateApplicationService {
*/
TzcRebate modifyRebate(TzcRebateParam param);
}

33
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4CostServiceImpl.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.tzc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qs.serve.common.exception.Assert;
import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.*;
@ -40,6 +41,16 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio
private final TbsActivityGoodsService tbsActivityGoodsService;
private final TbsActivityCenterGoodsService tbsActivityCenterGoodsService;
private final TzcRebateService tzcRebateService;
private final TzcRebateSubjectService tzcRebateSubjectService;
private final TzcRebateCenterService tzcRebateCenterService;
private final TzcRebatePeriodService tzcRebatePeriodService;
private final TzcRebateLevelsArgumentService tzcRebateLevelsArgumentService;
private final TzcRebateGoodsService tzcRebateGoodsService;
private final TzcRebateLevelsConfigService tzcRebateLevelsConfigService;
private final TzcRebateLevelsService tzcRebateLevelsService;
@Override
public Long buildCostAndActivity(TzcRebate rebate,
List<TzcRebateLevelsArgument> argumentList,
@ -317,4 +328,26 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio
return maxAmount;
}
@Override
public Object getHitRebateInfo(BigDecimal dispatchAmt, Long activityId) {
if(dispatchAmt.compareTo(BigDecimal.ZERO)<0){
Assert.throwEx("发货金额不能小于0");
}
TbsActivity activity = tbsActivityService.getById(activityId);
TzcRebate rebate = tzcRebateService.getById(activity.getRebateId());
List<TzcRebateLevelsArgument> levelsArgumentList = tzcRebateLevelsArgumentService.list(
new LambdaQueryWrapper<TzcRebateLevelsArgument>().eq(TzcRebateLevelsArgument::getRebateId, rebate.getId())
);
List<TzcRebateLevels> levelsList = tzcRebateLevelsService.list(
new LambdaQueryWrapper<TzcRebateLevels>()
.eq(TzcRebateLevels::getRebateId, rebate.getId())
.orderByDesc(TzcRebateLevels::getLevelNum)
);
for (TzcRebateLevels levels : levelsList) {
}
return null;
}
}

15
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.qs.serve.common.exception.Assert;
import com.qs.serve.common.utils.CopierUtil;
import com.qs.serve.framework.base.model.ResultFlag;
import com.qs.serve.framework.base.util.CollectionUtil;
import com.qs.serve.framework.redis.utils.CodeGenUtil;
import com.qs.serve.modules.bms.entity.BmsSubject;
import com.qs.serve.modules.bms.entity.BmsSupplier;
@ -17,7 +18,9 @@ import com.qs.serve.modules.goods.entity.dto.GoodsTargetInfo;
import com.qs.serve.modules.goods.entity.dto.TbsCenterDto;
import com.qs.serve.modules.goods.service.GoodsApplicationService;
import com.qs.serve.modules.sys.common.AuthContextUtils;
import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate;
import com.qs.serve.modules.tbs.service.TbsActivityTemplateRegionService;
@ -39,10 +42,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -74,6 +74,7 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
private final BmsSubjectMapper bmsSubjectMapper;
private final GoodsApplicationService goodsApplicationService;
private final TbsCenterDtoService tbsCenterDtoService;
private SysAttachService attachService;
@Override
public TzcRebateVo getRebateVoById(Long id) {
@ -100,6 +101,11 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
tzcRebateVo.setGoodsList(goodsList);
tzcRebateVo.setConfigList(configList);
if(CollectionUtil.isNotEmpty(tzcRebateVo.getAttachIds())){
List<String> attachIds = Arrays.asList(tzcRebateVo.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
tzcRebateVo.setAttachList(attachList);
}
return tzcRebateVo;
}
@ -418,6 +424,7 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
rebate.setSupplierCode(supplier.getCode());
rebate.setSupplierName(supplier.getName());
rebate.setRebateAmount(param.getRebateAmount());
rebate.setAttachIds(param.getAttachIds());
rebate.setRemark(param.getRemark());
return rebate;
}

44
cms-modules/cms-system/src/main/resources/mapper/erp/ErpDispatchDataMapper.xml

@ -122,5 +122,49 @@
</if>
GROUP BY DATE_FORMAT(date,'%Y%m'),cus_code
</select>
<select id="queryCusAmtByPms" resultType="com.qs.serve.modules.erp.entity.vo.ErpDispatchSumPmsVo">
SELECT
SUM(d.sum_money) as totalAmount
FROM
`erp_dispatch_data` d
left JOIN goods_sku ON d.invCode = goods_sku.sku_code
left join goods_spu ON goods_sku.spu_id = goods_spu.id
where
d.place = '001'
and d.date &gt;= #{query.startDate}
and d.date &lt;= #{query.endDate}
and d.cus_code = #{query.customerCode}
<if test="query.brandIds!=null and query.brandIds.size > 0">
and goods_spu.category_first in
<foreach collection="query.brandIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
<if test="query.seriesIds!=null and query.seriesIds.size > 0">
and goods_spu.category_second in
<foreach collection="query.seriesIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
<if test="query.categoryIds!=null and query.categoryIds.size > 0">
and goods_spu.category_third in
<foreach collection="query.categoryIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
<if test="query.spuIds!=null and query.spuIds.size > 0">
and goods_spu.id in
<foreach collection="query.spuIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
<if test="query.skuIds!=null and query.skuIds.size > 0">
and goods_sku.id in
<foreach collection="query.skuIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
</select>
</mapper>

Loading…
Cancel
Save