Browse Source

区域调整为4级,活动添加客户数据

mssql
Yen 3 years ago
parent
commit
d18a9c8e55
  1. 20
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java
  2. 6
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  3. 5
      src/main/java/com/qs/serve/modules/bms/mapper/BmsRegion2Mapper.java
  4. 4
      src/main/java/com/qs/serve/modules/bms/mapper/BmsRegionMapper.java
  5. 2
      src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java
  6. 41
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java
  7. 13
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java
  8. 10
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  9. 36
      src/main/java/com/qs/serve/modules/his/entity/HisUserSupplier.java
  10. 8
      src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java
  11. 4
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java
  12. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java
  13. 54
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java

20
src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java

@ -73,6 +73,22 @@ public class BmsRegion2Controller {
List<BmsRegion2> list1 = listMap.get(1)==null?new ArrayList<>():listMap.get(1);
List<BmsRegion2> list2 = listMap.get(2)==null?new ArrayList<>():listMap.get(2);
List<BmsRegion2> list3 = listMap.get(3)==null?new ArrayList<>():listMap.get(3);
List<BmsRegion2> list4 = listMap.get(3)==null?new ArrayList<>():listMap.get(4);
list4.forEach(obj4->{
boolean exist = false;
for (BmsRegion2 obj3 : list3) {
if(obj3.getId().equals(obj4.getPid())){
List<BmsRegion2> childList = obj3.getChildNodes()==null?new ArrayList<>():obj3.getChildNodes();
childList.add(obj4);
obj3.setChildNodes(childList);
exist = true;
break;
}
}
if(!exist){
list3.add(obj4);
}
});
list3.forEach(obj3->{
boolean exist = false;
for (BmsRegion2 obj2 : list2) {
@ -184,7 +200,6 @@ public class BmsRegion2Controller {
param.setId(regionBo.getId());
param.setName(regionBo.getName());
boolean result = bmsRegion2Service.updateBmsRegion2ById(param);
// bmsRegion2Service.flushLevel(param);
return R.isTrue(result);
}
@ -217,7 +232,6 @@ public class BmsRegion2Controller {
param.setId(IdUtil.getSnowFlakeId()+"");
}
boolean result = bmsRegion2Service.saveBmsRegion2(param);
// bmsRegion2Service.flushLevel(param);
return R.isTrue(result);
}
@ -271,7 +285,7 @@ public class BmsRegion2Controller {
return R.error("含有子区域无法删除");
}
//如果有供应商则不允许删除
if(bmsSupplierService.listByRegionId(id).size()>0){
if(bmsSupplierService.listByRegion2Id(id).size()>0){
return R.error("地区含有供应商无法删除");
}
if(bmsChannelPointService.listBySaleRegionId(id).size()>0){

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

@ -15,6 +15,7 @@ import com.qs.serve.modules.bms.entity.vo.BmsSupplierTreeVo;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.his.service.HisUserSupplierService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam;
import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam2;
@ -48,6 +49,7 @@ public class BmsSupplierController {
private BmsRegion2Service bmsRegion2Service;
private SysUserService sysUserService;
private BmsSupplierMapper bmsSupplierMapper;
private HisUserSupplierService hisUserSupplierService;
/**
* 翻页查询
@ -57,6 +59,10 @@ public class BmsSupplierController {
@GetMapping("/list")
@PreAuthorize("hasRole('bms:supplier:query')")
public R<List<BmsSupplier>> getList(BmsSupplier param){
if(param.getLoadByCurrent()!=null&&param.getLoadByCurrent().equals(1)){
//hisUserSupplierService.list()
return R.ok();
}
String userId = param.getUserId();
param.setCurrUserId(userId);
List<BmsSupplier> list = bmsSupplierService.selectSupplierList(param);

5
src/main/java/com/qs/serve/modules/bms/mapper/BmsRegion2Mapper.java

@ -1,7 +1,9 @@
package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import org.apache.ibatis.annotations.Update;
/**
* 区域档案 Mapper
@ -10,5 +12,8 @@ import com.qs.serve.modules.bms.entity.BmsRegion2;
*/
public interface BmsRegion2Mapper extends BaseMapper<BmsRegion2> {
@Update("update bms_region2 set path_ids = null , path_names = null,level = -1")
int updateSetPathNull();
}

4
src/main/java/com/qs/serve/modules/bms/mapper/BmsRegionMapper.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsRegion;
import org.apache.ibatis.annotations.Update;
/**
* 区域档案 Mapper
@ -10,5 +11,8 @@ import com.qs.serve.modules.bms.entity.BmsRegion;
*/
public interface BmsRegionMapper extends BaseMapper<BmsRegion> {
@Update("update bms_region set path_ids = null , path_names = null,level = -1")
int updateSetPathNull();
}

2
src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java

@ -24,6 +24,8 @@ public interface BmsSupplierService extends IService<BmsSupplier> {
List<BmsSupplier> listByRegionId(String regionId);
List<BmsSupplier> listByRegion2Id(String regionId);
void editBatch(BmsSupplierBatchBo param);
void flashParentId();

41
src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java

@ -17,6 +17,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@ -38,14 +39,14 @@ public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegio
@Override
public boolean saveBmsRegion2(BmsRegion2 param){
param = this.flushLevel(param);
param = this.toSetLevel(param);
return this.save(param);
}
@Override
public boolean updateBmsRegion2ById(BmsRegion2 param){
BmsRegion2 ori = this.getById(param.getId());
param = this.flushLevel(param);
param = this.toSetLevel(param);
boolean b = updateById(param);
if(!ori.getName().equals(param.getName())) {
this.updatePathByPid(param.getId());
@ -112,13 +113,12 @@ public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegio
return this.getOne(lqw,false);
}
// @Override
public BmsRegion2 flushLevel(BmsRegion2 param) {
public BmsRegion2 toSetLevel(BmsRegion2 param) {
if(StringUtils.hasText(param.getPid()) && !param.getPid().equals("0")){
BmsRegion2 parent = this.getById(param.getPid());
if(parent!=null){
if(parent.getLevel()>2){
Assert.throwEx("最高支持3层级");
if(parent.getLevel()>3){
Assert.throwEx("最高支持4层级");
}
param.setLevel(parent.getLevel()+1);
param.setPathIds(parent.getPathIds()+"_"+param.getId());
@ -133,17 +133,19 @@ public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegio
param.setPathNames(param.getName());
}
return param;
// this.updateById(param);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void flushAllLevel(boolean batchUpdate) {
this.baseMapper.updateSetPathNull();
List<BmsRegionTreeVo> treeVoList = this.getTree(false);
for (BmsRegionTreeVo firstTree : treeVoList) {
if(firstTree.getLevel()==null||firstTree.getLevel()!=1||batchUpdate){
String pathIds = firstTree.getId();
String pathNames = firstTree.getName();
this.updateLevel(firstTree.getId(),1,pathIds,pathNames);
BmsRegion2 param = this.getUpdLevelParam(firstTree.getId(),1,pathIds,pathNames);
this.updateById(param);
}
if(CollectionUtil.isNotEmpty(firstTree.getChildren())){
for (TreeNode secondTreeNode : firstTree.getChildren()) {
@ -151,15 +153,28 @@ public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegio
if(secondTree.getLevel()==null||secondTree.getLevel()!=2||batchUpdate){
String pathIds = firstTree.getId()+"_"+secondTree.getId();
String pathNames = firstTree.getName()+"_"+secondTree.getName();
this.updateLevel(secondTree.getId(),2,pathIds,pathNames);
BmsRegion2 param = this.getUpdLevelParam(secondTree.getId(),2,pathIds,pathNames);
this.updateById(param);
}
if(CollectionUtil.isNotEmpty(secondTree.getChildren())){
for (TreeNode thirdTreeNode : secondTree.getChildren()) {
BmsRegionTreeVo thirdTree = (BmsRegionTreeVo)thirdTreeNode;
if(thirdTree.getLevel()==null||thirdTree.getLevel()!=3||batchUpdate){
String pathIds = firstTree.getId()+"_"+secondTree.getName()+"_"+thirdTree.getId();
String pathIds = firstTree.getId()+"_"+secondTree.getId()+"_"+thirdTree.getId();
String pathNames = firstTree.getName()+"_"+secondTree.getName()+"_"+thirdTree.getName();
this.updateLevel(thirdTree.getId(),3,pathIds,pathNames);
BmsRegion2 param = this.getUpdLevelParam(thirdTree.getId(),3,pathIds,pathNames);
this.updateById(param);
}
if(CollectionUtil.isNotEmpty(thirdTree.getChildren())){
for (TreeNode fourthlyTreeNode : thirdTree.getChildren()) {
BmsRegionTreeVo fourthlyTree = (BmsRegionTreeVo)fourthlyTreeNode;
if(fourthlyTree.getLevel()==null||fourthlyTree.getLevel()!=4||batchUpdate){
String pathIds = firstTree.getId()+"_"+secondTree.getId()+"_"+thirdTree.getId()+"_"+fourthlyTree.getId();
String pathNames = firstTree.getName()+"_"+secondTree.getName()+"_"+thirdTree.getName()+"_"+fourthlyTree.getName();
BmsRegion2 param = this.getUpdLevelParam(fourthlyTree.getId(),4,pathIds,pathNames);
this.updateById(param);
}
}
}
}
}
@ -169,13 +184,13 @@ public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegio
}
public void updateLevel(String id, Integer level,String pathIds,String pathName) {
public BmsRegion2 getUpdLevelParam(String id, Integer level,String pathIds,String pathName) {
BmsRegion2 param = new BmsRegion2();
param.setId(id);
param.setLevel(level);
param.setPathIds(pathIds);
param.setPathNames(pathName);
// this.updateById(param);
return param;
}
private void updatePathByPid(String pid){

13
src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java

@ -139,6 +139,7 @@ public class BmsRegionServiceImpl extends ServiceImpl<BmsRegionMapper,BmsRegion>
@Override
public void flushAllLevel(boolean batchUpdate) {
this.baseMapper.updateSetPathNull();
List<BmsRegionTreeVo> treeVoList = this.getTree(false);
for (BmsRegionTreeVo firstTree : treeVoList) {
if(firstTree.getLevel()==null||firstTree.getLevel()!=1||batchUpdate){
@ -158,10 +159,20 @@ public class BmsRegionServiceImpl extends ServiceImpl<BmsRegionMapper,BmsRegion>
for (TreeNode thirdTreeNode : secondTree.getChildren()) {
BmsRegionTreeVo thirdTree = (BmsRegionTreeVo)thirdTreeNode;
if(thirdTree.getLevel()==null||thirdTree.getLevel()!=3||batchUpdate){
String pathIds = firstTree.getId()+"_"+secondTree.getName()+"_"+thirdTree.getId();
String pathIds = firstTree.getId()+"_"+secondTree.getId()+"_"+thirdTree.getId();
String pathNames = firstTree.getName()+"_"+secondTree.getName()+"_"+thirdTree.getName();
this.updateLevel(thirdTree.getId(),3,pathIds,pathNames);
}
if(CollectionUtil.isNotEmpty(thirdTreeNode.getChildren())){
for (TreeNode fourthlyTreeNode : thirdTreeNode.getChildren()) {
BmsRegionTreeVo fourthlyTree = (BmsRegionTreeVo)fourthlyTreeNode;
if(fourthlyTree.getLevel()==null||fourthlyTree.getLevel()!=4||batchUpdate){
String pathIds = firstTree.getId()+"_"+secondTree.getId()+"_"+thirdTree.getId()+"_"+fourthlyTree.getId();
String pathNames = firstTree.getName()+"_"+secondTree.getName()+"_"+thirdTree.getName()+"_"+fourthlyTree.getName();
this.updateLevel(fourthlyTree.getId(),4,pathIds,pathNames);
}
}
}
}
}
}

10
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java

@ -102,6 +102,16 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
return this.list(lqw);
}
@Override
public List<BmsSupplier> listByRegion2Id(String regionId) {
LambdaQueryWrapper<BmsSupplier> lqw = new LambdaQueryWrapper<>();
lqw.and(w->
w.eq(BmsSupplier::getRegion2First,regionId)
.or().eq(BmsSupplier::getRegion2Second,regionId)
.or().eq(BmsSupplier::getRegion2Third,regionId));
return this.list(lqw);
}
@Override
public void editBatch(BmsSupplierBatchBo batchBo) {
for (BmsSupplierBatchBo.BmsSupplierDto param : batchBo.getSupplierList()) {

36
src/main/java/com/qs/serve/modules/his/entity/HisUserSupplier.java

@ -19,7 +19,7 @@ import javax.validation.constraints.NotBlank;
/**
* 供应商负责人 实体类
* @author YenHex
* @since 2022-11-15
* @since 2022-11-17
*/
@Data
@TableName("his_user_supplier")
@ -40,13 +40,33 @@ public class HisUserSupplier implements Serializable {
@NotNull(message = "供应商id不能为空")
private Long supplierId;
/** 类型:0=销售区域;1=行政区域 */
/** 供应商名称 */
@Length(max = 50,message = "供应商名称长度不能超过50字")
private String supplierName;
/** 供应商编码 */
@Length(max = 30,message = "供应商编码长度不能超过30字")
private String supplierCode;
/** 类型:0=销售区域;1=行政区域;2-供应商负责人;9-无相关数据 */
private Integer type;
/** 区域id */
@Length(max = 32,message = "区域id长度不能超过32字")
private String regionId;
/** 销售区域1 */
@Length(max = 32,message = "销售区域1长度不能超过32字")
private String saleRegionFirst;
/** 销售区域2 */
@Length(max = 32,message = "销售区域2长度不能超过32字")
private String saleRegionSecond;
/** 销售区域3 */
@Length(max = 32,message = "销售区域3长度不能超过32字")
private String saleRegionThird;
/** 主要负责人 */
@NotNull(message = "主要负责人不能为空")
private Integer masterFlag;
@ -57,5 +77,17 @@ public class HisUserSupplier implements Serializable {
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 行政区域1 */
@Length(max = 32,message = "行政区域1长度不能超过32字")
private String bizRegionFirst;
/** 行政区域2 */
@Length(max = 32,message = "行政区域2长度不能超过32字")
private String bizRegionSecond;
/** 行政区域3 */
@Length(max = 32,message = "行政区域3长度不能超过32字")
private String bizRegionThird;
}

8
src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java

@ -53,8 +53,16 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
HisUserSupplier userSupplier = new HisUserSupplier();
userSupplier.setUserId(userId);
userSupplier.setSupplierId(Long.parseLong(supplier.getId()));
userSupplier.setSupplierCode(supplier.getCode());
userSupplier.setSupplierName(supplier.getName());
userSupplier.setType(3);
userSupplier.setMasterFlag(supplier.getMasterFlag());
userSupplier.setSaleRegionFirst(supplier.getRegionFirst());
userSupplier.setSaleRegionSecond(supplier.getRegionSecond());
userSupplier.setSaleRegionThird(supplier.getRegionThird());
userSupplier.setBizRegionFirst(supplier.getRegion2First());
userSupplier.setBizRegionSecond(supplier.getRegion2Second());
userSupplier.setBizRegionThird(supplier.getRegion2Third());
userSuppliers.add(userSupplier);
}
LambdaQueryWrapper<BmsRegionUser> regionUserLqw = new LambdaQueryWrapper<>();

4
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java

@ -33,8 +33,8 @@ public class TbsActivityChannelBo implements Serializable {
@NotNull(message = "渠道费用占比不能为空")
private BigDecimal channelRate;
/** 预计头发网点数量 */
@NotNull(message = "预计头发网点数量不能为空")
/** 预计投放网点数量 */
@NotNull(message = "预计投放网点数量不能为空")
private Integer preCountPoint;
/** 备注 */

2
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java

@ -33,5 +33,7 @@ public class TbsActivityChannelPointBo implements Serializable {
@NotNull(message = "网点费用占比不能为空")
private BigDecimal pointRate;
private String remark;
}

54
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java

@ -15,17 +15,10 @@ import com.qs.serve.modules.goods.entity.dto.TbsCenterDto;
import com.qs.serve.modules.goods.service.GoodsCategoryService;
import com.qs.serve.modules.goods.service.GoodsSkuService;
import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.sys.entity.SysDept;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysDeptService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsCenterType;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityBo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityCenterGoodsBo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityGoodsBo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivitySubjectBo;
import com.qs.serve.modules.tbs.entity.bo.*;
import com.qs.serve.modules.tbs.service.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -64,6 +57,8 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
private final BmsSubjectService subjectService;
private final BmsRegionService saleRegionService;
private final BmsRegion2Service bizRegionService;
private final BmsChannelService channelService;
private final BmsChannelPointService channelPointService;
private final GoodsSkuService goodsSkuService;
private final GoodsSpuService goodsSpuService;
@ -132,8 +127,8 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
Assert.throwEx("成本与商品分配的金额有误");
}
}
//todo 客户详情
//客户详情
this.initChannelsAndSave(activityBo,costApply,activity);
//保存
activityGoodsService.saveBatch(activityGoodsList);
activitySubjectService.saveBatch(activitySubjects);
@ -141,6 +136,45 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activityCenterGoodsService.saveBatch(activityCenterGoodsList);
}
private void initChannelsAndSave(TbsActivityBo activityBo,TbsCostApply costApply,TbsActivity activity){
if(CollectionUtil.isNotEmpty(activityBo.getActivityChannelList())){
List<TbsActivityChannel> activityChannelList = new ArrayList<>();
for (TbsActivityChannelBo activityChannelBo : activityBo.getActivityChannelList()) {
BmsChannel channel = channelService.getById(activityChannelBo.getChannelId());
TbsActivityChannel activityChannel = new TbsActivityChannel();
activityChannel.setActivityId(activity.getId());
activityChannel.setCostApplyId(costApply.getId());
activityChannel.setChannelId(channel.getId());
activityChannel.setChannelCode(channel.getChannelCode());
activityChannel.setChannelName(channel.getChannelName());
activityChannel.setChannelRate(activityChannelBo.getChannelRate());
activityChannel.setPreCountPoint(activityChannelBo.getPreCountPoint());
activityChannel.setRemark(activityChannelBo.getRemark());
activityChannelList.add(activityChannel);
}
activityChannelService.saveBatch(activityChannelList);
}else if(CollectionUtil.isNotEmpty(activityBo.getActivityPointList())){
List<TbsActivityChannelPoint> activityChannelPointList = new ArrayList<>();
for (TbsActivityChannelPointBo activityChannelPointBo : activityBo.getActivityPointList()) {
BmsChannelPoint channelPoint = channelPointService.getById(activityChannelPointBo.getPointId());
BmsChannel channel = channelService.getById(channelPoint.getChannelId());
TbsActivityChannelPoint activityChannelPoint = new TbsActivityChannelPoint();
activityChannelPoint.setCostApplyId(costApply.getId());
activityChannelPoint.setActivityId(activity.getId());
activityChannelPoint.setChannelId(channel.getId());
activityChannelPoint.setChannelCode(channel.getChannelCode());
activityChannelPoint.setChannelName(channel.getChannelName());
activityChannelPoint.setPointId(channelPoint.getId());
activityChannelPoint.setPointCode(channelPoint.getPointCode());
activityChannelPoint.setPointName(channelPoint.getPointName());
activityChannelPoint.setPointRate(activityChannelPointBo.getPointRate());
activityChannelPoint.setRemark(activityChannelPointBo.getRemark());
activityChannelPointList.add(activityChannelPoint);
}
activityChannelPointService.saveBatch(activityChannelPointList);
}
}
/**
* 初始化产品成本配占比
* @param activityBo

Loading…
Cancel
Save