Browse Source

调整

mssql
Yen 3 years ago
parent
commit
a14f066133
  1. 6
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  2. 2
      src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java
  3. 5
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  4. 16
      src/main/java/com/qs/serve/modules/tbs/common/TbsCenterType.java
  5. 11
      src/main/java/com/qs/serve/modules/tbs/common/TbsGoodsType.java
  6. 124
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterController.java
  7. 124
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterGoodsController.java
  8. 124
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelController.java
  9. 124
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelPointController.java
  10. 4
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java
  11. 124
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityGoodsController.java
  12. 24
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  13. 10
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java
  14. 23
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java
  15. 4
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java
  16. 34
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java
  17. 15
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java
  18. 65
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java
  19. 97
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java
  20. 45
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java
  21. 63
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java
  22. 71
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java
  23. 73
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java
  24. 38
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostApplyBo.java
  25. 38
      src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsCostApplyVo.java
  26. 14
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectMapper.java
  27. 7
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java
  28. 14
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectService.java
  29. 65
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java
  30. 22
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectServiceImpl.java
  31. 2
      src/main/resources/mapper/bms/BmsSupplierMapper.xml

6
src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java

@ -127,8 +127,7 @@ public class GoodsSpuController {
if(StringUtil.isNullOrEmpty(param.getCategoryId())){ if(StringUtil.isNullOrEmpty(param.getCategoryId())){
return R.error("参数缺少"); return R.error("参数缺少");
} }
goodsSpuService.editTasteSpu(param); return R.ok(goodsSpuService.editTasteSpu(param));
return R.ok();
} }
/** /**
@ -143,8 +142,7 @@ public class GoodsSpuController {
if(param.getId()==null){ if(param.getId()==null){
return R.error(); return R.error();
} }
goodsSpuService.editTasteSpu(param); return R.ok(goodsSpuService.editTasteSpu(param));
return R.ok();
} }

2
src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java

@ -29,7 +29,7 @@ public interface GoodsSpuService extends IService<GoodsSpu> {
void edit(GoodsSpuEditBo spuEditBo); void edit(GoodsSpuEditBo spuEditBo);
void editTasteSpu(GoodsSpuBo param); GoodsSpu editTasteSpu(GoodsSpuBo param);
GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct); GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct);

5
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java

@ -17,6 +17,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; import com.qs.serve.modules.goods.mapper.GoodsSpuMapper;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -122,7 +123,8 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
} }
@Override @Override
public void editTasteSpu(GoodsSpuBo param) { @Transactional(rollbackFor = Exception.class)
public GoodsSpu editTasteSpu(GoodsSpuBo param) {
GoodsSpu spu = CopierUtil.copy(param,new GoodsSpu()); GoodsSpu spu = CopierUtil.copy(param,new GoodsSpu());
if(param.getId()!=null){ if(param.getId()!=null){
spu.setSpuCode(null); spu.setSpuCode(null);
@ -133,6 +135,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
} }
this.saveOrUpdate(spu); this.saveOrUpdate(spu);
insertSpuSpec(spu.getId()); insertSpuSpec(spu.getId());
return spu;
} }
@Override @Override

16
src/main/java/com/qs/serve/modules/tbs/common/TbsCenterType.java

@ -0,0 +1,16 @@
package com.qs.serve.modules.tbs.common;
/**
* @author YenHex
* @since 2022/11/9
*/
public enum TbsCenterType {
center,
customer,
dept,
bizRegion,
saleRegion,
saleman
}

11
src/main/java/com/qs/serve/modules/tbs/common/TbsGoodsType.java

@ -0,0 +1,11 @@
package com.qs.serve.modules.tbs.common;
/**
* @author YenHex
* @since 2022/11/9
*/
public enum TbsGoodsType {
brand,category,series,spu,sku
}

124
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterController.java

