Browse Source

费率展示调整;客户添加大区;其它微小调整

v1.0
Yen 2 years ago
parent
commit
e9829a9252
  1. 11
      src/main/java/com/qs/serve/modules/bir/entity/vo/BirCostApplyRateVo.java
  2. 67
      src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java
  3. 65
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java
  4. 14
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  5. 93
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierComRegion.java
  6. 3
      src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionTreeVo.java
  7. 14
      src/main/java/com/qs/serve/modules/bms/mapper/BmsSupplierComRegionMapper.java
  8. 2
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  9. 37
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  10. 35
      src/main/java/com/qs/serve/modules/vtb/entity/vo/VtbCostInfo.java
  11. 4
      src/main/resources/mapper/bms/BmsSupplierMapper.xml

11
src/main/java/com/qs/serve/modules/bir/entity/vo/BirCostApplyRateVo.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.bir.entity.vo;
import com.qs.serve.modules.goods.entity.dto.TbsCenterDto;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import lombok.Data;
@ -12,12 +13,12 @@ import java.math.BigDecimal;
@Data
public class BirCostApplyRateVo {
public BirCostApplyRateVo(String scheduleType,TbsActivityCenter activityCenter){
public BirCostApplyRateVo(String scheduleType, TbsCenterDto centerDto){
this.scheduleType = scheduleType;
this.centerId = activityCenter.getCenterId();
this.centerCode = activityCenter.getCenterCode();
this.centerName = activityCenter.getCenterName();
this.centerType = activityCenter.getCenterType();
this.centerId = centerDto.getId();
this.centerCode = centerDto.getCenterCode();
this.centerName = centerDto.getCenterName();
this.centerType = centerDto.getCenterType();
}
private String centerId;

67
src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java

@ -30,6 +30,7 @@ import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierTargetMapper;
import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo;
import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper;
import com.qs.serve.modules.goods.entity.dto.TbsCenterDto;
import com.qs.serve.modules.tbs.common.util.QuarterUtil;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.dto.CusTargetRateDTO;
@ -39,6 +40,7 @@ import com.qs.serve.modules.tzc.entity.TzcPolicy;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
import com.qs.serve.modules.tzc.mapper.TzcPolicyItemMapper;
import com.qs.serve.modules.tzc.mapper.TzcPolicyMapper;
import com.qs.serve.modules.tzc.service.TzcPolicyService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -116,13 +118,38 @@ public class BirCenterRateServiceImpl implements BirCenterRateService {
@Override
public List<BirCostApplyRateVo> selectCostApplyRateVoList(Long costApplyId, Long policyId) {
TbsCostApply costApply = tbsCostApplyMapper.selectById(costApplyId);
final String supplierId = costApply.getSupplierId()+"";
LambdaQueryWrapper<TbsActivityCenter> acLqw = new LambdaQueryWrapper<>();
acLqw.eq(TbsActivityCenter::getCostApplyId,costApplyId);
List<TbsActivityCenter> activityCenterList = tbsActivityCenterMapper.selectList(acLqw);
List<TbsCenterDto> centerDtoList = null;
String supplierId = null;
if(costApplyId!=null){
TbsCostApply costApply = tbsCostApplyMapper.selectById(costApplyId);
LambdaQueryWrapper<TbsActivityCenter> acLqw = new LambdaQueryWrapper<>();
acLqw.eq(TbsActivityCenter::getCostApplyId,costApplyId);
List<TbsActivityCenter> activityCenterList = tbsActivityCenterMapper.selectList(acLqw);
supplierId = costApply.getSupplierId()+"";
centerDtoList = activityCenterList.stream().map(a->{
TbsCenterDto centerDto = new TbsCenterDto();
centerDto.setId(a.getCenterId());
centerDto.setCenterCode(a.getCenterCode());
centerDto.setCenterName(a.getCenterName());
centerDto.setCenterType(a.getCenterType());
return centerDto;
}).collect(Collectors.toList());
}else {
//加载政策
TzcPolicy policy = tzcPolicyMapper.selectById(policyId);
supplierId = policy.getSupplierId()+"";
LambdaQueryWrapper<TzcPolicyItem> lqw = new LambdaQueryWrapper<>();
lqw.eq(TzcPolicyItem::getPolicyId,policyId);
List<TzcPolicyItem> policyItemList = tzcPolicyItemMapper.selectList(lqw);
centerDtoList = policyItemList.stream().map(a->{
TbsCenterDto centerDto = new TbsCenterDto();
centerDto.setId(a.getCenterId());
centerDto.setCenterCode(a.getCenterCode());
centerDto.setCenterName(a.getCenterName());
centerDto.setCenterType(a.getCenterType());
return centerDto;
}).collect(Collectors.toList());
}
LocalDate nowDate = LocalDate.now();
int year = nowDate.getYear();
@ -142,15 +169,17 @@ public class BirCenterRateServiceImpl implements BirCenterRateService {
List<BirCostApplyRateVo> yearList = this.buildCostApplyRateList(
"year",yearStartNum, yearEndNum,
supplierId, activityCenterList);
supplierId, centerDtoList);
List<BirCostApplyRateVo> seasonList = this.buildCostApplyRateList(
"quarter",quarterStartNum, quarterEndNum,
supplierId, activityCenterList);
supplierId, centerDtoList);
List<BirCostApplyRateVo> monthList = this.buildCostApplyRateList(
"month",currMonthNum, currMonthNum,
supplierId, activityCenterList);
supplierId, centerDtoList);
resultList.addAll(yearList);
resultList.addAll(seasonList);
@ -158,13 +187,23 @@ public class BirCenterRateServiceImpl implements BirCenterRateService {
return resultList;
}
private List<BirCostApplyRateVo> buildCostApplyRateList(String scheduleType,int startMonthNum, int endMonthNum, String supplierId, List<TbsActivityCenter> activityCenterList) {
/**
* 获取费率详情
* @param scheduleType 年季月,yearquarter,month
* @param startMonthNum 格式如 20231
* @param endMonthNum 格式如 202312
* @param supplierId
* @param centerDtoList
* @return
*/
private List<BirCostApplyRateVo> buildCostApplyRateList(String scheduleType,int startMonthNum, int endMonthNum, String supplierId,
List<TbsCenterDto> centerDtoList) {
List<BirCostApplyRateVo> costApplyRateVoList = new ArrayList<>();
for (TbsActivityCenter center : activityCenterList) {
for (TbsCenterDto center : centerDtoList) {
BirCostApplyRateVo costApplyRateVo = new BirCostApplyRateVo(scheduleType,center);
//周期内使用金额合计,成本中心
LambdaQueryWrapper<BirActivityCenterGoods> birCenterLwq = new LambdaQueryWrapper<>();
birCenterLwq.eq(BirActivityCenterGoods::getCenterId,center.getCenterId());
birCenterLwq.eq(BirActivityCenterGoods::getCenterId,center.getId());
birCenterLwq.eq(BirActivityCenterGoods::getCenterType,center.getCenterType());
birCenterLwq.ge(BirActivityCenterGoods::getKeyNum, startMonthNum);
birCenterLwq.le(BirActivityCenterGoods::getKeyNum, endMonthNum);
@ -184,7 +223,7 @@ public class BirCenterRateServiceImpl implements BirCenterRateService {
//成本中心维度发货金额
List<String> supplierCodeList = birRoiRateService.getSupplierCodesByCenter(
new BirRoiCostDTO(),center.getCenterType(), Arrays.asList(center.getCenterId()));
new BirRoiCostDTO(),center.getCenterType(), Arrays.asList(center.getId()));
List<ErpDispatchSumVo> dispatchSumCenterVos = dispatchDataMapper.querySumCost(startMonthNum, endMonthNum,supplierCodeList);
BigDecimal dispatchSumCenterAmt = dispatchSumCenterVos.stream().map(ErpDispatchSumVo::getDispatchSumCost).reduce(BigDecimal.ZERO,BigDecimal::add);

65
src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java

@ -138,71 +138,6 @@ public class BmsRegionController {
.collect(Collectors.toList());
regionList = bmsRegionService.listByIds(idList);
return toTreeNodeList2(regionList,stopFlag);
//
// Map<Integer,List<BmsRegion>> listMap = regionList.stream().collect(Collectors.groupingBy(BmsRegion::getLevel));
// List<BmsRegion> list1 = listMap.get(1)==null?new ArrayList<>():listMap.get(1);
// List<BmsRegion> list2 = listMap.get(2)==null?new ArrayList<>():listMap.get(2);
// List<BmsRegion> list3 = listMap.get(3)==null?new ArrayList<>():listMap.get(3);
// List<BmsRegion> list4 = listMap.get(4)==null?new ArrayList<>():listMap.get(4);
//
// //return allList替换allSelectList代表 返回含该节点下级的数据,当前使用allSelectList
// List<BmsRegion> allList = new ArrayList<>();
// if(CollectionUtil.isNotEmpty(list1)){
// allList.addAll(list1);
// List<String> lv01Pids = list1.stream().map(BmsRegion::getId).collect(Collectors.toList());
// List<BmsRegion> level02List = bmsRegionService.listChild(lv01Pids);
// if(CollectionUtil.isNotEmpty(level02List)){
// allList.addAll(level02List);
// //list2 去重
// list2 = removeExistList(list2, level02List);
// List<String> lv02Pids = level02List.stream().map(BmsRegion::getId).collect(Collectors.toList());
// List<BmsRegion> level03List = bmsRegionService.listChild(lv02Pids);
// if(CollectionUtil.isNotEmpty(level03List)){
// allList.addAll(level03List);
// //list3 去重
// list3 = removeExistList(list3,level03List);
// List<String> lv03Pids = level03List.stream().map(BmsRegion::getId).collect(Collectors.toList());
// List<BmsRegion> level04List = bmsRegionService.listChild(lv03Pids);
// //list4 去重
// list4 = removeExistList(list4,level04List);
// allList.addAll(level04List);
// }
// }
// }
//
// if(CollectionUtil.isNotEmpty(list2)){
// List<String> lv02Pids = list2.stream().map(BmsRegion::getId).collect(Collectors.toList());
// List<BmsRegion> level03List = bmsRegionService.listChild(lv02Pids);
// if(CollectionUtil.isNotEmpty(level03List)){
// allSelectList.addAll(level03List);
// //list3 去重
// list3 = removeExistList(list3,level03List);
// List<String> lv03Pids = level03List.stream().map(BmsRegion::getId).collect(Collectors.toList());
// List<BmsRegion> level04List = bmsRegionService.listChild(lv03Pids);
// //list4 去重
// list4 = removeExistList(list4,level04List);
// allSelectList.addAll(level04List);
// }
// list2.forEach(a->a.setPid("0"));
// allSelectList.addAll(list2);
// }
//
// if(CollectionUtil.isNotEmpty(list3)){
// List<String> lv03Pids = list3.stream().map(BmsRegion::getId).collect(Collectors.toList());
// List<BmsRegion> level04List = bmsRegionService.listChild(lv03Pids);
// //list4 去重
// list4 = removeExistList(list4,level04List);
// allSelectList.addAll(level04List);
// list3.forEach(a->a.setPid("0"));
// allSelectList.addAll(list3);
// }
//
// if(CollectionUtil.isNotEmpty(list4)){
// //list4 去重
// list4.forEach(a->a.setPid("0"));
// allSelectList.addAll(list4);
// }
// return toTreeNodeList2(allSelectList);
}
return null;

14
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java

@ -18,6 +18,7 @@ import com.qs.serve.modules.bms.entity.bo.BmsSupplierBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierExcelBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierParentBo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierTreeVo;
import com.qs.serve.modules.bms.mapper.BmsSupplierComRegionMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.*;
import com.qs.serve.modules.his.entity.HisUserSupplier;
@ -57,6 +58,7 @@ import java.util.stream.Collectors;
public class BmsSupplierController {
private BmsSupplierService bmsSupplierService;
private BmsSupplierComRegionMapper supplierComRegionMapper;
private BmsSupplierAddressService bmsSupplierAddressService;
private BmsSupplierVisitAddressService bmsSupplierVisitAddressService;
private BmsSupplierContactsService bmsSupplierContactsService;
@ -847,6 +849,15 @@ public class BmsSupplierController {
}
}
/**
* 获取大区下来列表
* @return
*/
@GetMapping("/getComRegion")
public R<List<BmsSupplierComRegion>> getComRegion(){
List<BmsSupplierComRegion> supplierComRegions = supplierComRegionMapper.selectList(new QueryWrapper<>());
return R.ok(supplierComRegions);
}
/**
* 新增
@ -1284,5 +1295,8 @@ public class BmsSupplierController {
}
}
}

93
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierComRegion.java

@ -0,0 +1,93 @@
package com.qs.serve.modules.bms.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 客户大区 实体类
* @author YenHex
* @since 2023-12-30
*/
@Data
@TableName("bms_supplier_com_region")
public class BmsSupplierComRegion implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 大区编码 */
@Length(max = 255,message = "大区编码长度不能超过255字")
private String regionCode;
/** 大区名称 */
@Length(max = 255,message = "大区名称长度不能超过255字")
private String regionName;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
public static BmsSupplierComRegion toNewObject(BmsSupplierComRegion source){
BmsSupplierComRegion supplierComRegion = new BmsSupplierComRegion();
supplierComRegion.setId(source.getId());
supplierComRegion.setRegionCode(source.getRegionCode());
supplierComRegion.setRegionName(source.getRegionName());
supplierComRegion.setRemark(source.getRemark());
supplierComRegion.setCreateTime(source.getCreateTime());
supplierComRegion.setUpdateTime(source.getUpdateTime());
supplierComRegion.setTenantId(source.getTenantId());
supplierComRegion.setDelFlag(source.getDelFlag());
supplierComRegion.setCreateBy(source.getCreateBy());
supplierComRegion.setUpdateBy(source.getUpdateBy());
return supplierComRegion;
}
}

3
src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionTreeVo.java

@ -31,6 +31,9 @@ public class BmsRegionTreeVo extends TreeNode {
private String aliasRegion;
/** 是否停用 */
private Integer stopFlag;
/** 层级 */
private Integer level;

14
src/main/java/com/qs/serve/modules/bms/mapper/BmsSupplierComRegionMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsSupplierComRegion;
/**
* 客户大区 Mapper
* @author YenHex
* @date 2023-12-30
*/
public interface BmsSupplierComRegionMapper extends BaseMapper<BmsSupplierComRegion> {
}

2
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -185,6 +185,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
}
budget.setBudgetCode(budgetBo.getBudgetCode());
budget.setSubjectId(budgetBo.getSubjectId());
budget.setAttachIds(budgetBo.getAttachIds());
//设置指定模板
budget.setTemplateIds(new String[]{});
if(budget.getTemplateFlag()!=null&&budget.getTemplateFlag().equals(1)){
@ -227,6 +228,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
}
scheduleItemBudgetService.saveBatch(scheduleItemBudgets);
//设置条件
this.updateById(budget);
buildCondition(budget.getId(),brandIds,categoryIds,seriesIds,spuIds,skuIds);
}

37
src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java

@ -28,6 +28,7 @@ import com.qs.serve.modules.vtb.entity.*;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationCenterCommitBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationSubjectCommitBo;
import com.qs.serve.modules.vtb.entity.vo.VtbCostInfo;
import com.qs.serve.modules.vtb.service.*;
import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl;
import lombok.AllArgsConstructor;
@ -447,23 +448,53 @@ public class VtbVerificationController {
return vtbVerificationOperationService.runCompensate(id);
}
/**
* 获取费用相关信息
* @param verificationId
* @return
*/
@GetMapping("/getCostInfo")
public R<VtbCostInfo> getCostInfo(Long verificationId){
//申请费用金额:600,已使用金额:0,可使用金额:600,本次核销金额:600,释放金额:0
VtbVerification verification = vtbVerificationService.getById(verificationId);
TbsCostApply costApply = tbsCostApplyService.getById(verification.getCostApplyId());
TbsActivity activity = tbsActivityService.getById(verification.getActivityId());
BigDecimal costAmt = costApply.getTotalActivityAmount();
BigDecimal costUsedAmt = costApply.getTotalActivityUsedAmount();
BigDecimal activityAmt = activity.getTotalAmount();
BigDecimal activityUsedAmt = activity.getUsedAmount();
BigDecimal activityReleaseAmt = activity.getReleaseAmount();
BigDecimal verificationAmt = verification.getAmount();
VtbCostInfo costInfo = new VtbCostInfo();
costInfo.setCostAmt(costAmt);
costInfo.setCostUsedAmt(costUsedAmt);
costInfo.setActivityAmt(activityAmt);
costInfo.setActivityUsedAmt(activityUsedAmt);
costInfo.setActivityReleaseAmt(activityReleaseAmt);
costInfo.setVerificationAmt(verificationAmt);
costInfo.setActivityNotUsedAmt(activityAmt.subtract(activityUsedAmt));
return R.ok(costInfo);
}
/**
* 成功提交回调
* @param verificationId
* @return
*/
@GetMapping("successCommit")
//@GetMapping("successCommit")
public R<?> successCommit(Long verificationId){
vtbVerificationService.successCommit(verificationId,false);
return R.ok();
}
/**
* 成功提交回调
* @return
*/
@GetMapping("successCommit2")
//@GetMapping("successCommit2")
public R<?> successCommit2(){
//错误的
Long[] costIds = new Long[]{

35
src/main/java/com/qs/serve/modules/vtb/entity/vo/VtbCostInfo.java

@ -0,0 +1,35 @@
package com.qs.serve.modules.vtb.entity.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author YenHex
* @since 2023/12/30
*/
@Data
public class VtbCostInfo {
/** 费用申请金额 */
BigDecimal costAmt;
/** 费用已核销金额 */
BigDecimal costUsedAmt;
/** 活动申请金额 */
BigDecimal activityAmt;
/** 活动已核销金额 */
BigDecimal activityUsedAmt;
/** 活动释放金额 */
BigDecimal activityReleaseAmt;
/** 本次核销金额 */
BigDecimal verificationAmt;
/** 拓展:活动未核销金额(activityAmt-activityUsedAmt) */
BigDecimal activityNotUsedAmt;
}

4
src/main/resources/mapper/bms/BmsSupplierMapper.xml

@ -71,6 +71,8 @@
bms_supplier.`tenant_id`,
bms_supplier.`cost_flag`,
bms_supplier.`supplier_flag`,
bms_supplier.`com_region`,
bms_supplier.`com_region_code`,
bms_supplier.`stop_flag`,
bms_supplier.`cooperate_pause_flag`,
bms_supplier.`stop_flag_date`,
@ -89,6 +91,8 @@
<if test="query.address != null and query.address != ''"> and `bms_supplier`.`address` = #{query.address}</if>
<if test="query.name != null and query.name != ''"> and `bms_supplier`.`name` like concat('%',#{query.name},'%') </if>
<if test="query.code != null and query.code != ''"> and `bms_supplier`.`code` like concat('%',#{query.code},'%') </if>
<if test="query.query.comRegion != null and query.query.comRegion != ''"> and `bms_supplier`.`com_region` like concat('%',#{query.comRegion},'%') </if>
<if test="query.query.comRegionCode != null and query.query.comRegionCode != ''"> and `bms_supplier`.`com_region_code` like concat('%',#{query.comRegionCode},'%') </if>
<if test="query.pid != null"> and `bms_supplier`.`pid` = #{query.pid}</if>
<if test="query.parentCode != null and query.parentCode != ''"> and `bms_supplier`.`parent_code` = #{query.parentCode}</if>
<if test="query.stopFlag != null"> and `bms_supplier`.`stop_flag` = #{query.stopFlag}</if>

Loading…
Cancel
Save