Browse Source

feat: 年度返利测试

master
Yen 2 months ago
parent
commit
c5b18ea5e2
  1. 2
      cms-api/cms-admin-svc/src/main/resources/application.yml
  2. 6
      cms-common/src/main/java/com/qs/serve/framework/base/model/R.java
  3. 1
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/api/OmsSaleOrderApi.java
  4. 2
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java
  5. 26
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCheckController.java
  6. 8
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java
  7. 4
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  8. 3
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java
  9. 2
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4VerificationService.java
  10. 7
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4CostServiceImpl.java
  11. 4
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java
  12. 2
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java
  13. 2
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchService.java
  14. 4
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java

2
cms-api/cms-admin-svc/src/main/resources/application.yml

@ -58,7 +58,7 @@ mybatis-plus:
# 日志配置
logging:
level:
ROOT: debug
ROOT: info
com.qs.serve: debug
com.qs.serve.modules.his: debug
com.qs.serve.modules.sys: debug

6
cms-common/src/main/java/com/qs/serve/framework/base/model/R.java

@ -1,9 +1,11 @@
package com.qs.serve.framework.base.model;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.github.pagehelper.PageInfo;
import com.qs.serve.common.utils.PageUtil;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
@ -19,6 +21,7 @@ import java.util.List;
*/
@Getter
@Setter
@NoArgsConstructor
public class R<T> implements Serializable {
public R(int status, String msg) {
@ -42,6 +45,9 @@ public class R<T> implements Serializable {
*/
private String msg;
@JsonIgnore
private String message;
/**
* 数据
*/

1
cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/api/OmsSaleOrderApi.java

@ -208,6 +208,7 @@ public class OmsSaleOrderApi {
PageUtil.startPage();
LambdaQueryWrapper<OmsSaleOrder> orderWrapper = new LambdaQueryWrapper<>(param);
orderWrapper.orderByDesc(OmsSaleOrder::getUserCreateTime);
List<OmsSaleOrder> list = omsSaleOrderService.list(orderWrapper);
this.buildOrderVoInfo(list);
return R.byPageHelperList(list);

2
cms-modules/cms-system/src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java

@ -99,8 +99,8 @@ public class SysDeleteLogServiceImpl extends ServiceImpl<SysDeleteLogMapper,SysD
costDeletion.setCacc(bookCode);
costDeletion.setVerificationCode(costApply.getCode());
String rs = HttpUtil.doPost(url, JsonUtil.objectToJson(costDeletion),null);
R rsObj = JsonUtil.jsonToPojo(rs, R.class);
log.warn("【请求删除ERP费用】{},返回结果:{}",costApplyId,rs);
R rsObj = JsonUtil.jsonToPojo(rs, R.class);
if(rsObj==null||!rsObj.getStatus().equals(200)){
Assert.throwEx("远程删除失败:"+rs);
}

26
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCheckController.java

@ -15,6 +15,7 @@ import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.tzc.consts.TzcArgTypes;
import com.qs.serve.modules.tzc.entity.TzcRebatePeriod;
import com.qs.serve.modules.tzc.entity.dto.TzcRebateCalculateDTO;
import com.qs.serve.modules.tzc.service.TzcRebateApplication4VerificationService;
@ -25,6 +26,7 @@ import com.qs.serve.modules.vtb.entity.bo.VtbVerificationSubjectBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationSubjectCenterBo;
import com.qs.serve.modules.vtb.event.VtbRebateAutoEvent;
import com.qs.serve.modules.vtb.service.VtbFundFlowService;
import com.qs.serve.modules.vtb.service.VtbVerificationBatchService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.Nullable;
@ -62,6 +64,7 @@ public class TbsActivityCheckController {
private final TbsActivityMapper tbsActivityMapper;
private final TzcRebateApplication4VerificationService tzcRebateApplication4VerificationService;
private final ApplicationEventPublisher eventPublisher;
private final VtbVerificationBatchService vtbVerificationBatchService;
public void createAutoEvent(){
@ -79,19 +82,21 @@ public class TbsActivityCheckController {
public void createAutoEvent(@PathVariable("actId") Long activityId){
TbsActivity activity = tbsActivityService.getById(activityId);
TbsCostApply costApply = tbsCostApplyService.getById(activity.getCostApplyId());
VtbVerificationBo commitBo = createVerificationBo(activity);
if (commitBo == null) return;
VtbVerificationBo commitBo = createVerificationBo(activity, TzcArgTypes.LevelReturn);
if (commitBo == null){
return;
}
eventPublisher.publishEvent(new VtbRebateAutoEvent(this, commitBo, costApply.getUserId()));
}
@Nullable
private VtbVerificationBo createVerificationBo(TbsActivity activity) {
private VtbVerificationBo createVerificationBo(TbsActivity activity,TzcArgTypes argType) {
Long activityId = activity.getId();
// 通过周期查询发货金额
ErpDispatchSumPmsVo erpDispatchSumPmsVo = tbsActivityService.getDispatchSumByActivity(activity);
BigDecimal dispatchAmount = erpDispatchSumPmsVo.getTotalAmount();
// 此次核销金额
TzcRebateCalculateDTO calculateDTO = tzcRebateApplication4VerificationService.getActivityRebateAmount(activityId,dispatchAmount);
TzcRebateCalculateDTO calculateDTO = tzcRebateApplication4VerificationService.getActivityRebateAmount(activityId,dispatchAmount,argType);
BigDecimal vtbAmt = calculateDTO.getTotalReturnAmt();
if (vtbAmt.compareTo(BigDecimal.ZERO)==0){
// 没有返利金额
@ -148,23 +153,24 @@ public class TbsActivityCheckController {
List<VtbVerificationBo> verificationBoList = new ArrayList<>();
BigDecimal totalAmount = BigDecimal.ZERO;
for (TbsActivity activity : activityList) {
VtbVerificationBo verificationBo = this.createVerificationBo(activity);
VtbVerificationBo verificationBo = this.createVerificationBo(activity,TzcArgTypes.LevelOverallReturn);
if (verificationBo==null){
continue;
}
verificationBoList.add(verificationBo);
for (VtbVerificationSubjectCenterBo centerBo : verificationBo.getSubjectCenterList()) {
for (VtbVerificationSubjectBo subjectBo : verificationBo.getSubjectList()) {
totalAmount = subjectBo.getAmount().add(totalAmount);
}
}
VtbVerificationBatchBo batchBo = new VtbVerificationBatchBo();
batchBo.setVerificationList(verificationBoList);
batchBo.setRemark("年度返利核销");
//batchBo.setPayWayId(0);
// 票扣
batchBo.setPayWayId(1L);
batchBo.setCostApplyId(costApplyId);
//batchBo.setTotalAmount();
batchBo.setTotalAmount(totalAmount);
batchBo.setRebateOfYearFlag(1);
vtbVerificationBatchService.submit(batchBo,costApply.getUserId());
}

8
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java

@ -334,6 +334,14 @@ public class TbsActivityTemplateController {
});
}
if(CollectionUtil.isNotEmpty(supplierList)){
List<String> cusIds = supplierList.stream().map(BmsSupplier::getId).collect(Collectors.toList());
tempLqw.or(con->{
con.eq(TbsActivityTemplateRegion::getType,"cus");
con.in(TbsActivityTemplateRegion::getRegionId,cusIds);
});
}
List<TbsActivityTemplateRegion> templateRegions = null;
if(CollectionUtil.isNotEmpty(saleRegionIds)||CollectionUtil.isNotEmpty(bizRegionIds)){
templateRegions = tbsActivityTemplateRegionService.list(tempLqw);

4
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -696,7 +696,9 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
boolean isIgnoreSubject = false;
if(activityList.size()==1){
Long templateId = activityList.get(0).getTemplateId();
if (templateId!=null){
boolean isBack = tbsCostApply.getChargeState().equals(TbsCostApplyState.State_4_refused.getCode())
||tbsCostApply.getChargeState().equals(TbsCostApplyState.State_7_changed.getCode());
if (templateId!=null && !isBack){
// 模板不拦截科目范围
isIgnoreSubject = true;
// 拦截模板的可见范围

3
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java

@ -11,6 +11,7 @@ import com.qs.serve.common.utils.StringUtils;
import com.qs.serve.framework.base.model.PageVo;
import com.qs.serve.framework.base.model.R;
import com.qs.serve.framework.base.util.DebugStrUtil;
import com.qs.serve.modules.tzc.consts.TzcArgTypes;
import com.qs.serve.modules.tzc.entity.bo.TzcRebateParam;
import com.qs.serve.modules.tzc.entity.dto.TzcRebateCalculateDTO;
import com.qs.serve.modules.tzc.entity.qo.TzcGetActivityRebateQuery;
@ -55,7 +56,7 @@ public class TzcRebateController {
if (queryList != null){
List<TzcRebateCalculateDTO> result = new ArrayList<>();
for (TzcGetActivityRebateQuery query : queryList) {
TzcRebateCalculateDTO dto = tzcRebateApplication4VerificationService.getActivityRebateAmount(query.getActivityId(),query.getDispatchAmount());
TzcRebateCalculateDTO dto = tzcRebateApplication4VerificationService.getActivityRebateAmount(query.getActivityId(),query.getDispatchAmount(), TzcArgTypes.LevelReturn);
if (dto != null){
result.add(dto);
}

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

@ -30,7 +30,7 @@ public interface TzcRebateApplication4VerificationService {
* @param dispatchAmt
* @return
*/
TzcRebateCalculateDTO getActivityRebateAmount(Long activityId,BigDecimal dispatchAmt);
TzcRebateCalculateDTO getActivityRebateAmount(Long activityId,BigDecimal dispatchAmt,TzcArgTypes argType);
}

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

@ -590,13 +590,18 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio
dto.appendErrorMsg("坎级ID:"+rebateLevels.getId()+",缺少参数:"+argType.name());
continue;
}
dto.appendDebugMsg("读取坎级("+rebateLevels.getLevelNum()+")配置 ,返利参数:"+currentArgument.getBusinessType());
dto.appendDebugMsg("读取坎级("+rebateLevels.getLevelNum()+")配置 ,返利参数:"
+currentArgument.getBusinessType()+"最高返利金额:"+currentArgument.getMaxReturn());
TzcRebateLevelAmountDTO rebateLevelsDTO = CopierUtil.copy(rebateLevels,new TzcRebateLevelAmountDTO());
rebateLevelsDTO.setArgument(currentArgument);
// 选择的策略:0-百分比;1-固定金额
if (currentArgument.getRateAmtFlag().equals(1)){
rebateLevelsDTO.setReturnAmt(currentArgument.getReturnFixed());
rebateLevelsDTO.setDebugMsg("返利为固定金额:"+currentArgument.getReturnFixed());
if (currentArgument.getMaxReturn()!=null && currentArgument.getReturnFixed().compareTo(currentArgument.getMaxReturn())>0){
rebateLevelsDTO.setDebugMsg("最高返利金额:"+currentArgument.getMaxReturn());
rebateLevelsDTO.setReturnAmt(currentArgument.getMaxReturn());
}
}else if (currentArgument.getRateAmtFlag().equals(0)){
//目标销量维度:0-总量;1-增量
if (currentArgument.getSumAddFlag().equals(0)){

4
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java

@ -256,7 +256,7 @@ public class TzcRebateApplication4VerificationServiceImpl implements TzcRebateAp
}
@Override
public TzcRebateCalculateDTO getActivityRebateAmount(Long activityId, BigDecimal dispatchAmt) {
public TzcRebateCalculateDTO getActivityRebateAmount(Long activityId, BigDecimal dispatchAmt,TzcArgTypes argType) {
TbsActivity activity = tbsActivityMapper.selectById(activityId);
if (activity.getRebatePeriodId()==null||activity.getRebatePeriodId().equals(0L)){
return null;
@ -271,7 +271,7 @@ public class TzcRebateApplication4VerificationServiceImpl implements TzcRebateAp
rebatePeriod.getPeriodAmount()
);
List<TzcRebateLevelAmountDTO> levelAmountList = tzcRebateApplication4CostService.calculateRebate(
calculateDTO,dispatchAmt, sameDispatchAmt, TzcArgTypes.LevelReturn);
calculateDTO,dispatchAmt, sameDispatchAmt, argType);
return this.calculateRebateVerification(calculateDTO, levelAmountList, activity);
}

2
cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java

@ -135,7 +135,7 @@ public class VtbVerificationBatchController {
@SysLog(module = SystemModule.Verification, title = "批量核销", biz = BizType.INSERT)
public R<?> save(@RequestBody @Valid VtbVerificationBatchBo param){
seeYonService.testConnection();
vtbVerificationBatchService.submit(param);
vtbVerificationBatchService.submit(param,AuthContextUtils.getSysUserId());
return R.ok();
}

2
cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchService.java

@ -20,7 +20,7 @@ public interface VtbVerificationBatchService extends IService<VtbVerificationBat
* 提交批量核销
* @param submitBo
*/
void submit(VtbVerificationBatchBo submitBo);
void submit(VtbVerificationBatchBo submitBo,String userId);
List<VtbVerification> listVerifications(Long batchId);

4
cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java

@ -97,7 +97,7 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl<VtbVerification
@Override
@Transactional(rollbackFor = Exception.class)
public void submit(VtbVerificationBatchBo submitBo) {
public void submit(VtbVerificationBatchBo submitBo,String userId) {
String templateCode = TbsSeeYonConst.BatchCostCheckConf.Code();
TbsCostApply costApply = tbsCostApplyService.getById(submitBo.getCostApplyId());
// if(costApply.getContractFlag().equals(3)){
@ -105,7 +105,7 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl<VtbVerification
// }
BmsSupplier supplier = bmsSupplierService.getById(costApply.getSupplierId());
List<TbsActivity> activityList = tbsActivityService.listByCostApplyId(costApply.getId());
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
SysUser sysUser = sysUserService.getById(userId);
sysUser.checkSyAccount();
redisService.throwResLock(VtbVerificationBatch.class.getSimpleName(),submitBo.getCostApplyId()+"");
// 校验核销状态

Loading…
Cancel
Save