@ -1,124 +0,0 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.PageUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.vo.TbsActivityCenterVo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityCenterBo;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import com.qs.serve.modules.tbs.service.TbsActivityCenterService;
import javax.validation.Valid;
import java.util.List;
/**
* 预算 活动成本中心项
* @author YenHex
* @since 2022-11-08
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/activityCenter")
public class TbsActivityCenterController {
private TbsActivityCenterService tbsActivityCenterService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
@PreAuthorize("hasRole('tbs:activityCenter:query')")
public R<List<TbsActivityCenter>> getList(TbsActivityCenterVo param){
TbsActivityCenter entity = CopierUtil.copy(param,new TbsActivityCenter());
LambdaQueryWrapper<TbsActivityCenter> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityCenter> list = tbsActivityCenterService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('tbs:activityCenter:query')")
public R<PageVo<TbsActivityCenter>> getPage(TbsActivityCenterVo param){
TbsActivityCenter entity = CopierUtil.copy(param,new TbsActivityCenter());
LambdaQueryWrapper<TbsActivityCenter> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityCenter> list = tbsActivityCenterService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动成本中心项", biz = BizType.QUERY)
@PreAuthorize("hasRole('tbs:activityCenter:query')")
public R<TbsActivityCenter> getById(@PathVariable("id") String id){
TbsActivityCenter tbsActivityCenter = tbsActivityCenterService.getById(id);
return R.ok(tbsActivityCenter);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.Budget, title = "活动成本中心项", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:activityCenter:update')")
public R<?> updateById(@RequestBody @Valid TbsActivityCenterBo param){
TbsActivityCenter entity = CopierUtil.copy(param,new TbsActivityCenter());
boolean result = tbsActivityCenterService.updateById(entity);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "活动成本中心项", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:activityCenter:insert')")
public R<?> save(@RequestBody @Valid TbsActivityCenter param){
TbsActivityCenter entity = CopierUtil.copy(param,new TbsActivityCenter());
boolean result = tbsActivityCenterService.save(entity);
return R.isTrue(result);
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动成本中心项", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:activityCenter:delete')")
public R<?> deleteById(@PathVariable("id") Long id){
boolean result = tbsActivityCenterService.removeById(id);
return R.isTrue(result);
}
}

124
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterGoodsController.java

@ -1,124 +0,0 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.vo.TbsActivityCenterGoodsVo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityCenterGoodsBo;
import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods;
import com.qs.serve.modules.tbs.service.TbsActivityCenterGoodsService;
import javax.validation.Valid;
import java.util.List;
/**
* 预算 活动成本中心配比项
* @author YenHex
* @since 2022-11-08
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/activityCenterGoods")
public class TbsActivityCenterGoodsController {
private TbsActivityCenterGoodsService tbsActivityCenterGoodsService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
@PreAuthorize("hasRole('tbs:activityCenterGoods:query')")
public R<List<TbsActivityCenterGoods>> getList(TbsActivityCenterGoodsVo param){
TbsActivityCenterGoods entity = CopierUtil.copy(param,new TbsActivityCenterGoods());
LambdaQueryWrapper<TbsActivityCenterGoods> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityCenterGoods> list = tbsActivityCenterGoodsService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('tbs:activityCenterGoods:query')")
public R<PageVo<TbsActivityCenterGoods>> getPage(TbsActivityCenterGoodsVo param){
TbsActivityCenterGoods entity = CopierUtil.copy(param,new TbsActivityCenterGoods());
LambdaQueryWrapper<TbsActivityCenterGoods> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityCenterGoods> list = tbsActivityCenterGoodsService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动成本中心配比项", biz = BizType.QUERY)
@PreAuthorize("hasRole('tbs:activityCenterGoods:query')")
public R<TbsActivityCenterGoods> getById(@PathVariable("id") String id){
TbsActivityCenterGoods tbsActivityCenterGoods = tbsActivityCenterGoodsService.getById(id);
return R.ok(tbsActivityCenterGoods);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.Budget, title = "活动成本中心配比项", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:activityCenterGoods:update')")
public R<?> updateById(@RequestBody @Valid TbsActivityCenterGoodsBo param){
TbsActivityCenterGoods entity = CopierUtil.copy(param,new TbsActivityCenterGoods());
boolean result = tbsActivityCenterGoodsService.updateById(entity);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "活动成本中心配比项", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:activityCenterGoods:insert')")
public R<?> save(@RequestBody @Valid TbsActivityCenterGoods param){
TbsActivityCenterGoods entity = CopierUtil.copy(param,new TbsActivityCenterGoods());
boolean result = tbsActivityCenterGoodsService.save(entity);
return R.isTrue(result);
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动成本中心配比项", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:activityCenterGoods:delete')")
public R<?> deleteById(@PathVariable("id") Long id){
boolean result = tbsActivityCenterGoodsService.removeById(id);
return R.isTrue(result);
}
}

124
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelController.java

@ -1,124 +0,0 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.vo.TbsActivityChannelVo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityChannelBo;
import com.qs.serve.modules.tbs.entity.TbsActivityChannel;
import com.qs.serve.modules.tbs.service.TbsActivityChannelService;
import javax.validation.Valid;
import java.util.List;
/**
* 预算 活动渠道项
* @author YenHex
* @since 2022-11-08
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/activityChannel")
public class TbsActivityChannelController {
private TbsActivityChannelService tbsActivityChannelService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
@PreAuthorize("hasRole('tbs:activityChannel:query')")
public R<List<TbsActivityChannel>> getList(TbsActivityChannelVo param){
TbsActivityChannel entity = CopierUtil.copy(param,new TbsActivityChannel());
LambdaQueryWrapper<TbsActivityChannel> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityChannel> list = tbsActivityChannelService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('tbs:activityChannel:query')")
public R<PageVo<TbsActivityChannel>> getPage(TbsActivityChannelVo param){
TbsActivityChannel entity = CopierUtil.copy(param,new TbsActivityChannel());
LambdaQueryWrapper<TbsActivityChannel> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityChannel> list = tbsActivityChannelService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动渠道项", biz = BizType.QUERY)
@PreAuthorize("hasRole('tbs:activityChannel:query')")
public R<TbsActivityChannel> getById(@PathVariable("id") String id){
TbsActivityChannel tbsActivityChannel = tbsActivityChannelService.getById(id);
return R.ok(tbsActivityChannel);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.Budget, title = "活动渠道项", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:activityChannel:update')")
public R<?> updateById(@RequestBody @Valid TbsActivityChannelBo param){
TbsActivityChannel entity = CopierUtil.copy(param,new TbsActivityChannel());
boolean result = tbsActivityChannelService.updateById(entity);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "活动渠道项", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:activityChannel:insert')")
public R<?> save(@RequestBody @Valid TbsActivityChannel param){
TbsActivityChannel entity = CopierUtil.copy(param,new TbsActivityChannel());
boolean result = tbsActivityChannelService.save(entity);
return R.isTrue(result);
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动渠道项", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:activityChannel:delete')")
public R<?> deleteById(@PathVariable("id") Long id){
boolean result = tbsActivityChannelService.removeById(id);
return R.isTrue(result);
}
}

124
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelPointController.java

@ -1,124 +0,0 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.vo.TbsActivityChannelPointVo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityChannelPointBo;
import com.qs.serve.modules.tbs.entity.TbsActivityChannelPoint;
import com.qs.serve.modules.tbs.service.TbsActivityChannelPointService;
import javax.validation.Valid;
import java.util.List;
/**
* 预算 活动网点项
* @author YenHex
* @since 2022-11-08
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/activityChannelPoint")
public class TbsActivityChannelPointController {
private TbsActivityChannelPointService tbsActivityChannelPointService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
@PreAuthorize("hasRole('tbs:activityChannelPoint:query')")
public R<List<TbsActivityChannelPoint>> getList(TbsActivityChannelPointVo param){
TbsActivityChannelPoint entity = CopierUtil.copy(param,new TbsActivityChannelPoint());
LambdaQueryWrapper<TbsActivityChannelPoint> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityChannelPoint> list = tbsActivityChannelPointService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('tbs:activityChannelPoint:query')")
public R<PageVo<TbsActivityChannelPoint>> getPage(TbsActivityChannelPointVo param){
TbsActivityChannelPoint entity = CopierUtil.copy(param,new TbsActivityChannelPoint());
LambdaQueryWrapper<TbsActivityChannelPoint> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityChannelPoint> list = tbsActivityChannelPointService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动网点项", biz = BizType.QUERY)
@PreAuthorize("hasRole('tbs:activityChannelPoint:query')")
public R<TbsActivityChannelPoint> getById(@PathVariable("id") String id){
TbsActivityChannelPoint tbsActivityChannelPoint = tbsActivityChannelPointService.getById(id);
return R.ok(tbsActivityChannelPoint);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.Budget, title = "活动网点项", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:activityChannelPoint:update')")
public R<?> updateById(@RequestBody @Valid TbsActivityChannelPointBo param){
TbsActivityChannelPoint entity = CopierUtil.copy(param,new TbsActivityChannelPoint());
boolean result = tbsActivityChannelPointService.updateById(entity);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "活动网点项", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:activityChannelPoint:insert')")
public R<?> save(@RequestBody @Valid TbsActivityChannelPoint param){
TbsActivityChannelPoint entity = CopierUtil.copy(param,new TbsActivityChannelPoint());
boolean result = tbsActivityChannelPointService.save(entity);
return R.isTrue(result);
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动网点项", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:activityChannelPoint:delete')")
public R<?> deleteById(@PathVariable("id") Long id){
boolean result = tbsActivityChannelPointService.removeById(id);
return R.isTrue(result);
}
}

4
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java

@ -77,8 +77,6 @@ public class TbsActivityController {
return R.ok(tbsActivity); return R.ok(tbsActivity);
} }
/** /**
* 更新 * 更新
* @param param * @param param
@ -101,7 +99,7 @@ public class TbsActivityController {
@PostMapping("/save") @PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.INSERT) @SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:activity:insert')") @PreAuthorize("hasRole('tbs:activity:insert')")
public R<?> save(@RequestBody @Valid TbsActivity param){ public R<?> save(@RequestBody @Valid TbsActivityBo param){
TbsActivity entity = CopierUtil.copy(param,new TbsActivity()); TbsActivity entity = CopierUtil.copy(param,new TbsActivity());
boolean result = tbsActivityService.save(entity); boolean result = tbsActivityService.save(entity);
return R.isTrue(result); return R.isTrue(result);

124
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityGoodsController.java

@ -1,124 +0,0 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.vo.TbsActivityGoodsVo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityGoodsBo;
import com.qs.serve.modules.tbs.entity.TbsActivityGoods;
import com.qs.serve.modules.tbs.service.TbsActivityGoodsService;
import javax.validation.Valid;
import java.util.List;
/**
* 预算 活动商品项
* @author YenHex
* @since 2022-11-08
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/activityGoods")
public class TbsActivityGoodsController {
private TbsActivityGoodsService tbsActivityGoodsService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
@PreAuthorize("hasRole('tbs:activityGoods:query')")
public R<List<TbsActivityGoods>> getList(TbsActivityGoodsVo param){
TbsActivityGoods entity = CopierUtil.copy(param,new TbsActivityGoods());
LambdaQueryWrapper<TbsActivityGoods> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityGoods> list = tbsActivityGoodsService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('tbs:activityGoods:query')")
public R<PageVo<TbsActivityGoods>> getPage(TbsActivityGoodsVo param){
TbsActivityGoods entity = CopierUtil.copy(param,new TbsActivityGoods());
LambdaQueryWrapper<TbsActivityGoods> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityGoods> list = tbsActivityGoodsService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动商品项", biz = BizType.QUERY)
@PreAuthorize("hasRole('tbs:activityGoods:query')")
public R<TbsActivityGoods> getById(@PathVariable("id") String id){
TbsActivityGoods tbsActivityGoods = tbsActivityGoodsService.getById(id);
return R.ok(tbsActivityGoods);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.Budget, title = "活动商品项", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:activityGoods:update')")
public R<?> updateById(@RequestBody @Valid TbsActivityGoodsBo param){
TbsActivityGoods entity = CopierUtil.copy(param,new TbsActivityGoods());
boolean result = tbsActivityGoodsService.updateById(entity);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "活动商品项", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:activityGoods:insert')")
public R<?> save(@RequestBody @Valid TbsActivityGoods param){
TbsActivityGoods entity = CopierUtil.copy(param,new TbsActivityGoods());
boolean result = tbsActivityGoodsService.save(entity);
return R.isTrue(result);
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动商品项", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:activityGoods:delete')")
public R<?> deleteById(@PathVariable("id") Long id){
boolean result = tbsActivityGoodsService.removeById(id);
return R.isTrue(result);
}
}

24
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java

@ -6,8 +6,13 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@ -33,6 +38,8 @@ import java.util.List;
public class TbsCostApplyController { public class TbsCostApplyController {
private TbsCostApplyService tbsCostApplyService; private TbsCostApplyService tbsCostApplyService;
private BmsSupplierService bmsSupplierService;
private SysUserService sysUserService;
/** /**
* 列表 * 列表
@ -87,8 +94,11 @@ public class TbsCostApplyController {
@PostMapping("/updateById") @PostMapping("/updateById")
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE) @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:costApply:update')") @PreAuthorize("hasRole('tbs:costApply:update')")
public R<?> updateById(@RequestBody @Valid TbsCostApplyBo param){ public R<?> updateById(@RequestBody TbsCostApplyBo param){
TbsCostApply entity = CopierUtil.copy(param,new TbsCostApply()); TbsCostApply entity = new TbsCostApply();
entity.setId(param.getId());
entity.setRemark(param.getRemark());
entity.setChargeTheme(param.getChargeTheme());
boolean result = tbsCostApplyService.updateById(entity); boolean result = tbsCostApplyService.updateById(entity);
return R.isTrue(result); return R.isTrue(result);
} }
@ -101,8 +111,15 @@ public class TbsCostApplyController {
@PostMapping("/save") @PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.INSERT) @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:costApply:insert')") @PreAuthorize("hasRole('tbs:costApply:insert')")
public R<?> save(@RequestBody @Valid TbsCostApply param){ public R<?> save(@RequestBody @Valid TbsCostApplyBo param){
TbsCostApply entity = CopierUtil.copy(param,new TbsCostApply()); TbsCostApply entity = CopierUtil.copy(param,new TbsCostApply());
BmsSupplier supplier = bmsSupplierService.getById(entity.getSupplierId());
entity.setSupplierCode(supplier.getCode());
entity.setSupplierName(supplier.getName());
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
entity.setUserId(sysUser.getId());
entity.setUserCode(sysUser.getCode());
entity.setUserName(sysUser.getName());
boolean result = tbsCostApplyService.save(entity); boolean result = tbsCostApplyService.save(entity);
return R.isTrue(result); return R.isTrue(result);
} }
@ -116,6 +133,7 @@ public class TbsCostApplyController {
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:costApply:delete')") @PreAuthorize("hasRole('tbs:costApply:delete')")
public R<?> deleteById(@PathVariable("id") Long id){ public R<?> deleteById(@PathVariable("id") Long id){
//todo 有活动数据无法删除
boolean result = tbsCostApplyService.removeById(id); boolean result = tbsCostApplyService.removeById(id);
return R.isTrue(result); return R.isTrue(result);
} }

10
src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java

@ -65,6 +65,16 @@ public class TbsActivity implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDate actEndDate; private LocalDate actEndDate;
/** 预算开始时间 */
@NotNull(message = "活动开始时间不能为空")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate preStartDate;
/** 预算结束时间 */
@NotNull(message = "活动结束时间不能为空")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate preEndDate;
/** 预计核销时间 */ /** 预计核销时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")

23
src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java

@ -1,8 +1,9 @@
package com.qs.serve.modules.tbs.entity; package com.qs.serve.modules.tbs.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -18,7 +19,7 @@ import javax.validation.constraints.NotBlank;
/** /**
* 活动成本中心项 实体类 * 活动成本中心项 实体类
* @author YenHex * @author YenHex
* @since 2022-11-08 * @since 2022-11-09
*/ */
@Data @Data
@TableName("tbs_activity_center") @TableName("tbs_activity_center")
@ -42,16 +43,6 @@ public class TbsActivityCenter implements Serializable {
@NotNull(message = "科目id不能为空") @NotNull(message = "科目id不能为空")
private Long subjectId; private Long subjectId;
/** 科目编码 */
@NotBlank(message = "科目编码不能为空")
@Length(max = 50,message = "科目编码长度不能超过50字")
private String subjectCode;
/** 科目名称 */
@NotBlank(message = "科目名称不能为空")
@Length(max = 50,message = "科目名称长度不能超过50字")
private String subjectName;
/** 费用额度 */ /** 费用额度 */
@NotNull(message = "费用额度不能为空") @NotNull(message = "费用额度不能为空")
private BigDecimal amount; private BigDecimal amount;
@ -75,14 +66,6 @@ public class TbsActivityCenter implements Serializable {
@Length(max = 50,message = "成本中心名称长度不能超过50字") @Length(max = 50,message = "成本中心名称长度不能超过50字")
private String centerName; private String centerName;
/** 场次 */
@NotNull(message = "场次不能为空")
private Integer countSession;
/** 人数 */
@NotNull(message = "人数不能为空")
private Integer countPerson;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;

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

@ -39,10 +39,6 @@ public class TbsActivityGoods implements Serializable {
@NotNull(message = "活动id不能为空") @NotNull(message = "活动id不能为空")
private Long activityId; private Long activityId;
/** 网点费用占比 */
@NotNull(message = "网点费用占比不能为空")
private BigDecimal goodsRate;
/** 目标类型(brand、category、series、spu、sku) */ /** 目标类型(brand、category、series、spu、sku) */
@NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") @NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空")
@Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字") @Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字")

34
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterBo.java → src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java

@ -1,10 +1,11 @@
package com.qs.serve.modules.tbs.entity.bo; package com.qs.serve.modules.tbs.entity;
import java.time.LocalDate; import java.time.LocalDate;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
@ -16,16 +17,18 @@ import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
/** /**
* 活动成本中心项 Bo * 活动科目项 实体类
* @author YenHex * @author YenHex
* @since 2022-11-09 * @since 2022-11-09
*/ */
@Data @Data
public class TbsActivityCenterBo implements Serializable { @TableName("tbs_activity_subject")
public class TbsActivitySubject implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** id */ /** id */
@TableId(type = IdType.AUTO)
private Long id; private Long id;
/** 费用申请id */ /** 费用申请id */
@ -54,25 +57,6 @@ public class TbsActivityCenterBo implements Serializable {
@NotNull(message = "费用额度不能为空") @NotNull(message = "费用额度不能为空")
private BigDecimal amount; private BigDecimal amount;
/** 成本中心类型 */
@NotBlank(message = "成本中心类型不能为空")
@Length(max = 255,message = "成本中心类型长度不能超过255字")
private String centerType;
/** 成本中心id */
@NotNull(message = "成本中心id不能为空")
private Long centerId;
/** 成本中心编码 */
@NotBlank(message = "成本中心编码不能为空")
@Length(max = 50,message = "成本中心编码长度不能超过50字")
private String centerCode;
/** 成本中心名称 */
@NotBlank(message = "成本中心名称不能为空")
@Length(max = 50,message = "成本中心名称长度不能超过50字")
private String centerName;
/** 场次 */ /** 场次 */
@NotNull(message = "场次不能为空") @NotNull(message = "场次不能为空")
private Integer countSession; private Integer countSession;
@ -87,10 +71,14 @@ public class TbsActivityCenterBo implements Serializable {
/** 创建时间 */ /** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @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; private LocalDateTime createTime;
/** 最后更新时间 */ /** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @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; private LocalDateTime updateTime;
/** 所属租户 */ /** 所属租户 */
@ -99,9 +87,11 @@ public class TbsActivityCenterBo implements Serializable {
private String tenantId; private String tenantId;
/** 创建人 */ /** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy; private String createBy;
/** 更新人 */ /** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy; private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */ /** 逻辑删除标记(0:显示;1:隐藏) */

15
src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java

@ -19,7 +19,7 @@ import javax.validation.constraints.NotBlank;
/** /**
* 费用申请 实体类 * 费用申请 实体类
* @author YenHex * @author YenHex
* @since 2022-11-08 * @since 2022-11-09
*/ */
@Data @Data
@TableName("tbs_cost_apply") @TableName("tbs_cost_apply")
@ -58,6 +58,19 @@ public class TbsCostApply implements Serializable {
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;
/** 申请人 */
@NotBlank(message = "申请人不能为空")
@Length(max = 32,message = "申请人长度不能超过32字")
private String userId;
/** */
@Length(max = 32,message = "长度不能超过32字")
private String userCode;
/** */
@Length(max = 32,message = "长度不能超过32字")
private String userName;
/** 创建时间 */ /** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

65
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java

@ -2,18 +2,13 @@ package com.qs.serve.modules.tbs.entity.bo;
import java.time.LocalDate; import java.time.LocalDate;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.List;
/** /**
* 费用活动 VO * 费用活动 VO
@ -37,20 +32,6 @@ public class TbsActivityBo implements Serializable {
@Length(max = 255,message = "活动简述及目的长度不能超过255字") @Length(max = 255,message = "活动简述及目的长度不能超过255字")
private String actTitle; private String actTitle;
/** 客户id */
@NotNull(message = "客户id不能为空")
private Long supplierId;
/** 客户编码 */
@NotBlank(message = "客户编码不能为空")
@Length(max = 30,message = "客户编码长度不能超过30字")
private String supplierCode;
/** 客户名称 */
@NotBlank(message = "客户名称不能为空")
@Length(max = 30,message = "客户名称长度不能超过30字")
private String supplierName;
/** 活动开始时间 */ /** 活动开始时间 */
@NotNull(message = "活动开始时间不能为空") @NotNull(message = "活动开始时间不能为空")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@ -61,37 +42,41 @@ public class TbsActivityBo implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate actEndDate; private LocalDate actEndDate;
/** 预计核销时间 */ /** 预算开始时间 */
@NotNull(message = "活动开始时间不能为空")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate preStartDate;
/** 预算结束时间 */
@NotNull(message = "活动结束时间不能为空")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate preCheckDate; private LocalDate preEndDate;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;
/** 创建时间 */ /** 产品类型(brand、category、series、spu、sku) */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @NotBlank(message = "目标类型不能为空")
private LocalDateTime createTime; private String activityGoodsType;
/** 最后更新时间 */ /** 产品id列表 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @NotNull(message = "请选择产品")
private LocalDateTime updateTime; private List<TbsActivityGoodsBo> activityGoodsList;
/** 所属租户 */ /** 成本中心列表 */
@JsonIgnore @NotNull(message = "请选择成本中心")
@JsonProperty private List<TbsActivitySubjectBo> activityCenterList;
private String tenantId;
/** 创建人 */ /** 产品与成本中心配比 */
private String createBy; @NotNull(message = "产品缺少配比")
private List<TbsActivityCenterGoodsBo> activityCenterGoodsList;
/** 更新人 */ /** 客户详情可选:渠道配比列表 */
private String updateBy; List<TbsActivityChannelBo> activityChannelList;
/** 逻辑删除标记(0:显示;1:隐藏) */ /** 客户详情可选:网点配比列表 */
@JsonIgnore List<TbsActivityChannelPointBo> activityPointList;
@JsonProperty
private String delFlag;
} }

97
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java

@ -25,119 +25,40 @@ public class TbsActivityCenterGoodsBo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 费用申请id */
@NotNull(message = "费用申请id不能为空")
private Long costApplyId;
/** 活动id */
@NotNull(message = "活动id不能为空")
private Long activityId;
/** 科目id */
@NotNull(message = "科目id不能为空")
private Long subjectId;
/** 科目编码 */
@NotBlank(message = "科目编码不能为空")
@Length(max = 50,message = "科目编码长度不能超过50字")
private String subjectCode;
/** 科目名称 */
@NotBlank(message = "科目名称不能为空")
@Length(max = 50,message = "科目名称长度不能超过50字")
private String subjectName;
/** 费用额度 */ /** 费用额度 */
@NotNull(message = "费用额度不能为空") @NotNull(message = "费用额度不能为空")
private BigDecimal amount; private BigDecimal amount;
/** 成本中心类型 */ /** 成本中心类型:
center,
customer,
dept,
bizRegion,
saleRegion,
saleman
*/
@NotBlank(message = "成本中心类型不能为空") @NotBlank(message = "成本中心类型不能为空")
@Length(max = 50,message = "成本中心类型长度不能超过50字")
private String centerType; private String centerType;
/** 成本中心id */ /** 成本中心id */
@NotNull(message = "成本中心id不能为空") @NotNull(message = "成本中心id不能为空")
private Long centerId; private Long centerId;
/** 成本中心编码 */
@NotBlank(message = "成本中心编码不能为空")
@Length(max = 50,message = "成本中心编码长度不能超过50字")
private String centerCode;
/** 成本中心名称 */
@NotBlank(message = "成本中心名称不能为空")
@Length(max = 50,message = "成本中心名称长度不能超过50字")
private String centerName;
/** 费用占比 */ /** 费用占比 */
@NotNull(message = "费用占比不能为空") @NotNull(message = "费用占比不能为空")
private BigDecimal centerGoodsRate; private BigDecimal centerGoodsRate;
/** 目标类型(brand、category、series、spu、sku) */ /** 目标类型(brand、category、series、spu、sku) */
@NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") @NotBlank(message = "目标类型不能为空")
@Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字")
private String targetType; private String targetType;
/** 目标id */ /** 目标id */
@NotNull(message = "目标id不能为空") @NotNull(message = "目标id不能为空")
private Long targetId; private Long targetId;
/** 目标编码 */
@NotBlank(message = "目标编码不能为空")
@Length(max = 30,message = "目标编码长度不能超过30字")
private String targetCode;
/** 目标名称 */
@NotBlank(message = "目标名称不能为空")
@Length(max = 30,message = "目标名称长度不能超过30字")
private String targetName;
/** 目标父级id */
private Long targetParentId;
/** 目标父级编码 */
@Length(max = 30,message = "目标父级编码长度不能超过30字")
private String targetParentCode;
/** 目标父级名称 */
@Length(max = 20,message = "目标父级名称长度不能超过20字")
private String targetParentName;
/** 目标等级路径 */
@Length(max = 600,message = "目标等级路径长度不能超过600字")
private String targetLevelPath;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
private String createBy;
/** 更新人 */
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
} }

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

@ -25,31 +25,10 @@ public class TbsActivityChannelBo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 费用申请id */
@NotNull(message = "费用申请id不能为空")
private Long costApplyId;
/** 活动id */
@NotNull(message = "活动id不能为空")
private Long activityId;
/** 渠道id */ /** 渠道id */
@NotNull(message = "渠道id不能为空") @NotNull(message = "渠道id不能为空")
private Long channelId; private Long channelId;
/** 渠道编码 */
@NotBlank(message = "渠道编码不能为空")
@Length(max = 50,message = "渠道编码长度不能超过50字")
private String channelCode;
/** 渠道名称 */
@NotBlank(message = "渠道名称不能为空")
@Length(max = 50,message = "渠道名称长度不能超过50字")
private String channelName;
/** 渠道费用占比 */ /** 渠道费用占比 */
@NotNull(message = "渠道费用占比不能为空") @NotNull(message = "渠道费用占比不能为空")
private BigDecimal channelRate; private BigDecimal channelRate;
@ -62,29 +41,5 @@ public class TbsActivityChannelBo implements Serializable {
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
private String createBy;
/** 更新人 */
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
} }

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

@ -25,76 +25,13 @@ public class TbsActivityChannelPointBo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 费用申请id */
@NotNull(message = "费用申请id不能为空")
private Long costApplyId;
/** 活动id */
@NotNull(message = "活动id不能为空")
private Long activityId;
/** 渠道id */
@NotNull(message = "渠道id不能为空")
private Long channelId;
/** 渠道编码 */
@NotBlank(message = "渠道编码不能为空")
@Length(max = 50,message = "渠道编码长度不能超过50字")
private String channelCode;
/** 渠道名称 */
@NotBlank(message = "渠道名称不能为空")
@Length(max = 50,message = "渠道名称长度不能超过50字")
private String channelName;
/** 网点id */ /** 网点id */
@NotNull(message = "网点id不能为空") @NotNull(message = "网点id不能为空")
private Long pointId; private Long pointId;
/** 网点编码 */
@NotBlank(message = "网点编码不能为空")
@Length(max = 50,message = "网点编码长度不能超过50字")
private String pointCode;
/** 网点名称 */
@NotBlank(message = "网点名称不能为空")
@Length(max = 50,message = "网点名称长度不能超过50字")
private String pointName;
/** 网点费用占比 */ /** 网点费用占比 */
@NotNull(message = "网点费用占比不能为空") @NotNull(message = "网点费用占比不能为空")
private BigDecimal pointRate; private BigDecimal pointRate;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
private String createBy;
/** 更新人 */
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
} }

