Browse Source

调整

mssql
Yen 3 years ago
parent
commit
16bcaae3d2
  1. 15
      src/main/java/com/qs/serve/common/framework/redis/RedisService.java
  2. 30
      src/main/java/com/qs/serve/common/framework/redis/TtlRedisCacheManager.java
  3. 24
      src/main/java/com/qs/serve/common/util/StringUtils.java
  4. 40
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java
  5. 11
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java
  6. 177
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionUserController.java
  7. 63
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  8. 5
      src/main/java/com/qs/serve/modules/bms/controller/api/BmsRegionApi.java
  9. 6
      src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java
  10. 6
      src/main/java/com/qs/serve/modules/bms/entity/BmsRegion2.java
  11. 98
      src/main/java/com/qs/serve/modules/bms/entity/BmsRegionUser.java
  12. 40
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionUserBo.java
  13. 28
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionUserSaveBo.java
  14. 7
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java
  15. 4
      src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionTreeVo.java
  16. 14
      src/main/java/com/qs/serve/modules/bms/mapper/BmsRegionUserMapper.java
  17. 2
      src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java
  18. 2
      src/main/java/com/qs/serve/modules/bms/service/BmsRegionService.java
  19. 22
      src/main/java/com/qs/serve/modules/bms/service/BmsRegionUserService.java
  20. 45
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java
  21. 46
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java
  22. 46
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionUserServiceImpl.java
  23. 4
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  24. 9
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpecValueController.java
  25. 13
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  26. 2
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSpecValue.java
  27. 3
      src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java
  28. 3
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  29. 5
      src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java
  30. 2
      src/main/java/com/qs/serve/modules/sys/entity/bo/SysRelateSuppliersParam2.java
  31. 4
      src/main/java/com/qs/serve/modules/sys/entity/dto/SysUserSimpleVo.java

15
src/main/java/com/qs/serve/common/framework/redis/RedisService.java

@ -1,7 +1,13 @@
package com.qs.serve.common.framework.redis; package com.qs.serve.common.framework.redis;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.core.*; import org.springframework.data.redis.core.*;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.Serializable; import java.io.Serializable;
import java.util.*; import java.util.*;
@ -15,6 +21,15 @@ import java.util.concurrent.TimeUnit;
@AllArgsConstructor @AllArgsConstructor
public class RedisService { public class RedisService {
@Bean
@Primary
public RedisCacheManager selfCacheManager(RedisTemplate<String, Object> redisTemplate) {
RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisTemplate.getConnectionFactory());
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer()));
return new TtlRedisCacheManager(redisCacheWriter, redisCacheConfiguration);
}
private RedisTemplate redisTemplate; private RedisTemplate redisTemplate;
private StringRedisTemplate stringRedisTemplate; private StringRedisTemplate stringRedisTemplate;

30
src/main/java/com/qs/serve/common/framework/redis/TtlRedisCacheManager.java

@ -0,0 +1,30 @@
package com.qs.serve.common.framework.redis;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.cache.RedisCache;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.util.StringUtils;
import java.time.Duration;
@Slf4j
public class TtlRedisCacheManager extends RedisCacheManager {
public TtlRedisCacheManager(RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration) {
super(cacheWriter, defaultCacheConfiguration);
}
@Override
protected RedisCache createRedisCache(String name, RedisCacheConfiguration cacheConfig) {
log.debug("TtlRedisCacheManager keyName:{}",name);
String[] cells = StringUtils.delimitedListToStringArray(name, "=");
name = cells[0];
if (cells.length > 1) {
long ttl = Long.parseLong(cells[1]);
// 根据传参设置缓存失效时间,默认单位是秒
cacheConfig = cacheConfig.entryTtl(Duration.ofSeconds(ttl));
}
return super.createRedisCache(name, cacheConfig);
}
}

24
src/main/java/com/qs/serve/common/util/StringUtils.java

@ -5,8 +5,13 @@ import lombok.experimental.UtilityClass;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author YenHex * @author YenHex
* @since 2022/2/28 * @since 2022/2/28
@ -64,4 +69,23 @@ public class StringUtils extends org.springframework.util.StringUtils {
return a.toString().contains(text); return a.toString().contains(text);
} }
public static List<String> splitIdString(String ids){
if(ids==null){
return null;
}
if(ids.contains(",")){
String[] idsA= ids.split(",");
return Arrays.asList(idsA);
}
return Arrays.asList(ids);
}
public static List<Long> splitIdLong(String ids){
List<String> strs = splitIdString(ids);
if(strs!=null){
return strs.stream().map(a->Long.parseLong(a)).collect(Collectors.toList());
}
return null;
}
} }

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

