diff --git a/src/main/java/com/qs/serve/common/framework/redis/RedisService.java b/src/main/java/com/qs/serve/common/framework/redis/RedisService.java index 739f9af8..3da522e7 100644 --- a/src/main/java/com/qs/serve/common/framework/redis/RedisService.java +++ b/src/main/java/com/qs/serve/common/framework/redis/RedisService.java @@ -1,7 +1,13 @@ package com.qs.serve.common.framework.redis; 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.serializer.RedisSerializationContext; import org.springframework.stereotype.Service; import java.io.Serializable; import java.util.*; @@ -15,6 +21,15 @@ import java.util.concurrent.TimeUnit; @AllArgsConstructor public class RedisService { + @Bean + @Primary + public RedisCacheManager selfCacheManager(RedisTemplate 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 StringRedisTemplate stringRedisTemplate; diff --git a/src/main/java/com/qs/serve/common/framework/redis/TtlRedisCacheManager.java b/src/main/java/com/qs/serve/common/framework/redis/TtlRedisCacheManager.java new file mode 100644 index 00000000..53ffc9bc --- /dev/null +++ b/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); + } +} diff --git a/src/main/java/com/qs/serve/common/util/StringUtils.java b/src/main/java/com/qs/serve/common/util/StringUtils.java index 52d48eae..4f5572fa 100644 --- a/src/main/java/com/qs/serve/common/util/StringUtils.java +++ b/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.ZoneId; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Arrays; import java.util.concurrent.atomic.AtomicInteger; +import java.util.List; +import java.util.stream.Collectors; + /** * @author YenHex * @since 2022/2/28 @@ -64,4 +69,23 @@ public class StringUtils extends org.springframework.util.StringUtils { return a.toString().contains(text); } + public static List 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 splitIdLong(String ids){ + List strs = splitIdString(ids); + if(strs!=null){ + return strs.stream().map(a->Long.parseLong(a)).collect(Collectors.toList()); + } + return null; + } + } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java index a3419557..308cf4da 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java +++ b/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 lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.Cacheable; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -33,7 +34,7 @@ import java.util.List; @RequestMapping("bms/bizRegion") public class BmsRegion2Controller { - private BmsRegion2Service BmsRegion2Service; + private BmsRegion2Service bmsRegion2Service; private BmsSupplierService bmsSupplierService; private BmsRuleRegionService bmsRuleRegionService; @@ -46,7 +47,7 @@ public class BmsRegion2Controller { @PreAuthorize("hasRole('bms:region:query')") public R> getList(BmsRegion2 param){ LambdaQueryWrapper regionWrapper = new LambdaQueryWrapper<>(param); - List list = BmsRegion2Service.list(regionWrapper); + List list = bmsRegion2Service.list(regionWrapper); return R.ok(list); } @@ -60,19 +61,18 @@ public class BmsRegion2Controller { public R> getPage(BmsRegion2 param){ PageUtil.startPage(); LambdaQueryWrapper regionWrapper = new LambdaQueryWrapper<>(param); - List list = BmsRegion2Service.list(regionWrapper); + List list = bmsRegion2Service.list(regionWrapper); return R.byPageHelperList(list); } /** * 树查询 - * @param param * @return */ @GetMapping("/tree") @PreAuthorize("hasRole('bms:region:query')") - public R> getTree(BmsRegion2 param){ - return R.ok(BmsRegion2Service.getTree(param)); + public R> getTree(Integer listUserFlag){ + 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) @PreAuthorize("hasRole('bms:region:query')") public R getById(@PathVariable("id") String id){ - BmsRegion2 BmsRegion2 = BmsRegion2Service.getById(id); - return R.ok(BmsRegion2); + BmsRegion2 msRegion2 = bmsRegion2Service.getById(id); + 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(); param.setId(regionBo.getId()); param.setName(regionBo.getName()); - boolean result = BmsRegion2Service.updateById(param); + boolean result = bmsRegion2Service.updateById(param); return R.isTrue(result); } @@ -115,7 +119,7 @@ public class BmsRegion2Controller { public R updateFactory(@RequestBody BmsRegion2 regionBo){ BmsRegion2 param = new BmsRegion2(); param.setId(regionBo.getId()); - boolean result = BmsRegion2Service.updateById(param); + boolean result = bmsRegion2Service.updateById(param); return R.isTrue(result); } @@ -132,8 +136,8 @@ public class BmsRegion2Controller { if(param.getId()==null){ param.setId(IdUtil.getSnowFlakeId()+""); } - BmsRegion2Service.flushLevel(param); - boolean result = BmsRegion2Service.save(param); + bmsRegion2Service.flushLevel(param); + boolean result = bmsRegion2Service.save(param); return R.isTrue(result); } @@ -148,18 +152,18 @@ public class BmsRegion2Controller { public R editBatch(@RequestBody @Valid BmsRegionBatchBo regionBo){ ValidateTools.valid(regionBo.getRegionList()); for (BmsRegionBatchBo.BmsRegionBo BmsRegion2Bo : regionBo.getRegionList()) { - BmsRegion2 dbRegion = BmsRegion2Service.getByCode(BmsRegion2Bo.getCode()); + BmsRegion2 dbRegion = bmsRegion2Service.getByCode(BmsRegion2Bo.getCode()); if(dbRegion==null){ BmsRegion2 region = CopierUtil.copy(BmsRegion2Bo,new BmsRegion2()); - BmsRegion2Service.save(region); + bmsRegion2Service.save(region); }else { BmsRegion2 param = new BmsRegion2(); param.setId(BmsRegion2Bo.getId()); param.setName(BmsRegion2Bo.getName()); - BmsRegion2Service.updateById(param); + bmsRegion2Service.updateById(param); } } - BmsRegion2Service.flushAllLevel(); + bmsRegion2Service.flushAllLevel(); return R.ok(); } @@ -172,7 +176,7 @@ public class BmsRegion2Controller { @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.DELETE) @PreAuthorize("hasRole('bms:region:delete')") public R deleteById(@PathVariable("id") String id){ - if(BmsRegion2Service.listChild(id).size()>0){ + if(bmsRegion2Service.listChild(id).size()>0){ return R.error("含有子区域无法删除"); } //如果有供应商则不允许删除 @@ -181,7 +185,7 @@ public class BmsRegion2Controller { } //删除商品限制 bmsRuleRegionService.removeByRegionId(Long.parseLong(id)); - boolean result = BmsRegion2Service.removeById(id); + boolean result = bmsRegion2Service.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java index f94b8cc0..4daf65c1 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java +++ b/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.util.*; 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.vo.BmsRegionTreeVo; 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 lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.Cacheable; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -70,13 +72,12 @@ public class BmsRegionController { /** * 树查询 - * @param param * @return */ @GetMapping("/tree") @PreAuthorize("hasRole('bms:region:query')") - public R> getTree(BmsRegion param){ - return R.ok(bmsRegionService.getTree(param)); + public R> getTree(Integer listUserFlag){ + 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")){ bmsRegion.setPid(null); } + if(bmsRegion.getPid()!=null){ + BmsRegion bmsRegion2 = bmsRegionService.getById(bmsRegion.getPid()); + bmsRegion.setParentInfo(bmsRegion2); + } List defaultFactories = bmsFactoryService.list(); if(CollectionUtil.isNotEmpty(bmsRegion.getFactoryIds())){ //todo 排序失效 diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionUserController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionUserController.java new file mode 100644 index 00000000..b8aead8b --- /dev/null +++ b/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> getPage(BmsRegionUserBo param){ + BmsRegionUser regionUser = CopierUtil.copy(param,new BmsRegionUser()); + LambdaQueryWrapper regionUserWrapper = new LambdaQueryWrapper<>(regionUser); + List list = bmsRegionUserService.list(regionUserWrapper); + if(list.size()<1){ + return R.ok(new ArrayList<>()); + } + List userIds = list.stream().map(BmsRegionUser::getUserId).collect(Collectors.toList()); + List 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> listMap = list.stream().collect(Collectors.groupingBy(BmsRegionUser::getType)); + List list1 = listMap.get(0); + if(CollectionUtil.isNotEmpty(list1)){ + List regionIds = list1.stream().map(BmsRegionUser::getRegionId).collect(Collectors.toList()); + List 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 list2 = listMap.get(1); + if(CollectionUtil.isNotEmpty(list2)){ + List regionIds = list2.stream().map(BmsRegionUser::getRegionId).collect(Collectors.toList()); + List 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 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 idsLong = StringUtils.splitIdLong(ids); + bmsRegionUserService.removeByIds(idsLong); + return R.ok(); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java index 75bc2d6a..9d9e14f7 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java +++ b/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.bo.SysRelateSuppliersParam; 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.service.SysUserService; import lombok.AllArgsConstructor; @@ -64,7 +65,7 @@ public class BmsSupplierController { initParentList(list); for (BmsSupplier supplier : list) { supplier.setMasterFlag(0); - if(supplier.getUserId().equals(userId)){ + if(supplier.getUserId()!=null&&supplier.getUserId().equals(userId)){ supplier.setMasterFlag(1); break; } @@ -182,9 +183,13 @@ public class BmsSupplierController { @PostMapping("/relateSuppliers2") @PreAuthorize("hasRole('bms:supplier:update')") public R relateSuppliers2(@RequestBody SysRelateSuppliersParam2 param){ + BmsSupplier supplier = bmsSupplierService.getById(param.getSupplierId()); + List uids = param.getUserIds().stream() + .filter(uid->supplier.getUserId()==null || !supplier.getUserId().equals(uid)) + .collect(Collectors.toList()); BmsSupplier bmsSupplier = new BmsSupplier(); 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); return R.ok(); } @@ -229,7 +234,7 @@ public class BmsSupplierController { @PostMapping("/relateRemove2") @PreAuthorize("hasRole('bms:supplier:update')") public R relateRemove2(@RequestBody SysRelateSuppliersParam2 param){ - String[] userIds = param.getUserIds(); + List userIds = param.getUserIds(); BmsSupplier supplier = bmsSupplierService.getById(param.getSupplierId()); for (String userId : userIds) { if(supplier.getUserId()!=null && userId.equals(supplier.getUserId())){ @@ -259,8 +264,11 @@ public class BmsSupplierController { */ @GetMapping("/setMainUser") @PreAuthorize("hasRole('bms:supplier:update')") - public R relateRemove2(String supplierId,String userId){ + public R setMainUser(String supplierId,String userId){ BmsSupplier supplier = bmsSupplierService.getById(supplierId); + if(supplier.getUserId()!=null&&supplier.getUserId().equals(userId)){ + return R.ok(); + } SysUser sysUser = sysUserService.getById(userId); BmsSupplier supplierParam = new BmsSupplier(); supplierParam.setId(supplierId); @@ -269,8 +277,11 @@ public class BmsSupplierController { supplierParam.setUserCode(sysUser.getCode()); if(CollectionUtil.isNotEmpty(supplier.getOtherUserIds())){ List 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 otherUserIdSet = new HashSet<>(otherUserIds); - otherUserIdSet.remove(userId); String[] otherArr = otherUserIdSet.toArray(new String[otherUserIdSet.size()]); supplierParam.setOtherUserIds(otherArr); } @@ -278,6 +289,32 @@ public class BmsSupplierController { return R.ok(); } + /** + * 移除主要负责人 + * @param supplierId + * @return + */ + @GetMapping("/setOtherUser") + @PreAuthorize("hasRole('bms:supplier:update')") + public R setOtherUser(Long supplierId){ + BmsSupplier supplier = bmsSupplierService.getById(supplierId); + List userIds = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(supplier.getOtherUserIds())){ + userIds = Arrays.asList(supplier.getOtherUserIds()); + } + if(supplier.getUserId()==null){ + return R.ok(); + } + Set 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查询 @@ -303,11 +340,23 @@ public class BmsSupplierController { if(region2!=null){ bmsSupplier.setRegion2Label(region2.getName()); } + List 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())){ List userList = sysUserService.listByIds(Arrays.asList(bmsSupplier.getOtherUserIds())); - List userVos = userList.stream().map(SysUser::toSysUserVo).collect(Collectors.toList()); - bmsSupplier.setUserVos(userVos); + List userVos2 = userList.stream().map(ur->{ + SysUserSimpleVo simpleVo = ur.toSimpleVo(true); + simpleVo.setSupplierMainFlag(0); + return simpleVo; + }).collect(Collectors.toList()); + userVos.addAll(userVos2); } + bmsSupplier.setUserVos(userVos); return R.ok(bmsSupplier); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/api/BmsRegionApi.java b/src/main/java/com/qs/serve/modules/bms/controller/api/BmsRegionApi.java index 6ce54af6..7691631d 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/api/BmsRegionApi.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/api/BmsRegionApi.java @@ -25,12 +25,11 @@ public class BmsRegionApi { /** * 树查询 - * @param param * @return */ @GetMapping("/tree") - public R> getTree(BmsRegion param){ - return R.ok(bmsRegionService.getTree(param)); + public R> getTree(){ + return R.ok(bmsRegionService.getTree(false)); } /** diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java index 5fa6a4f1..01ac3feb 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java @@ -85,5 +85,11 @@ public class BmsRegion implements Serializable { @TableField(exist = false) private List factoryInfos; + @TableField(exist = false) + private List regionUsers; + + @TableField(exist = false) + private Object parentInfo; + } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion2.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion2.java index 9b13f14f..0c553679 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion2.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion2.java @@ -74,5 +74,11 @@ public class BmsRegion2 implements Serializable { @JsonProperty private Boolean delFlag; + @TableField(exist = false) + private List regionUsers; + + @TableField(exist = false) + private Object parentInfo; + } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsRegionUser.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsRegionUser.java new file mode 100644 index 00000000..ab6e1ea2 --- /dev/null +++ b/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; + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionUserBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionUserBo.java new file mode 100644 index 00000000..c859c5df --- /dev/null +++ b/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; + +} diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionUserSaveBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionUserSaveBo.java new file mode 100644 index 00000000..5a261cef --- /dev/null +++ b/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 regionIds; + + /** 类型:0=销售区域;1=行政区域 */ + @NotNull(message = "类型:0=销售区域;1=行政区域不能为空") + private Integer type; + + /** 用户id列表 */ + @NotNull(message = "用户id不能为空") + private List userIds; + +} diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java index 6b877f50..6cbdc815 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java @@ -29,8 +29,11 @@ public class BmsSupplierBatchBo { /** 客户父级编码(空为无父级) */ private String parentCode; - /** 区域编码 */ - private Long regionCode; + /** 销售区域编码 */ + private String regionCode; + + /** 行政区域编码 */ + private String region2Code; /** 客户地址 */ private String address; diff --git a/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionTreeVo.java b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionTreeVo.java index af3f4ef2..e2953bc7 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionTreeVo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionTreeVo.java @@ -1,9 +1,12 @@ package com.qs.serve.modules.bms.entity.vo; import com.qs.serve.common.model.dto.TreeNode; +import com.qs.serve.modules.bms.entity.BmsRegionUser; import lombok.Data; import org.hibernate.validator.constraints.Length; +import java.util.List; + /** * @author YenHex * @since 2022/10/10 @@ -29,4 +32,5 @@ public class BmsRegionTreeVo extends TreeNode { /** 层级 */ private Integer level; + private List regionUsers; } diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsRegionUserMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsRegionUserMapper.java new file mode 100644 index 00000000..9edadcc4 --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java b/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java index b4092eb6..0758e6f2 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java @@ -14,7 +14,7 @@ import java.util.List; */ public interface BmsRegion2Service extends IService { - List getTree(BmsRegion2 param); + List getTree(boolean listUserFlag); List listChild(String pid); diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsRegionService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsRegionService.java index 011b493f..b0491736 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsRegionService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsRegionService.java @@ -14,7 +14,7 @@ import java.util.List; */ public interface BmsRegionService extends IService { - List getTree(BmsRegion param); + List getTree(boolean listUserFlag); List listChild(String pid); diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsRegionUserService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsRegionUserService.java new file mode 100644 index 00000000..3723eec3 --- /dev/null +++ b/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 getByParam(Integer type,String regionId,String userId); + + /** + * 设置主要负责人 + * @param id + */ + void setMaster(Long id); + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java index e6635cc9..6f5ecacd 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java +++ b/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.util.*; 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.mapper.BmsRegion2Mapper; 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.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -25,15 +30,49 @@ import java.util.stream.Collectors; @AllArgsConstructor public class BmsRegion2ServiceImpl extends ServiceImpl implements BmsRegion2Service { + private BmsRegionUserService bmsRegionUserService; + private SysUserService sysUserService; + @Override - public List getTree(BmsRegion2 param) { - LambdaQueryWrapper regionWrapper = new LambdaQueryWrapper<>(param); + public List getTree(boolean listUserFlag) { + LambdaQueryWrapper regionWrapper = new LambdaQueryWrapper<>(); List list = this.list(regionWrapper); + if(listUserFlag){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsRegionUser::getType,1); + List regionUsers = bmsRegionUserService.list(lqw); + List userIds = regionUsers.stream().map(BmsRegionUser::getUserId).collect(Collectors.toList()); + List 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 treeVoList = list.stream().map(region->{ BmsRegionTreeVo treeNode = CopierUtil.copy(region,new BmsRegionTreeVo()); treeNode.setId(region.getId()); treeNode.setParentId(region.getPid()); treeNode.setSort(0); + treeNode.setRegionUsers(region.getRegionUsers()); return treeNode; }).collect(Collectors.toList()); return TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); @@ -71,7 +110,7 @@ public class BmsRegion2ServiceImpl extends ServiceImpl treeVoList = this.getTree(new BmsRegion2()); + List treeVoList = this.getTree(false); for (BmsRegionTreeVo firstTree : treeVoList) { if(firstTree.getLevel()==null||firstTree.getLevel()!=1){ this.updateLevel(firstTree.getId(),1); diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java index c3ff7f7e..4ce6b211 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java +++ b/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.qs.serve.common.model.dto.TreeNode; 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.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.extern.slf4j.Slf4j; 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.mapper.BmsRegionMapper; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -26,15 +32,49 @@ import java.util.stream.Collectors; @AllArgsConstructor public class BmsRegionServiceImpl extends ServiceImpl implements BmsRegionService { + private BmsRegionUserService bmsRegionUserService; + private SysUserService sysUserService; + @Override - public List getTree(BmsRegion param) { - LambdaQueryWrapper regionWrapper = new LambdaQueryWrapper<>(param); + public List getTree(boolean listUserFlag) { + LambdaQueryWrapper regionWrapper = new LambdaQueryWrapper<>(); List list = this.list(regionWrapper); + if(listUserFlag){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsRegionUser::getType,0); + List regionUsers = bmsRegionUserService.list(lqw); + List userIds = regionUsers.stream().map(BmsRegionUser::getUserId).collect(Collectors.toList()); + List 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 treeVoList = list.stream().map(region->{ BmsRegionTreeVo treeNode = CopierUtil.copy(region,new BmsRegionTreeVo()); treeNode.setId(region.getId()); treeNode.setParentId(region.getPid()); treeNode.setSort(0); + treeNode.setRegionUsers(region.getRegionUsers()); return treeNode; }).collect(Collectors.toList()); return TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); @@ -72,7 +112,7 @@ public class BmsRegionServiceImpl extends ServiceImpl @Override public void flushAllLevel() { - List treeVoList = this.getTree(new BmsRegion()); + List treeVoList = this.getTree(false); for (BmsRegionTreeVo firstTree : treeVoList) { if(firstTree.getLevel()==null||firstTree.getLevel()!=1){ this.updateLevel(firstTree.getId(),1); diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionUserServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionUserServiceImpl.java new file mode 100644 index 00000000..f64cfb15 --- /dev/null +++ b/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 implements BmsRegionUserService { + + @Override + public BmsRegionUser getByParam(Integer type, String regionId, String userId) { + LambdaQueryWrapper 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 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); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java index 0589cb0d..66e6ad9a 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java @@ -113,8 +113,10 @@ public class BmsSupplierServiceImpl extends ServiceImpl> getPage(GoodsSpecValue param){ + List specs = goodsSpecService.list(); PageUtil.startPage(); LambdaQueryWrapper specValueWrapper = new LambdaQueryWrapper<>(param); List 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); } 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 2ea6aaa0..0b435272 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 @@ -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.bo.GoodsSpuBatchTasteBo; 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.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; @@ -112,6 +113,18 @@ public class GoodsSpuController { 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条 * @param param diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpecValue.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpecValue.java index 45ee5641..71f9d845 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpecValue.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpecValue.java @@ -66,5 +66,7 @@ public class GoodsSpecValue implements Serializable { @JsonProperty private String delFlag; + @TableField(exist = false) + private String specName; } 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 bedaa5a5..57391015 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 @@ -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.bo.GoodsSpuBatchTasteBo; 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.GoodsSpuVo; @@ -24,5 +25,7 @@ public interface GoodsSpuService extends IService { void edit(GoodsSpuEditBo spuEditBo); + 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 954cf28c..5736f2ce 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 @@ -115,7 +115,8 @@ public class GoodsSpuServiceImpl extends ServiceImpl im * @param tasteProduct * @return */ - private GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct){ + @Override + public GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct){ GoodSkuBatchResult skuBatchResult = new GoodSkuBatchResult(); skuBatchResult.setInvCode(tasteProduct.getInvCode()); skuBatchResult.setProductCode(tasteProduct.getProductCode()); diff --git a/src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java b/src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java index aba5d212..191c8afd 100644 --- a/src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java +++ b/src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java @@ -301,6 +301,11 @@ public class SysUserController { @PreAuthorize("hasRole('sys:user:update')") @Transactional(rollbackFor = Exception.class) public R updateSalesFlag(@RequestBody @Valid SysUserSalesParam userBo){ + LambdaQueryWrapper lqwSale = new LambdaQueryWrapper<>(); + lqwSale.in(SysUserSales::getPid,userBo.getUserIds()); + if(sysUserSalesService.count(lqwSale)>0){ + return R.error("含有下级销售人员,操作失败"); + } SysUser param = new SysUser(); param.setSalesFlag(userBo.getSalesFlag().equals(0)?0:1); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/qs/serve/modules/sys/entity/bo/SysRelateSuppliersParam2.java b/src/main/java/com/qs/serve/modules/sys/entity/bo/SysRelateSuppliersParam2.java index 1b55b0c8..4656b18c 100644 --- a/src/main/java/com/qs/serve/modules/sys/entity/bo/SysRelateSuppliersParam2.java +++ b/src/main/java/com/qs/serve/modules/sys/entity/bo/SysRelateSuppliersParam2.java @@ -15,7 +15,7 @@ public class SysRelateSuppliersParam2 { /** * 用户ID。当userIds==null,为清除绑定 */ - String[] userIds; + List userIds; /** * 供应商id列表 diff --git a/src/main/java/com/qs/serve/modules/sys/entity/dto/SysUserSimpleVo.java b/src/main/java/com/qs/serve/modules/sys/entity/dto/SysUserSimpleVo.java index 3b706f6b..e2259109 100644 --- a/src/main/java/com/qs/serve/modules/sys/entity/dto/SysUserSimpleVo.java +++ b/src/main/java/com/qs/serve/modules/sys/entity/dto/SysUserSimpleVo.java @@ -33,4 +33,8 @@ public class SysUserSimpleVo { /** 完成状态 */ private Integer finished; + + /** 客户主要负责人标识 */ + private Integer supplierMainFlag; + }