71
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java

@ -25,82 +25,13 @@ public class TbsActivityGoodsBo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 费用申请id */
@NotNull(message = "费用申请id不能为空")
private Long costApplyId;
/** 活动id */
@NotNull(message = "活动id不能为空")
private Long activityId;
/** 网点费用占比 */
@NotNull(message = "网点费用占比不能为空")
private BigDecimal goodsRate;
/** 目标类型(brand、category、series、spu、sku) */
@NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空")
@Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字")
private String targetType;
/** 目标id */ /** 目标id */
@NotNull(message = "目标id不能为空") @NotNull(message = "目标id不能为空")
private Long targetId; private Long goodsId;
/** 目标编码 */
@NotBlank(message = "目标编码不能为空")
@Length(max = 30,message = "目标编码长度不能超过30字")
private String targetCode;
/** 目标名称 */
@NotBlank(message = "目标名称不能为空")
@Length(max = 30,message = "目标名称长度不能超过30字")
private String targetName;
/** 目标父级id */
private Long targetParentId;
/** 目标父级编码 */
@Length(max = 30,message = "目标父级编码长度不能超过30字")
private String targetParentCode;
/** 目标父级名称 */
@Length(max = 20,message = "目标父级名称长度不能超过20字")
private String targetParentName;
/** 目标等级路径 */
@Length(max = 600,message = "目标等级路径长度不能超过600字")
private String targetLevelPath;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
private String createBy;
/** 更新人 */
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
} }