@ -16,6 +16,7 @@ import com.qs.serve.modules.bms.service.BmsRuleRegionService;
import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.bms.service.BmsSupplierService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -33,7 +34,7 @@ import java.util.List;
@RequestMapping("bms/bizRegion") @RequestMapping("bms/bizRegion")
public class BmsRegion2Controller { public class BmsRegion2Controller {
private BmsRegion2Service BmsRegion2Service; private BmsRegion2Service bmsRegion2Service;
private BmsSupplierService bmsSupplierService; private BmsSupplierService bmsSupplierService;
private BmsRuleRegionService bmsRuleRegionService; private BmsRuleRegionService bmsRuleRegionService;
@ -46,7 +47,7 @@ public class BmsRegion2Controller {
@PreAuthorize("hasRole('bms:region:query')") @PreAuthorize("hasRole('bms:region:query')")
public R<List<BmsRegion2>> getList(BmsRegion2 param){ public R<List<BmsRegion2>> getList(BmsRegion2 param){
LambdaQueryWrapper<BmsRegion2> regionWrapper = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<BmsRegion2> regionWrapper = new LambdaQueryWrapper<>(param);
List<BmsRegion2> list = BmsRegion2Service.list(regionWrapper); List<BmsRegion2> list = bmsRegion2Service.list(regionWrapper);
return R.ok(list); return R.ok(list);
} }
@ -60,19 +61,18 @@ public class BmsRegion2Controller {
public R<PageVo<BmsRegion2>> getPage(BmsRegion2 param){ public R<PageVo<BmsRegion2>> getPage(BmsRegion2 param){
PageUtil.startPage(); PageUtil.startPage();
LambdaQueryWrapper<BmsRegion2> regionWrapper = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<BmsRegion2> regionWrapper = new LambdaQueryWrapper<>(param);
List<BmsRegion2> list = BmsRegion2Service.list(regionWrapper); List<BmsRegion2> list = bmsRegion2Service.list(regionWrapper);
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }
/** /**
* 树查询 * 树查询
* @param param
* @return * @return
*/ */
@GetMapping("/tree") @GetMapping("/tree")
@PreAuthorize("hasRole('bms:region:query')") @PreAuthorize("hasRole('bms:region:query')")
public R<List<BmsRegionTreeVo>> getTree(BmsRegion2 param){ public R<List<BmsRegionTreeVo>> getTree(Integer listUserFlag){
return R.ok(BmsRegion2Service.getTree(param)); return R.ok(bmsRegion2Service.getTree(listUserFlag!=null&&listUserFlag.equals(1)));
} }
/** /**
@ -84,8 +84,12 @@ public class BmsRegion2Controller {
@SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.QUERY) @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.QUERY)
@PreAuthorize("hasRole('bms:region:query')") @PreAuthorize("hasRole('bms:region:query')")
public R<BmsRegion2> getById(@PathVariable("id") String id){ public R<BmsRegion2> getById(@PathVariable("id") String id){
BmsRegion2 BmsRegion2 = BmsRegion2Service.getById(id); BmsRegion2 msRegion2 = bmsRegion2Service.getById(id);
return R.ok(BmsRegion2); if(msRegion2.getPid()!=null&&!msRegion2.getPid().equals("0")){
BmsRegion2 bmsRegion2 = bmsRegion2Service.getById(msRegion2.getPid());
msRegion2.setParentInfo(bmsRegion2);
}
return R.ok(msRegion2);
} }
/** /**
@ -100,7 +104,7 @@ public class BmsRegion2Controller {
BmsRegion2 param = new BmsRegion2(); BmsRegion2 param = new BmsRegion2();
param.setId(regionBo.getId()); param.setId(regionBo.getId());
param.setName(regionBo.getName()); param.setName(regionBo.getName());
boolean result = BmsRegion2Service.updateById(param); boolean result = bmsRegion2Service.updateById(param);
return R.isTrue(result); return R.isTrue(result);
} }
@ -115,7 +119,7 @@ public class BmsRegion2Controller {
public R<?> updateFactory(@RequestBody BmsRegion2 regionBo){ public R<?> updateFactory(@RequestBody BmsRegion2 regionBo){
BmsRegion2 param = new BmsRegion2(); BmsRegion2 param = new BmsRegion2();
param.setId(regionBo.getId()); param.setId(regionBo.getId());
boolean result = BmsRegion2Service.updateById(param); boolean result = bmsRegion2Service.updateById(param);
return R.isTrue(result); return R.isTrue(result);
} }
@ -132,8 +136,8 @@ public class BmsRegion2Controller {
if(param.getId()==null){ if(param.getId()==null){
param.setId(IdUtil.getSnowFlakeId()+""); param.setId(IdUtil.getSnowFlakeId()+"");
} }
BmsRegion2Service.flushLevel(param); bmsRegion2Service.flushLevel(param);
boolean result = BmsRegion2Service.save(param); boolean result = bmsRegion2Service.save(param);
return R.isTrue(result); return R.isTrue(result);
} }
@ -148,18 +152,18 @@ public class BmsRegion2Controller {
public R<?> editBatch(@RequestBody @Valid BmsRegionBatchBo regionBo){ public R<?> editBatch(@RequestBody @Valid BmsRegionBatchBo regionBo){
ValidateTools.valid(regionBo.getRegionList()); ValidateTools.valid(regionBo.getRegionList());
for (BmsRegionBatchBo.BmsRegionBo BmsRegion2Bo : regionBo.getRegionList()) { for (BmsRegionBatchBo.BmsRegionBo BmsRegion2Bo : regionBo.getRegionList()) {
BmsRegion2 dbRegion = BmsRegion2Service.getByCode(BmsRegion2Bo.getCode()); BmsRegion2 dbRegion = bmsRegion2Service.getByCode(BmsRegion2Bo.getCode());
if(dbRegion==null){ if(dbRegion==null){
BmsRegion2 region = CopierUtil.copy(BmsRegion2Bo,new BmsRegion2()); BmsRegion2 region = CopierUtil.copy(BmsRegion2Bo,new BmsRegion2());
BmsRegion2Service.save(region); bmsRegion2Service.save(region);
}else { }else {
BmsRegion2 param = new BmsRegion2(); BmsRegion2 param = new BmsRegion2();
param.setId(BmsRegion2Bo.getId()); param.setId(BmsRegion2Bo.getId());
param.setName(BmsRegion2Bo.getName()); param.setName(BmsRegion2Bo.getName());
BmsRegion2Service.updateById(param); bmsRegion2Service.updateById(param);
} }
} }
BmsRegion2Service.flushAllLevel(); bmsRegion2Service.flushAllLevel();
return R.ok(); return R.ok();
} }
@ -172,7 +176,7 @@ public class BmsRegion2Controller {
@SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.DELETE) @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.DELETE)
@PreAuthorize("hasRole('bms:region:delete')") @PreAuthorize("hasRole('bms:region:delete')")
public R<?> deleteById(@PathVariable("id") String id){ public R<?> deleteById(@PathVariable("id") String id){
if(BmsRegion2Service.listChild(id).size()>0){ if(bmsRegion2Service.listChild(id).size()>0){
return R.error("含有子区域无法删除"); return R.error("含有子区域无法删除");
} }
//如果有供应商则不允许删除 //如果有供应商则不允许删除
@ -181,7 +185,7 @@ public class BmsRegion2Controller {
} }
//删除商品限制 //删除商品限制
bmsRuleRegionService.removeByRegionId(Long.parseLong(id)); bmsRuleRegionService.removeByRegionId(Long.parseLong(id));
boolean result = BmsRegion2Service.removeById(id); boolean result = bmsRegion2Service.removeById(id);
return R.isTrue(result); return R.isTrue(result);
} }

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

@ -8,6 +8,7 @@ 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.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsFactory; import com.qs.serve.modules.bms.entity.BmsFactory;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.bo.BmsRegionBatchBo; import com.qs.serve.modules.bms.entity.bo.BmsRegionBatchBo;
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo;
import com.qs.serve.modules.bms.service.BmsFactoryService; import com.qs.serve.modules.bms.service.BmsFactoryService;
@ -15,6 +16,7 @@ import com.qs.serve.modules.bms.service.BmsRuleRegionService;
import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.bms.service.BmsSupplierService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -70,13 +72,12 @@ public class BmsRegionController {
/** /**
* 树查询 * 树查询
* @param param
* @return * @return
*/ */
@GetMapping("/tree") @GetMapping("/tree")
@PreAuthorize("hasRole('bms:region:query')") @PreAuthorize("hasRole('bms:region:query')")
public R<List<BmsRegionTreeVo>> getTree(BmsRegion param){ public R<List<BmsRegionTreeVo>> getTree(Integer listUserFlag){
return R.ok(bmsRegionService.getTree(param)); return R.ok(bmsRegionService.getTree(listUserFlag!=null&&listUserFlag.equals(1)));
} }
/** /**
@ -92,6 +93,10 @@ public class BmsRegionController {
if(StringUtils.hasText(bmsRegion.getPid())&&bmsRegion.getPid().equals("0")){ if(StringUtils.hasText(bmsRegion.getPid())&&bmsRegion.getPid().equals("0")){
bmsRegion.setPid(null); bmsRegion.setPid(null);
} }
if(bmsRegion.getPid()!=null){
BmsRegion bmsRegion2 = bmsRegionService.getById(bmsRegion.getPid());
bmsRegion.setParentInfo(bmsRegion2);
}
List<BmsFactory> defaultFactories = bmsFactoryService.list(); List<BmsFactory> defaultFactories = bmsFactoryService.list();
if(CollectionUtil.isNotEmpty(bmsRegion.getFactoryIds())){ if(CollectionUtil.isNotEmpty(bmsRegion.getFactoryIds())){
//todo 排序失效 //todo 排序失效

177
src/main/java/com/qs/serve/modules/bms/controller/BmsRegionUserController.java

@ -0,0 +1,177 @@
package com.qs.serve.modules.bms.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.CollectionUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.bo.BmsRegionUserBo;
import com.qs.serve.modules.bms.entity.bo.BmsRegionUserSaveBo;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
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;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import com.qs.serve.modules.bms.service.BmsRegionUserService;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 基础档案 区域负责人
* @author YenHex
* @since 2022-11-02
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("bms/regionUser")
public class BmsRegionUserController {
private BmsRegionUserService bmsRegionUserService;
private BmsRegion2Service bmsRegion2Service;
private BmsRegionService bmsRegionService;
private SysUserService sysUserService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
@PreAuthorize("hasRole('bms:regionUser:query')")
public R<List<BmsRegionUser>> getPage(BmsRegionUserBo param){
BmsRegionUser regionUser = CopierUtil.copy(param,new BmsRegionUser());
LambdaQueryWrapper<BmsRegionUser> regionUserWrapper = new LambdaQueryWrapper<>(regionUser);
List<BmsRegionUser> list = bmsRegionUserService.list(regionUserWrapper);
if(list.size()<1){
return R.ok(new ArrayList<>());
}
List<String> userIds = list.stream().map(BmsRegionUser::getUserId).collect(Collectors.toList());
List<SysUser> sysUsers = sysUserService.listByIds(userIds);
for (BmsRegionUser bmsRegionUser : list) {
for (SysUser sysUser : sysUsers) {
if(bmsRegionUser.getUserId().equals(sysUser.getId())){
bmsRegionUser.setUserName(sysUser.getName());
bmsRegionUser.setUserCode(sysUser.getCode());
}
}
}
Map<Integer,List<BmsRegionUser>> listMap = list.stream().collect(Collectors.groupingBy(BmsRegionUser::getType));
List<BmsRegionUser> list1 = listMap.get(0);
if(CollectionUtil.isNotEmpty(list1)){
List<String> regionIds = list1.stream().map(BmsRegionUser::getRegionId).collect(Collectors.toList());
List<BmsRegion> regionList = bmsRegionService.listByIds(regionIds);
for (BmsRegion region : regionList) {
for (BmsRegionUser bmsRegionUser : list) {
if(bmsRegionUser.getRegionId().equals(region.getId())){
bmsRegionUser.setRegionCode(region.getCode());
bmsRegionUser.setRegionName(region.getName());
}
}
}
}
List<BmsRegionUser> list2 = listMap.get(1);
if(CollectionUtil.isNotEmpty(list2)){
List<String> regionIds = list2.stream().map(BmsRegionUser::getRegionId).collect(Collectors.toList());
List<BmsRegion2> regionList = bmsRegion2Service.listByIds(regionIds);
for (BmsRegion2 region : regionList) {
for (BmsRegionUser bmsRegionUser : list) {
if(bmsRegionUser.getRegionId().equals(region.getId())){
bmsRegionUser.setRegionCode(region.getCode());
bmsRegionUser.setRegionName(region.getName());
}
}
}
}
return R.ok(list);
}
/**
* 批量保存
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BASE, title = "区域负责人", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:regionUser:insert')")
public R<?> save(@RequestBody @Valid BmsRegionUserSaveBo param){
Integer type = param.getType();
List<BmsRegionUser> bmsRegionUsers = new ArrayList<>();
for (String regionId : param.getRegionIds()) {
for (String userId : param.getUserIds()) {
BmsRegionUser regionUser = bmsRegionUserService.getByParam(type,regionId,userId);
if(regionUser==null){
regionUser = new BmsRegionUser();
regionUser.setType(type);
regionUser.setRegionId(regionId);
regionUser.setUserId(userId);
bmsRegionUsers.add(regionUser);
}
}
}
bmsRegionUserService.saveBatch(bmsRegionUsers);
return R.ok();
}
/**
* 设置为主要负责人
* @param id
* @return
*/
@PostMapping("/setMaster/{id}")
@SysLog(module = SystemModule.BASE, title = "区域负责人", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:regionUser:update')")
public R<?> updateById(@PathVariable("id")Long id){
bmsRegionUserService.setMaster(id);
return R.ok();
}
/**
* 取消主要负责人
* @param id
* @return
*/
@PostMapping("/cancelMaster/{id}")
@SysLog(module = SystemModule.BASE, title = "区域负责人", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:regionUser:update')")
public R<?> cancelMaster(@PathVariable("id")Long id){
BmsRegionUser regionUser = new BmsRegionUser();
regionUser.setId(id);
regionUser.setMasterFlag(0);
bmsRegionUserService.updateById(regionUser);
return R.ok();
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
@SysLog(module = SystemModule.BASE, title = "区域负责人", biz = BizType.DELETE)
@PreAuthorize("hasRole('bms:regionUser:delete')")
public R<?> deleteById(@PathVariable String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
bmsRegionUserService.removeByIds(idsLong);
return R.ok();
}
}

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

@ -18,6 +18,7 @@ import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam; import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam;
import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam2; import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam2;
import com.qs.serve.modules.sys.entity.dto.SysUserSimpleVo;
import com.qs.serve.modules.sys.entity.dto.SysUserVo; import com.qs.serve.modules.sys.entity.dto.SysUserVo;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -64,7 +65,7 @@ public class BmsSupplierController {
initParentList(list); initParentList(list);
for (BmsSupplier supplier : list) { for (BmsSupplier supplier : list) {
supplier.setMasterFlag(0); supplier.setMasterFlag(0);
if(supplier.getUserId().equals(userId)){ if(supplier.getUserId()!=null&&supplier.getUserId().equals(userId)){
supplier.setMasterFlag(1); supplier.setMasterFlag(1);
break; break;
} }
@ -182,9 +183,13 @@ public class BmsSupplierController {
@PostMapping("/relateSuppliers2") @PostMapping("/relateSuppliers2")
@PreAuthorize("hasRole('bms:supplier:update')") @PreAuthorize("hasRole('bms:supplier:update')")
public R<?> relateSuppliers2(@RequestBody SysRelateSuppliersParam2 param){ public R<?> relateSuppliers2(@RequestBody SysRelateSuppliersParam2 param){
BmsSupplier supplier = bmsSupplierService.getById(param.getSupplierId());
List<String> uids = param.getUserIds().stream()
.filter(uid->supplier.getUserId()==null || !supplier.getUserId().equals(uid))
.collect(Collectors.toList());
BmsSupplier bmsSupplier = new BmsSupplier(); BmsSupplier bmsSupplier = new BmsSupplier();
bmsSupplier.setId(param.getSupplierId().toString()); bmsSupplier.setId(param.getSupplierId().toString());
bmsSupplier.setOtherUserIds(param.getUserIds()==null?new String[]{}:param.getUserIds()); bmsSupplier.setOtherUserIds(param.getUserIds()==null?new String[]{}:uids.toArray(new String[uids.size()]));
bmsSupplierService.updateById(bmsSupplier); bmsSupplierService.updateById(bmsSupplier);
return R.ok(); return R.ok();
} }
@ -229,7 +234,7 @@ public class BmsSupplierController {
@PostMapping("/relateRemove2") @PostMapping("/relateRemove2")
@PreAuthorize("hasRole('bms:supplier:update')") @PreAuthorize("hasRole('bms:supplier:update')")
public R<?> relateRemove2(@RequestBody SysRelateSuppliersParam2 param){ public R<?> relateRemove2(@RequestBody SysRelateSuppliersParam2 param){
String[] userIds = param.getUserIds(); List<String> userIds = param.getUserIds();
BmsSupplier supplier = bmsSupplierService.getById(param.getSupplierId()); BmsSupplier supplier = bmsSupplierService.getById(param.getSupplierId());
for (String userId : userIds) { for (String userId : userIds) {
if(supplier.getUserId()!=null && userId.equals(supplier.getUserId())){ if(supplier.getUserId()!=null && userId.equals(supplier.getUserId())){
@ -259,8 +264,11 @@ public class BmsSupplierController {
*/ */
@GetMapping("/setMainUser") @GetMapping("/setMainUser")
@PreAuthorize("hasRole('bms:supplier:update')") @PreAuthorize("hasRole('bms:supplier:update')")
public R<?> relateRemove2(String supplierId,String userId){ public R<?> setMainUser(String supplierId,String userId){
BmsSupplier supplier = bmsSupplierService.getById(supplierId); BmsSupplier supplier = bmsSupplierService.getById(supplierId);
if(supplier.getUserId()!=null&&supplier.getUserId().equals(userId)){
return R.ok();
}
SysUser sysUser = sysUserService.getById(userId); SysUser sysUser = sysUserService.getById(userId);
BmsSupplier supplierParam = new BmsSupplier(); BmsSupplier supplierParam = new BmsSupplier();
supplierParam.setId(supplierId); supplierParam.setId(supplierId);
@ -269,8 +277,11 @@ public class BmsSupplierController {
supplierParam.setUserCode(sysUser.getCode()); supplierParam.setUserCode(sysUser.getCode());
if(CollectionUtil.isNotEmpty(supplier.getOtherUserIds())){ if(CollectionUtil.isNotEmpty(supplier.getOtherUserIds())){
List<String> otherUserIds = Arrays.asList(supplier.getOtherUserIds()); List<String> otherUserIds = Arrays.asList(supplier.getOtherUserIds());
if(supplier.getUserId() != null){
otherUserIds.add(supplier.getUserId());
}
otherUserIds = otherUserIds.stream().filter(uid->!uid.equals(userId)).collect(Collectors.toList());
Set<String> otherUserIdSet = new HashSet<>(otherUserIds); Set<String> otherUserIdSet = new HashSet<>(otherUserIds);
otherUserIdSet.remove(userId);
String[] otherArr = otherUserIdSet.toArray(new String[otherUserIdSet.size()]); String[] otherArr = otherUserIdSet.toArray(new String[otherUserIdSet.size()]);
supplierParam.setOtherUserIds(otherArr); supplierParam.setOtherUserIds(otherArr);
} }
@ -278,6 +289,32 @@ public class BmsSupplierController {
return R.ok(); return R.ok();
} }
/**
* 移除主要负责人
* @param supplierId
* @return
*/
@GetMapping("/setOtherUser")
@PreAuthorize("hasRole('bms:supplier:update')")
public R<?> setOtherUser(Long supplierId){
BmsSupplier supplier = bmsSupplierService.getById(supplierId);
List<String> userIds = new ArrayList<>();
if(CollectionUtil.isNotEmpty(supplier.getOtherUserIds())){
userIds = Arrays.asList(supplier.getOtherUserIds());
}
if(supplier.getUserId()==null){
return R.ok();
}
Set<String> otherUserIdSet = new HashSet<>(userIds);
otherUserIdSet.add(supplier.getUserId());
String[] otherArr = otherUserIdSet.toArray(new String[otherUserIdSet.size()]);
bmsSupplierMapper.removeRelateUserInfo(supplierId);
BmsSupplier bmsSupplier = new BmsSupplier();
bmsSupplier.setId(supplier.getId());
bmsSupplier.setOtherUserIds(otherArr);
bmsSupplierService.updateById(bmsSupplier);
return R.ok();
}
/** /**
* 根据ID查询 * 根据ID查询
@ -303,11 +340,23 @@ public class BmsSupplierController {
if(region2!=null){ if(region2!=null){
bmsSupplier.setRegion2Label(region2.getName()); bmsSupplier.setRegion2Label(region2.getName());
} }
List<SysUserSimpleVo> userVos = new ArrayList<>();
if(bmsSupplier.getUserId()!=null){
SysUser sysUser = sysUserService.getById(bmsSupplier.getUserId());
SysUserSimpleVo simpleVo = sysUser.toSimpleVo(true);
simpleVo.setSupplierMainFlag(1);
userVos.add(simpleVo);
}
if(CollectionUtil.isNotEmpty(bmsSupplier.getOtherUserIds())){ if(CollectionUtil.isNotEmpty(bmsSupplier.getOtherUserIds())){
List<SysUser> userList = sysUserService.listByIds(Arrays.asList(bmsSupplier.getOtherUserIds())); List<SysUser> userList = sysUserService.listByIds(Arrays.asList(bmsSupplier.getOtherUserIds()));
List<SysUserVo> userVos = userList.stream().map(SysUser::toSysUserVo).collect(Collectors.toList()); List<SysUserSimpleVo> userVos2 = userList.stream().map(ur->{
bmsSupplier.setUserVos(userVos); SysUserSimpleVo simpleVo = ur.toSimpleVo(true);
simpleVo.setSupplierMainFlag(0);
return simpleVo;
}).collect(Collectors.toList());
userVos.addAll(userVos2);
} }
bmsSupplier.setUserVos(userVos);
return R.ok(bmsSupplier); return R.ok(bmsSupplier);
} }

5
src/main/java/com/qs/serve/modules/bms/controller/api/BmsRegionApi.java

@ -25,12 +25,11 @@ public class BmsRegionApi {
/** /**
* 树查询 * 树查询
* @param param
* @return * @return
*/ */
@GetMapping("/tree") @GetMapping("/tree")
public R<List<BmsRegionTreeVo>> getTree(BmsRegion param){ public R<List<BmsRegionTreeVo>> getTree(){
return R.ok(bmsRegionService.getTree(param)); return R.ok(bmsRegionService.getTree(false));
} }
/** /**

6
src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java

@ -85,5 +85,11 @@ public class BmsRegion implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private List<?> factoryInfos; private List<?> factoryInfos;
@TableField(exist = false)
private List<BmsRegionUser> regionUsers;
@TableField(exist = false)
private Object parentInfo;
} }

6
src/main/java/com/qs/serve/modules/bms/entity/BmsRegion2.java

@ -74,5 +74,11 @@ public class BmsRegion2 implements Serializable {
@JsonProperty @JsonProperty
private Boolean delFlag; private Boolean delFlag;
@TableField(exist = false)
private List<BmsRegionUser> regionUsers;
@TableField(exist = false)
private Object parentInfo;
} }

98
src/main/java/com/qs/serve/modules/bms/entity/BmsRegionUser.java

@ -0,0 +1,98 @@
package com.qs.serve.modules.bms.entity;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 区域负责人 实体类
* @author YenHex
* @since 2022-11-02
*/
@Data
@TableName("bms_region_user")
public class BmsRegionUser implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 类型:0=销售区域;1=行政区域 */
@NotNull(message = "类型:0=销售区域;1=行政区域不能为空")
private Integer type;
/** 区域id */
@NotBlank(message = "区域id不能为空")
@Length(max = 32,message = "区域id长度不能超过32字")
private String regionId;
/** 用户id */
@NotBlank(message = "用户id不能为空")
@Length(max = 32,message = "用户id长度不能超过32字")
private String userId;
/** 主要负责人 */
@NotNull(message = "主要负责人不能为空")
private Integer masterFlag;
/** 创建时间 */
@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;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@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;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
/** 区域名称 */
@TableField(exist = false)
private String regionName;
/** 区域编码 */
@TableField(exist = false)
private String regionCode;
/** 用户名称 */
@TableField(exist = false)
private String userName;
/** 用户编码 */
@TableField(exist = false)
private String userCode;
}

40
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionUserBo.java

@ -0,0 +1,40 @@
package com.qs.serve.modules.bms.entity.bo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @author YenHex
* @since 2022/11/2
*/
@Data
public class BmsRegionUserBo {
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 类型:0=销售区域;1=行政区域 */
@NotNull(message = "类型:0=销售区域;1=行政区域不能为空")
private Integer type;
/** 区域id */
@NotBlank(message = "区域id不能为空")
@Length(max = 32,message = "区域id长度不能超过32字")
private String regionId;
/** 用户id */
@NotBlank(message = "用户id不能为空")
@Length(max = 32,message = "用户id长度不能超过32字")
private String userId;
/** 主要负责人 */
@NotNull(message = "主要负责人不能为空")
private Integer masterFlag;
}

28
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionUserSaveBo.java

@ -0,0 +1,28 @@
package com.qs.serve.modules.bms.entity.bo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author YenHex
* @since 2022/11/2
*/
@Data
public class BmsRegionUserSaveBo {
/** 区域id列表 */
private List<String> regionIds;
/** 类型:0=销售区域;1=行政区域 */
@NotNull(message = "类型:0=销售区域;1=行政区域不能为空")
private Integer type;
/** 用户id列表 */
@NotNull(message = "用户id不能为空")
private List<String> userIds;
}

7
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java

@ -29,8 +29,11 @@ public class BmsSupplierBatchBo {
/** 客户父级编码(空为无父级) */ /** 客户父级编码(空为无父级) */
private String parentCode; private String parentCode;
/** 区域编码 */ /** 销售区域编码 */
private Long regionCode; private String regionCode;
/** 行政区域编码 */
private String region2Code;
/** 客户地址 */ /** 客户地址 */
private String address; private String address;

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

@ -1,9 +1,12 @@
package com.qs.serve.modules.bms.entity.vo; package com.qs.serve.modules.bms.entity.vo;
import com.qs.serve.common.model.dto.TreeNode; import com.qs.serve.common.model.dto.TreeNode;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import java.util.List;
/** /**
* @author YenHex * @author YenHex
* @since 2022/10/10 * @since 2022/10/10
@ -29,4 +32,5 @@ public class BmsRegionTreeVo extends TreeNode {
/** 层级 */ /** 层级 */
private Integer level; private Integer level;
private List<BmsRegionUser> regionUsers;
} }

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

@ -0,0 +1,14 @@
package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
/**
* 区域负责人 Mapper
* @author YenHex
* @date 2022-11-02
*/
public interface BmsRegionUserMapper extends BaseMapper<BmsRegionUser> {
}

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

@ -14,7 +14,7 @@ import java.util.List;
*/ */
public interface BmsRegion2Service extends IService<BmsRegion2> { public interface BmsRegion2Service extends IService<BmsRegion2> {
List<BmsRegionTreeVo> getTree(BmsRegion2 param); List<BmsRegionTreeVo> getTree(boolean listUserFlag);
List<BmsRegion2> listChild(String pid); List<BmsRegion2> listChild(String pid);

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

@ -14,7 +14,7 @@ import java.util.List;
*/ */
public interface BmsRegionService extends IService<BmsRegion> { public interface BmsRegionService extends IService<BmsRegion> {
List<BmsRegionTreeVo> getTree(BmsRegion param); List<BmsRegionTreeVo> getTree(boolean listUserFlag);
List<BmsRegion> listChild(String pid); List<BmsRegion> listChild(String pid);

22
src/main/java/com/qs/serve/modules/bms/service/BmsRegionUserService.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.bms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
/**
* 区域负责人 服务接口
* @author YenHex
* @date 2022-11-02
*/
public interface BmsRegionUserService extends IService<BmsRegionUser> {
BmsRegionUser getByParam(Integer type,String regionId,String userId);
/**
* 设置主要负责人
* @param id
*/
void setMaster(Long id);
}

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

@ -5,13 +5,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.TreeNode; import com.qs.serve.common.model.dto.TreeNode;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsRegion2; import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper; import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.service.BmsRegion2Service; import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionUserService;
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.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -25,15 +30,49 @@ import java.util.stream.Collectors;
@AllArgsConstructor @AllArgsConstructor
public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegion2> implements BmsRegion2Service { public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegion2> implements BmsRegion2Service {
private BmsRegionUserService bmsRegionUserService;
private SysUserService sysUserService;
@Override @Override
public List<BmsRegionTreeVo> getTree(BmsRegion2 param) { public List<BmsRegionTreeVo> getTree(boolean listUserFlag) {
LambdaQueryWrapper<BmsRegion2> regionWrapper = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<BmsRegion2> regionWrapper = new LambdaQueryWrapper<>();
List<BmsRegion2> list = this.list(regionWrapper); List<BmsRegion2> list = this.list(regionWrapper);
if(listUserFlag){
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsRegionUser::getType,1);
List<BmsRegionUser> regionUsers = bmsRegionUserService.list(lqw);
List<String> userIds = regionUsers.stream().map(BmsRegionUser::getUserId).collect(Collectors.toList());
List<SysUser> sysUsers;
if(userIds.size()<1000){
if(userIds.size()==0){
sysUsers = new ArrayList<>();
}else {
sysUsers = sysUserService.listByIds(userIds);
}
}else {
sysUsers = sysUserService.list();
}
for (BmsRegionUser bmsRegionUser : regionUsers) {
for (SysUser sysUser : sysUsers) {
if(bmsRegionUser.getUserId().equals(sysUser.getId())){
bmsRegionUser.setUserName(sysUser.getName());
bmsRegionUser.setUserCode(sysUser.getCode());
break;
}
}
}
for (BmsRegion2 bmsRegion2 : list) {
bmsRegion2.setRegionUsers(regionUsers.stream()
.filter(user->bmsRegion2.getId().equals(user.getUserId()))
.collect(Collectors.toList()));
}
}
List<BmsRegionTreeVo> treeVoList = list.stream().map(region->{ List<BmsRegionTreeVo> treeVoList = list.stream().map(region->{
BmsRegionTreeVo treeNode = CopierUtil.copy(region,new BmsRegionTreeVo()); BmsRegionTreeVo treeNode = CopierUtil.copy(region,new BmsRegionTreeVo());
treeNode.setId(region.getId()); treeNode.setId(region.getId());
treeNode.setParentId(region.getPid()); treeNode.setParentId(region.getPid());
treeNode.setSort(0); treeNode.setSort(0);
treeNode.setRegionUsers(region.getRegionUsers());
return treeNode; return treeNode;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); return TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING);
@ -71,7 +110,7 @@ public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegio
@Override @Override
public void flushAllLevel() { public void flushAllLevel() {
List<BmsRegionTreeVo> treeVoList = this.getTree(new BmsRegion2()); List<BmsRegionTreeVo> treeVoList = this.getTree(false);
for (BmsRegionTreeVo firstTree : treeVoList) { for (BmsRegionTreeVo firstTree : treeVoList) {
if(firstTree.getLevel()==null||firstTree.getLevel()!=1){ if(firstTree.getLevel()==null||firstTree.getLevel()!=1){
this.updateLevel(firstTree.getId(),1); this.updateLevel(firstTree.getId(),1);

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

@ -4,8 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.TreeNode; import com.qs.serve.common.model.dto.TreeNode;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo;
import com.qs.serve.modules.bms.service.BmsRegionUserService;
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.stereotype.Service; import org.springframework.stereotype.Service;
@ -13,6 +18,7 @@ import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.service.BmsRegionService; import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper; import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -26,15 +32,49 @@ import java.util.stream.Collectors;
@AllArgsConstructor @AllArgsConstructor
public class BmsRegionServiceImpl extends ServiceImpl<BmsRegionMapper,BmsRegion> implements BmsRegionService { public class BmsRegionServiceImpl extends ServiceImpl<BmsRegionMapper,BmsRegion> implements BmsRegionService {
private BmsRegionUserService bmsRegionUserService;
private SysUserService sysUserService;
@Override @Override
public List<BmsRegionTreeVo> getTree(BmsRegion param) { public List<BmsRegionTreeVo> getTree(boolean listUserFlag) {
LambdaQueryWrapper<BmsRegion> regionWrapper = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<BmsRegion> regionWrapper = new LambdaQueryWrapper<>();
List<BmsRegion> list = this.list(regionWrapper); List<BmsRegion> list = this.list(regionWrapper);
if(listUserFlag){
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsRegionUser::getType,0);
List<BmsRegionUser> regionUsers = bmsRegionUserService.list(lqw);
List<String> userIds = regionUsers.stream().map(BmsRegionUser::getUserId).collect(Collectors.toList());
List<SysUser> sysUsers;
if(userIds.size()<1000){
if(userIds.size()==0){
sysUsers = new ArrayList<>();
}else {
sysUsers = sysUserService.listByIds(userIds);
}
}else {
sysUsers = sysUserService.list();
}
for (BmsRegionUser bmsRegionUser : regionUsers) {
for (SysUser sysUser : sysUsers) {
if(bmsRegionUser.getUserId().equals(sysUser.getId())){
bmsRegionUser.setUserName(sysUser.getName());
bmsRegionUser.setUserCode(sysUser.getCode());
break;
}
}
}
for (BmsRegion bmsRegion : list) {
bmsRegion.setRegionUsers(regionUsers.stream()
.filter(user->bmsRegion.getId().equals(user.getUserId()))
.collect(Collectors.toList()));
}
}
List<BmsRegionTreeVo> treeVoList = list.stream().map(region->{ List<BmsRegionTreeVo> treeVoList = list.stream().map(region->{
BmsRegionTreeVo treeNode = CopierUtil.copy(region,new BmsRegionTreeVo()); BmsRegionTreeVo treeNode = CopierUtil.copy(region,new BmsRegionTreeVo());
treeNode.setId(region.getId()); treeNode.setId(region.getId());
treeNode.setParentId(region.getPid()); treeNode.setParentId(region.getPid());
treeNode.setSort(0); treeNode.setSort(0);
treeNode.setRegionUsers(region.getRegionUsers());
return treeNode; return treeNode;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); return TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING);
@ -72,7 +112,7 @@ public class BmsRegionServiceImpl extends ServiceImpl<BmsRegionMapper,BmsRegion>
@Override @Override
public void flushAllLevel() { public void flushAllLevel() {
List<BmsRegionTreeVo> treeVoList = this.getTree(new BmsRegion()); List<BmsRegionTreeVo> treeVoList = this.getTree(false);
for (BmsRegionTreeVo firstTree : treeVoList) { for (BmsRegionTreeVo firstTree : treeVoList) {
if(firstTree.getLevel()==null||firstTree.getLevel()!=1){ if(firstTree.getLevel()==null||firstTree.getLevel()!=1){
this.updateLevel(firstTree.getId(),1); this.updateLevel(firstTree.getId(),1);

46
src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionUserServiceImpl.java

@ -0,0 +1,46 @@
package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.bms.entity.BmsRegionUser;
import com.qs.serve.modules.bms.service.BmsRegionUserService;
import com.qs.serve.modules.bms.mapper.BmsRegionUserMapper;
/**
* 区域负责人 服务实现类
* @author YenHex
* @since 2022-11-02
*/
@Slf4j
@Service
@AllArgsConstructor
public class BmsRegionUserServiceImpl extends ServiceImpl<BmsRegionUserMapper,BmsRegionUser> implements BmsRegionUserService {
@Override
public BmsRegionUser getByParam(Integer type, String regionId, String userId) {
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsRegionUser::getRegionId,regionId);
lqw.eq(BmsRegionUser::getType,type);
lqw.eq(BmsRegionUser::getUserId,userId);
return this.getOne(lqw,false);
}
@Override
public void setMaster(Long id) {
BmsRegionUser regionUser = this.getById(id);
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsRegionUser::getRegionId,regionUser.getRegionId());
lqw.eq(BmsRegionUser::getType,regionUser.getType());
lqw.ne(BmsRegionUser::getUserId,regionUser.getUserId());
BmsRegionUser param = new BmsRegionUser();
param.setMasterFlag(0);
this.update(regionUser,lqw);
regionUser.setMasterFlag(0);
this.updateById(regionUser);
}
}

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

@ -113,8 +113,10 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
}else { }else {
supplier.setPid("-1"); supplier.setPid("-1");
} }
BmsRegion region = regionService.getByCode(param.getCode()); BmsRegion region = regionService.getByCode(param.getRegionCode());
this.initRegion(supplier,region.getId()); this.initRegion(supplier,region.getId());
BmsRegion2 region2 = region2Service.getByCode(param.getRegion2Code());
this.initRegion(supplier,region2.getId());
if(supplier.getId()!=null){ if(supplier.getId()!=null){
this.updateById(supplier); this.updateById(supplier);
}else { }else {

9
src/main/java/com/qs/serve/modules/goods/controller/GoodsSpecValueController.java

@ -59,9 +59,18 @@ public class GoodsSpecValueController {
@GetMapping("/page") @GetMapping("/page")
@PreAuthorize("hasRole('goods:specValue:query')") @PreAuthorize("hasRole('goods:specValue:query')")
public R<PageVo<GoodsSpecValue>> getPage(GoodsSpecValue param){ public R<PageVo<GoodsSpecValue>> getPage(GoodsSpecValue param){
List<GoodsSpec> specs = goodsSpecService.list();
PageUtil.startPage(); PageUtil.startPage();
LambdaQueryWrapper<GoodsSpecValue> specValueWrapper = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<GoodsSpecValue> specValueWrapper = new LambdaQueryWrapper<>(param);
List<GoodsSpecValue> list = goodsSpecValueService.list(specValueWrapper); List<GoodsSpecValue> list = goodsSpecValueService.list(specValueWrapper);
for (GoodsSpecValue specValue : list) {
for (GoodsSpec spec : specs) {
if(specValue.getSpecId().equals(spec.getId())){
specValue.setSpecName(spec.getName());
break;
}
}
}
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }

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

@ -13,6 +13,7 @@ import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue;
import com.qs.serve.modules.goods.entity.GoodsSpuSpec; import com.qs.serve.modules.goods.entity.GoodsSpuSpec;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo;
import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo;
import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSkuService;
import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService;
@ -112,6 +113,18 @@ public class GoodsSpuController {
return R.isTrue(result); return R.isTrue(result);
} }
/**
* 编辑口味品类SPU
* @param param
* @return
*/
@PostMapping("/saveTasteSpu")
@SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.INSERT)
@PreAuthorize("hasRole('goods:spu:insert')")
public R<?> saveBatchTasteSpu(@RequestBody GoodsSpuTasteBo param){
return R.ok(goodsSpuService.editTasteBo(param));
}
/** /**
* (批量)编辑口味品类SPU,建议每次小于50条 * (批量)编辑口味品类SPU,建议每次小于50条
* @param param * @param param

2
src/main/java/com/qs/serve/modules/goods/entity/GoodsSpecValue.java

@ -66,5 +66,7 @@ public class GoodsSpecValue implements Serializable {
@JsonProperty @JsonProperty
private String delFlag; private String delFlag;
@TableField(exist = false)
private String specName;
} }

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

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo;
import com.qs.serve.modules.goods.entity.vo.GoodSkuBatchResult; import com.qs.serve.modules.goods.entity.vo.GoodSkuBatchResult;
import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo;
@ -24,5 +25,7 @@ public interface GoodsSpuService extends IService<GoodsSpu> {
void edit(GoodsSpuEditBo spuEditBo); void edit(GoodsSpuEditBo spuEditBo);
GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct);
} }

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

@ -115,7 +115,8 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
* @param tasteProduct * @param tasteProduct
* @return * @return
*/ */
private GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct){ @Override
public GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct){
GoodSkuBatchResult skuBatchResult = new GoodSkuBatchResult(); GoodSkuBatchResult skuBatchResult = new GoodSkuBatchResult();
skuBatchResult.setInvCode(tasteProduct.getInvCode()); skuBatchResult.setInvCode(tasteProduct.getInvCode());
skuBatchResult.setProductCode(tasteProduct.getProductCode()); skuBatchResult.setProductCode(tasteProduct.getProductCode());

5
src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java

@ -301,6 +301,11 @@ public class SysUserController {
@PreAuthorize("hasRole('sys:user:update')") @PreAuthorize("hasRole('sys:user:update')")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R<?> updateSalesFlag(@RequestBody @Valid SysUserSalesParam userBo){ public R<?> updateSalesFlag(@RequestBody @Valid SysUserSalesParam userBo){
LambdaQueryWrapper<SysUserSales> lqwSale = new LambdaQueryWrapper<>();
lqwSale.in(SysUserSales::getPid,userBo.getUserIds());
if(sysUserSalesService.count(lqwSale)>0){
return R.error("含有下级销售人员,操作失败");
}
SysUser param = new SysUser(); SysUser param = new SysUser();
param.setSalesFlag(userBo.getSalesFlag().equals(0)?0:1); param.setSalesFlag(userBo.getSalesFlag().equals(0)?0:1);
LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();

2
src/main/java/com/qs/serve/modules/sys/entity/bo/SysRelateSuppliersParam2.java

@ -15,7 +15,7 @@ public class SysRelateSuppliersParam2 {
/** /**
* 用户ID当userIds==null为清除绑定 * 用户ID当userIds==null为清除绑定
*/ */
String[] userIds; List<String> userIds;
/** /**
* 供应商id列表 * 供应商id列表

4
src/main/java/com/qs/serve/modules/sys/entity/dto/SysUserSimpleVo.java

@ -33,4 +33,8 @@ public class SysUserSimpleVo {
/** 完成状态 */ /** 完成状态 */
private Integer finished; private Integer finished;
/** 客户主要负责人标识 */
private Integer supplierMainFlag;
} }

Loading…
Cancel
Save