From a14f066133f1ca0d77178c74115bbf5e6d7b81e6 Mon Sep 17 00:00:00 2001 From: Yen Date: Wed, 9 Nov 2022 18:17:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/controller/GoodsSpuController.java | 6 +- .../goods/service/GoodsSpuService.java | 2 +- .../service/impl/GoodsSpuServiceImpl.java | 5 +- .../modules/tbs/common/TbsCenterType.java | 16 +++ .../modules/tbs/common/TbsGoodsType.java | 11 ++ .../TbsActivityCenterController.java | 124 ------------------ .../TbsActivityCenterGoodsController.java | 124 ------------------ .../TbsActivityChannelController.java | 124 ------------------ .../TbsActivityChannelPointController.java | 124 ------------------ .../tbs/controller/TbsActivityController.java | 4 +- .../TbsActivityGoodsController.java | 124 ------------------ .../controller/TbsCostApplyController.java | 24 +++- .../serve/modules/tbs/entity/TbsActivity.java | 10 ++ .../modules/tbs/entity/TbsActivityCenter.java | 23 +--- .../modules/tbs/entity/TbsActivityGoods.java | 4 - ...yCenterBo.java => TbsActivitySubject.java} | 34 ++--- .../modules/tbs/entity/TbsCostApply.java | 15 ++- .../modules/tbs/entity/bo/TbsActivityBo.java | 65 ++++----- .../entity/bo/TbsActivityCenterGoodsBo.java | 97 ++------------ .../tbs/entity/bo/TbsActivityChannelBo.java | 45 ------- .../entity/bo/TbsActivityChannelPointBo.java | 63 --------- .../tbs/entity/bo/TbsActivityGoodsBo.java | 71 +--------- .../tbs/entity/bo/TbsActivitySubjectBo.java | 73 +++++++++++ .../modules/tbs/entity/bo/TbsCostApplyBo.java | 38 ------ .../modules/tbs/entity/vo/TbsCostApplyVo.java | 38 +++++- .../tbs/mapper/TbsActivitySubjectMapper.java | 14 ++ .../tbs/service/TbsActivityService.java | 7 + .../service/TbsActivitySubjectService.java | 14 ++ .../service/impl/TbsActivityServiceImpl.java | 65 +++++++++ .../impl/TbsActivitySubjectServiceImpl.java | 22 ++++ .../mapper/bms/BmsSupplierMapper.xml | 2 +- 31 files changed, 360 insertions(+), 1028 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/common/TbsCenterType.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/common/TbsGoodsType.java delete mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterController.java delete mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterGoodsController.java delete mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelController.java delete mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelPointController.java delete mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityGoodsController.java rename src/main/java/com/qs/serve/modules/tbs/entity/{bo/TbsActivityCenterBo.java => TbsActivitySubject.java} (73%) create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectMapper.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectService.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectServiceImpl.java diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 663d1304..ed74c683 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -127,8 +127,7 @@ public class GoodsSpuController { if(StringUtil.isNullOrEmpty(param.getCategoryId())){ return R.error("参数缺少"); } - goodsSpuService.editTasteSpu(param); - return R.ok(); + return R.ok(goodsSpuService.editTasteSpu(param)); } /** @@ -143,8 +142,7 @@ public class GoodsSpuController { if(param.getId()==null){ return R.error(); } - goodsSpuService.editTasteSpu(param); - return R.ok(); + return R.ok(goodsSpuService.editTasteSpu(param)); } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java index 05df48a5..9f9f291a 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java @@ -29,7 +29,7 @@ public interface GoodsSpuService extends IService { void edit(GoodsSpuEditBo spuEditBo); - void editTasteSpu(GoodsSpuBo param); + GoodsSpu editTasteSpu(GoodsSpuBo param); GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct); diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java index 7003afc7..064b8e93 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java +++ b/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 org.springframework.stereotype.Service; import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @@ -122,7 +123,8 @@ public class GoodsSpuServiceImpl extends ServiceImpl im } @Override - public void editTasteSpu(GoodsSpuBo param) { + @Transactional(rollbackFor = Exception.class) + public GoodsSpu editTasteSpu(GoodsSpuBo param) { GoodsSpu spu = CopierUtil.copy(param,new GoodsSpu()); if(param.getId()!=null){ spu.setSpuCode(null); @@ -133,6 +135,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl im } this.saveOrUpdate(spu); insertSpuSpec(spu.getId()); + return spu; } @Override diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsCenterType.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsCenterType.java new file mode 100644 index 00000000..b1af2c0c --- /dev/null +++ b/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 + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsGoodsType.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsGoodsType.java new file mode 100644 index 00000000..8c7d12a9 --- /dev/null +++ b/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 + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterController.java deleted file mode 100644 index 98629489..00000000 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterController.java +++ /dev/null @@ -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> getList(TbsActivityCenterVo param){ - TbsActivityCenter entity = CopierUtil.copy(param,new TbsActivityCenter()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = tbsActivityCenterService.list(lqw); - return R.ok(list); - } - - /** - * 翻页 - * @param param - * @return - */ - @GetMapping("/page") - @PreAuthorize("hasRole('tbs:activityCenter:query')") - public R> getPage(TbsActivityCenterVo param){ - TbsActivityCenter entity = CopierUtil.copy(param,new TbsActivityCenter()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List 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 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); - } - -} - diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterGoodsController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterGoodsController.java deleted file mode 100644 index a380f0fb..00000000 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityCenterGoodsController.java +++ /dev/null @@ -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> getList(TbsActivityCenterGoodsVo param){ - TbsActivityCenterGoods entity = CopierUtil.copy(param,new TbsActivityCenterGoods()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = tbsActivityCenterGoodsService.list(lqw); - return R.ok(list); - } - - /** - * 翻页 - * @param param - * @return - */ - @GetMapping("/page") - @PreAuthorize("hasRole('tbs:activityCenterGoods:query')") - public R> getPage(TbsActivityCenterGoodsVo param){ - TbsActivityCenterGoods entity = CopierUtil.copy(param,new TbsActivityCenterGoods()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List 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 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); - } - -} - diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelController.java deleted file mode 100644 index b5e83773..00000000 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelController.java +++ /dev/null @@ -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> getList(TbsActivityChannelVo param){ - TbsActivityChannel entity = CopierUtil.copy(param,new TbsActivityChannel()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = tbsActivityChannelService.list(lqw); - return R.ok(list); - } - - /** - * 翻页 - * @param param - * @return - */ - @GetMapping("/page") - @PreAuthorize("hasRole('tbs:activityChannel:query')") - public R> getPage(TbsActivityChannelVo param){ - TbsActivityChannel entity = CopierUtil.copy(param,new TbsActivityChannel()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List 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 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); - } - -} - diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelPointController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelPointController.java deleted file mode 100644 index 05a6bfdc..00000000 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityChannelPointController.java +++ /dev/null @@ -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> getList(TbsActivityChannelPointVo param){ - TbsActivityChannelPoint entity = CopierUtil.copy(param,new TbsActivityChannelPoint()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = tbsActivityChannelPointService.list(lqw); - return R.ok(list); - } - - /** - * 翻页 - * @param param - * @return - */ - @GetMapping("/page") - @PreAuthorize("hasRole('tbs:activityChannelPoint:query')") - public R> getPage(TbsActivityChannelPointVo param){ - TbsActivityChannelPoint entity = CopierUtil.copy(param,new TbsActivityChannelPoint()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List 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 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); - } - -} - diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java index 6e948044..9e33e5ab 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java @@ -77,8 +77,6 @@ public class TbsActivityController { return R.ok(tbsActivity); } - - /** * 更新 * @param param @@ -101,7 +99,7 @@ public class TbsActivityController { @PostMapping("/save") @SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.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()); boolean result = tbsActivityService.save(entity); return R.isTrue(result); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityGoodsController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityGoodsController.java deleted file mode 100644 index 9c7e7403..00000000 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityGoodsController.java +++ /dev/null @@ -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> getList(TbsActivityGoodsVo param){ - TbsActivityGoods entity = CopierUtil.copy(param,new TbsActivityGoods()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = tbsActivityGoodsService.list(lqw); - return R.ok(list); - } - - /** - * 翻页 - * @param param - * @return - */ - @GetMapping("/page") - @PreAuthorize("hasRole('tbs:activityGoods:query')") - public R> getPage(TbsActivityGoodsVo param){ - TbsActivityGoods entity = CopierUtil.copy(param,new TbsActivityGoods()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List 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 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); - } - -} - diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index f36e27e9..1cb8d401 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/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.enums.BizType; 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.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.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -33,6 +38,8 @@ import java.util.List; public class TbsCostApplyController { private TbsCostApplyService tbsCostApplyService; + private BmsSupplierService bmsSupplierService; + private SysUserService sysUserService; /** * 列表 @@ -87,8 +94,11 @@ public class TbsCostApplyController { @PostMapping("/updateById") @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE) @PreAuthorize("hasRole('tbs:costApply:update')") - public R updateById(@RequestBody @Valid TbsCostApplyBo param){ - TbsCostApply entity = CopierUtil.copy(param,new TbsCostApply()); + public R updateById(@RequestBody TbsCostApplyBo param){ + TbsCostApply entity = new TbsCostApply(); + entity.setId(param.getId()); + entity.setRemark(param.getRemark()); + entity.setChargeTheme(param.getChargeTheme()); boolean result = tbsCostApplyService.updateById(entity); return R.isTrue(result); } @@ -101,8 +111,15 @@ public class TbsCostApplyController { @PostMapping("/save") @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.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()); + 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); return R.isTrue(result); } @@ -116,6 +133,7 @@ public class TbsCostApplyController { @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) @PreAuthorize("hasRole('tbs:costApply:delete')") public R deleteById(@PathVariable("id") Long id){ + //todo 有活动数据无法删除 boolean result = tbsCostApplyService.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java index 7a677aec..24283250 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java +++ b/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") 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") @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java index 482d2f30..6c19e52f 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java @@ -1,8 +1,9 @@ package com.qs.serve.modules.tbs.entity; +import java.time.LocalDate; +import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.io.Serializable; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; @@ -18,7 +19,7 @@ import javax.validation.constraints.NotBlank; /** * 活动成本中心项 实体类 * @author YenHex - * @since 2022-11-08 + * @since 2022-11-09 */ @Data @TableName("tbs_activity_center") @@ -42,16 +43,6 @@ public class TbsActivityCenter implements Serializable { @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 = "费用额度不能为空") private BigDecimal amount; @@ -75,14 +66,6 @@ public class TbsActivityCenter implements Serializable { @Length(max = 50,message = "成本中心名称长度不能超过50字") private String centerName; - /** 场次 */ - @NotNull(message = "场次不能为空") - private Integer countSession; - - /** 人数 */ - @NotNull(message = "人数不能为空") - private Integer countPerson; - /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java index a16aee55..24fb5e03 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java @@ -39,10 +39,6 @@ public class TbsActivityGoods implements Serializable { @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字") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java similarity index 73% rename from src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterBo.java rename to src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java index 83fa3fd1..d82ac974 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterBo.java +++ b/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.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; @@ -16,16 +17,18 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.NotBlank; /** - * 活动成本中心项 Bo + * 活动科目项 实体类 * @author YenHex * @since 2022-11-09 */ @Data -public class TbsActivityCenterBo implements Serializable { +@TableName("tbs_activity_subject") +public class TbsActivitySubject implements Serializable { private static final long serialVersionUID = 1L; /** id */ + @TableId(type = IdType.AUTO) private Long id; /** 费用申请id */ @@ -54,25 +57,6 @@ public class TbsActivityCenterBo implements Serializable { @NotNull(message = "费用额度不能为空") 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 = "场次不能为空") private Integer countSession; @@ -87,10 +71,14 @@ public class TbsActivityCenterBo implements Serializable { /** 创建时间 */ @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; /** 所属租户 */ @@ -99,9 +87,11 @@ public class TbsActivityCenterBo implements Serializable { private String tenantId; /** 创建人 */ + @TableField(fill = FieldFill.INSERT) private String createBy; /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) private String updateBy; /** 逻辑删除标记(0:显示;1:隐藏) */ diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java index ce017c55..d4a2b1f5 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java @@ -19,7 +19,7 @@ import javax.validation.constraints.NotBlank; /** * 费用申请 实体类 * @author YenHex - * @since 2022-11-08 + * @since 2022-11-09 */ @Data @TableName("tbs_cost_apply") @@ -58,6 +58,19 @@ public class TbsCostApply implements Serializable { @Length(max = 255,message = "备注长度不能超过255字") 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") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java index adbd4b57..a7f3cbb4 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java +++ b/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.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; /** * 费用活动 VO @@ -37,20 +32,6 @@ public class TbsActivityBo implements Serializable { @Length(max = 255,message = "活动简述及目的长度不能超过255字") 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 = "活动开始时间不能为空") @DateTimeFormat(pattern = "yyyy-MM-dd") @@ -61,37 +42,41 @@ public class TbsActivityBo implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate actEndDate; - /** 预计核销时间 */ + /** 预算开始时间 */ + @NotNull(message = "活动开始时间不能为空") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate preStartDate; + + /** 预算结束时间 */ + @NotNull(message = "活动结束时间不能为空") @DateTimeFormat(pattern = "yyyy-MM-dd") - private LocalDate preCheckDate; + private LocalDate preEndDate; /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; - /** 创建时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; + /** 产品类型(brand、category、series、spu、sku) */ + @NotBlank(message = "目标类型不能为空") + private String activityGoodsType; - /** 最后更新时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; + /** 产品id列表 */ + @NotNull(message = "请选择产品") + private List activityGoodsList; - /** 所属租户 */ - @JsonIgnore - @JsonProperty - private String tenantId; + /** 成本中心列表 */ + @NotNull(message = "请选择成本中心") + private List activityCenterList; - /** 创建人 */ - private String createBy; + /** 产品与成本中心配比 */ + @NotNull(message = "产品缺少配比") + private List activityCenterGoodsList; - /** 更新人 */ - private String updateBy; + /** 客户详情可选:渠道配比列表 */ + List activityChannelList; - /** 逻辑删除标记(0:显示;1:隐藏) */ - @JsonIgnore - @JsonProperty - private String delFlag; + /** 客户详情可选:网点配比列表 */ + List activityPointList; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java index b5cccce5..2d0a0126 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java +++ b/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; - /** 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 = "费用额度不能为空") private BigDecimal amount; - /** 成本中心类型 */ + /** 成本中心类型: + center, + customer, + dept, + bizRegion, + saleRegion, + saleman + */ @NotBlank(message = "成本中心类型不能为空") - @Length(max = 50,message = "成本中心类型长度不能超过50字") 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 = "费用占比不能为空") private BigDecimal centerGoodsRate; /** 目标类型(brand、category、series、spu、sku) */ - @NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") - @Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字") + @NotBlank(message = "目标类型不能为空") private String targetType; /** 目标id */ @NotNull(message = "目标id不能为空") 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字") 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; - } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java index e3d8145a..d1a7f51e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java +++ b/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; - /** 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; - /** 渠道费用占比 */ @NotNull(message = "渠道费用占比不能为空") private BigDecimal channelRate; @@ -62,29 +41,5 @@ public class TbsActivityChannelBo implements Serializable { @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; - } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java index 2eac5885..6f4a1f19 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java +++ b/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; - /** 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 */ @NotNull(message = "网点id不能为空") 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 = "网点费用占比不能为空") 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; - } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java index 09e44fee..e4c35f3e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java +++ b/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; - /** 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 */ @NotNull(message = "目标id不能为空") - 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; + private Long goodsId; /** 备注 */ @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; - } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java new file mode 100644 index 00000000..3c266ab0 --- /dev/null +++ b/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 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; + + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostApplyBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostApplyBo.java index a834602f..fdb02985 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostApplyBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostApplyBo.java @@ -37,47 +37,9 @@ public class TbsCostApplyBo implements Serializable { @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; - - /** 状态:0=未发布;1=待执行;2=待核销;完成; */ - @NotNull(message = "状态:0=未发布;1=待执行;2=待核销;完成;不能为空") - private Integer chargeState; - /** 备注 */ @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; - } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsCostApplyVo.java b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsCostApplyVo.java index e4f7962b..4045dc73 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsCostApplyVo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsCostApplyVo.java @@ -18,7 +18,7 @@ import javax.validation.constraints.NotBlank; /** * 费用申请 VO * @author YenHex - * @since 2022-11-08 + * @since 2022-11-09 */ @Data public class TbsCostApplyVo implements Serializable { @@ -29,12 +29,9 @@ public class TbsCostApplyVo implements Serializable { private Long id; /** 主题 */ - @NotBlank(message = "主题不能为空") - @Length(max = 60,message = "主题长度不能超过60字") private String chargeTheme; /** 客户id */ - @NotNull(message = "客户id不能为空") private Long supplierId; /** 客户编码 */ @@ -49,5 +46,38 @@ public class TbsCostApplyVo implements Serializable { /** 备注 */ 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; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectMapper.java new file mode 100644 index 00000000..af9d510b --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java index e8c6750d..1eb332af 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java +++ b/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.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 { + /** + * 修改 + * @param activityBo + */ + void modify(TbsActivityBo activityBo); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectService.java new file mode 100644 index 00000000..986a72b9 --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java index ce2bfbf0..57c6edb3 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java @@ -1,6 +1,23 @@ package com.qs.serve.modules.tbs.service.impl; 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.extern.slf4j.Slf4j; 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.mapper.TbsActivityMapper; +import java.time.LocalDate; +import java.util.stream.Collectors; +import java.util.List; /** * 费用活动 服务实现类 * @author YenHex @@ -18,5 +38,50 @@ import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; @AllArgsConstructor public class TbsActivityServiceImpl extends ServiceImpl 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 spuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); + List spuList = goodsSpuService.listByIds(spuIds); + }else if (goodsType.equals(TbsGoodsType.sku.name())){ + List skuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); + List skuList = goodsSkuService.listByIds(skuIds); + }else { + //品牌、品类、系列 + List categoryIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); + List categoryList = goodsCategoryService.listByIds(categoryIds); + } + //费用详情 + + //客户详情 + //产品成本配占比 + } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectServiceImpl.java new file mode 100644 index 00000000..315d8026 --- /dev/null +++ b/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 implements TbsActivitySubjectService { + +} + diff --git a/src/main/resources/mapper/bms/BmsSupplierMapper.xml b/src/main/resources/mapper/bms/BmsSupplierMapper.xml index 95dac674..9fdf59bf 100644 --- a/src/main/resources/mapper/bms/BmsSupplierMapper.xml +++ b/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.regionLast in + and bms_supplier.region_last in #{selectId}