73
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java

@ -0,0 +1,73 @@
package com.qs.serve.modules.tbs.entity.bo;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
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;
import java.util.List;
/**
* 活动成本中心项 Bo
* @author YenHex
* @since 2022-11-09
*/
@Data
public class TbsActivitySubjectBo implements Serializable {
private static final long serialVersionUID = 1L;
private Long subjectId;
/** 场次 */
@NotNull(message = "场次不能为空")
private Integer countSession;
/** 人数 */
@NotNull(message = "人数不能为空")
private Integer countPerson;
/** 费用额 */
@NotNull(message = "费用额不能为空")
private BigDecimal amount;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
private List<ActivityCenterBo> centerList;
@Data
public static class ActivityCenterBo{
/** 成本中心类型
center,
customer,
dept,
bizRegion,
saleRegion,
saleman
*/
@NotBlank(message = "成本中心类型不能为空")
private String centerType;
/** 成本中心id */
@NotNull(message = "成本中心id不能为空")
private Long centerId;
/** 费用占比率,单位百分位(该成本中心在费用中占比) */
@NotNull(message = "费用占比率不能为空")
private BigDecimal subjectRate;
}
}

38
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostApplyBo.java

@ -37,47 +37,9 @@ public class TbsCostApplyBo implements Serializable {
@NotNull(message = "客户id不能为空") @NotNull(message = "客户id不能为空")
private Long supplierId; private Long supplierId;
/** 客户编码 */
@NotBlank(message = "客户编码不能为空")
@Length(max = 30,message = "客户编码长度不能超过30字")
private String supplierCode;
/** 客户名称 */
@NotBlank(message = "客户名称不能为空")
@Length(max = 30,message = "客户名称长度不能超过30字")
private String supplierName;
/** 状态:0=未发布;1=待执行;2=待核销;完成; */
@NotNull(message = "状态:0=未发布;1=待执行;2=待核销;完成;不能为空")
private Integer chargeState;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
private String createBy;
/** 更新人 */
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
} }

38
src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsCostApplyVo.java

@ -18,7 +18,7 @@ import javax.validation.constraints.NotBlank;
/** /**
* 费用申请 VO * 费用申请 VO
* @author YenHex * @author YenHex
* @since 2022-11-08 * @since 2022-11-09
*/ */
@Data @Data
public class TbsCostApplyVo implements Serializable { public class TbsCostApplyVo implements Serializable {
@ -29,12 +29,9 @@ public class TbsCostApplyVo implements Serializable {
private Long id; private Long id;
/** 主题 */ /** 主题 */
@NotBlank(message = "主题不能为空")
@Length(max = 60,message = "主题长度不能超过60字")
private String chargeTheme; private String chargeTheme;
/** 客户id */ /** 客户id */
@NotNull(message = "客户id不能为空")
private Long supplierId; private Long supplierId;
/** 客户编码 */ /** 客户编码 */
@ -49,5 +46,38 @@ public class TbsCostApplyVo implements Serializable {
/** 备注 */ /** 备注 */
private String remark; private String remark;
/** 申请人 */
private String userId;
/** */
private String userCode;
/** */
private String userName;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
private String createBy;
/** 更新人 */
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
} }

14
src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.tbs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
/**
* 活动科目项 Mapper
* @author YenHex
* @date 2022-11-09
*/
public interface TbsActivitySubjectMapper extends BaseMapper<TbsActivitySubject> {
}

7
src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityBo;
/** /**
* 费用活动 服务接口 * 费用活动 服务接口
@ -10,5 +11,11 @@ import com.qs.serve.modules.tbs.entity.TbsActivity;
*/ */
public interface TbsActivityService extends IService<TbsActivity> { public interface TbsActivityService extends IService<TbsActivity> {
/**
* 修改
* @param activityBo
*/
void modify(TbsActivityBo activityBo);
} }

14
src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
/**
* 活动科目项 服务接口
* @author YenHex
* @date 2022-11-09
*/
public interface TbsActivitySubjectService extends IService<TbsActivitySubject> {
}

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

@ -1,6 +1,23 @@
package com.qs.serve.modules.tbs.service.impl; package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.goods.entity.GoodsCategory;
import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.GoodsSpu;
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.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityBo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityGoodsBo;
import com.qs.serve.modules.tbs.service.TbsActivityGoodsService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -8,6 +25,9 @@ import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.tbs.service.TbsActivityService;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import java.time.LocalDate;
import java.util.stream.Collectors;
import java.util.List;
/** /**
* 费用活动 服务实现类 * 费用活动 服务实现类
* @author YenHex * @author YenHex
@ -18,5 +38,50 @@ import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
@AllArgsConstructor @AllArgsConstructor
public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsActivity> implements TbsActivityService { public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsActivity> implements TbsActivityService {
private final TbsActivityGoodsService activityGoodsService;
private final TbsCostApplyService costApplyService;
private final BmsSupplierService supplierService;
private final GoodsSkuService goodsSkuService;
private final GoodsSpuService goodsSpuService;
private final GoodsCategoryService goodsCategoryService;
@Override
public void modify(TbsActivityBo activityBo) {
TbsCostApply costApply = costApplyService.getById(activityBo.getId());
BmsSupplier supplier = supplierService.getById(costApply.getSupplierId());
TbsActivity activity = null;
if(activityBo.getId()!=null){
activity = this.getById(activityBo.getId());
if(activity==null){
Assert.throwEx("活动不存在");
}
}else {
activity = CopierUtil.copy(activityBo,new TbsActivity());
}
activity.setSupplierId(Long.parseLong(supplier.getId()));
activity.setSupplierCode(supplier.getCode());
activity.setSupplierName(supplier.getName());
if(activity.getId()!=null){
//todo 删除旧数据
}
//产品详情
String goodsType = activityBo.getActivityGoodsType();
if(goodsType.equals(TbsGoodsType.spu.name())){
List<Long> spuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList());
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds);
}else if (goodsType.equals(TbsGoodsType.sku.name())){
List<Long> skuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList());
List<GoodsSku> skuList = goodsSkuService.listByIds(skuIds);
}else {
//品牌、品类、系列
List<Long> categoryIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList());
List<GoodsCategory> categoryList = goodsCategoryService.listByIds(categoryIds);
}
//费用详情
//客户详情
//产品成本配占比
}
} }

22
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
import com.qs.serve.modules.tbs.service.TbsActivitySubjectService;
import com.qs.serve.modules.tbs.mapper.TbsActivitySubjectMapper;
/**
* 活动科目项 服务实现类
* @author YenHex
* @since 2022-11-09
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsActivitySubjectServiceImpl extends ServiceImpl<TbsActivitySubjectMapper,TbsActivitySubject> implements TbsActivitySubjectService {
}

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

@ -101,7 +101,7 @@
and (`bms_supplier`.`user_code` LIKE CONCAT('%',#{query.searchUserCode},'%') or `bms_supplier`.`other_user_codes` LIKE CONCAT('%',#{query.searchUserCode},'%') ) and (`bms_supplier`.`user_code` LIKE CONCAT('%',#{query.searchUserCode},'%') or `bms_supplier`.`other_user_codes` LIKE CONCAT('%',#{query.searchUserCode},'%') )
</if> </if>
<if test="query.regionIds!=null and query.regionIds.size > 0"> <if test="query.regionIds!=null and query.regionIds.size > 0">
and bms_supplier.regionLast in and bms_supplier.region_last in
<foreach collection="query.regionIds" item ="selectId" index="i" open="(" close=")" separator=","> <foreach collection="query.regionIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId} #{selectId}
</foreach> </foreach>

Loading…
Cancel
Save