diff --git a/blade-service/logpm-basicdata/pom.xml b/blade-service/logpm-basicdata/pom.xml index cd89c18dd..72b1ae294 100644 --- a/blade-service/logpm-basicdata/pom.xml +++ b/blade-service/logpm-basicdata/pom.xml @@ -61,6 +61,16 @@ ${bladex.project.version} + + + org.springblade + blade-system-api + ${bladex.project.version} + + + + + diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java index 27aa00906..0d13de4d5 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java @@ -16,6 +16,7 @@ */ package com.logpm.basicdata.controller; +import com.logpm.basicdata.dto.BasicdataWarehouseDTO; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.excel.BasicdataWarehouseExcel; import com.logpm.basicdata.service.IBasicdataWarehouseService; @@ -28,6 +29,7 @@ import lombok.AllArgsConstructor; import javax.validation.Valid; +import org.springblade.common.utils.RedisUtil; import org.springblade.core.secure.BladeUser; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; @@ -243,29 +245,35 @@ BasicdataWarehouseController extends BladeController { return R.data(basicdataGoodsShelfVOList); } + /** + * 根据当前登陆人返回当前登陆人能操作的仓库列表 + * + */ + @PostMapping("/preserveCurrentWarehouse") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "分页", notes = "传入BasicdataGoodsShelf") + public R preserveCurrentWarehouse(@RequestBody BasicdataWarehouseDTO warehouseDTO) { + warehouseService.preserveCurrentMyWarehouse(warehouseDTO); + return null; + } + /** + * + *获取当前登录人 + */ + @GetMapping("/getCurrentWarehouse") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "分页", notes = "传入BasicdataGoodsShelf") + public R getCurrentWarehouse() { + Object obj = warehouseService.getMyCurrentWarehouse(); + return R.data(obj); + } - /* - 1. 得到仓库列表 - 根据当前登录人 - 当前人部门 - 情况 - 1、登录人部门范围大 登录人 -- 仓库 -> 一对多 - 递归查询 - 2、登录人部门就是营业部节点 登录人 -- 仓库 -> 一对一 - - 2、存放用户选择的仓库id - key 租户Id + 用户id - 3、Feign 获取用户选择的仓库 - 这里考虑两种情况 - 1、用户只有一个仓库信息,直接返回 - 2、用户没有选择仓库的动作,返回null - */ } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataWarehouseDTO.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataWarehouseDTO.java new file mode 100644 index 000000000..d47e00acb --- /dev/null +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataWarehouseDTO.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.basicdata.dto; + +import com.logpm.basicdata.entity.BasicdataCategoryEntity; +import com.logpm.basicdata.entity.BasicdataWarehouseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 品类 数据传输对象实体类 + * + * @author cyz + * @since 2023-06-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class BasicdataWarehouseDTO extends BasicdataWarehouseEntity { + private static final long serialVersionUID = 1L; + +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataWarehouseService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataWarehouseService.java index 07728b4fd..dc7039d44 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataWarehouseService.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataWarehouseService.java @@ -20,6 +20,7 @@ package com.logpm.basicdata.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.logpm.basicdata.dto.BasicdataWarehouseDTO; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.excel.BasicdataWarehouseExcel; import com.logpm.basicdata.vo.BasicdataGoodsShelfVO; @@ -94,4 +95,15 @@ public interface IBasicdataWarehouseService extends BaseService getMyWarehouseList(); + + /** + * 保存当前用户选择的仓库至Redis缓存中 + * @param warehouseDTO + */ + void preserveCurrentMyWarehouse(BasicdataWarehouseDTO warehouseDTO); + + /** + * 根据当前登录用户查询Redis缓存中选择的仓库信息 + */ + Object getMyCurrentWarehouse(); } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java index 0eeca9eec..987d2f46f 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java @@ -16,20 +16,29 @@ */ package com.logpm.basicdata.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.nacos.shaded.com.google.gson.GsonBuilder; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; +import com.logpm.basicdata.dto.BasicdataWarehouseDTO; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.excel.BasicdataWarehouseExcel; import com.logpm.basicdata.mapper.BasicdataGoodsAreaMapper; import com.logpm.basicdata.mapper.BasicdataWarehouseMapper; import com.logpm.basicdata.service.IBasicdataWarehouseService; import com.logpm.basicdata.vo.BasicdataWarehouseVO; +import com.logpm.basicdata.wrapper.BasicdataWarehouseWrapper; import lombok.AllArgsConstructor; +import org.springblade.common.utils.RedisUtil; +import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springblade.system.entity.Dept; +import org.springblade.system.feign.IDeptClient; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -48,9 +57,16 @@ import java.util.List; @AllArgsConstructor public class BasicdataWarehouseServiceImpl extends BaseServiceImpl implements IBasicdataWarehouseService { - private BasicdataWarehouseMapper warehouseMapper; + private final BasicdataWarehouseMapper warehouseMapper; - private BasicdataGoodsAreaMapper goodsAreaMapper; + private final BasicdataGoodsAreaMapper goodsAreaMapper; + + private final IDeptClient deptClient; + + private final BladeRedis redis; + + +// private @Override @@ -70,14 +86,14 @@ public class BasicdataWarehouseServiceImpl extends BaseServiceImpl getWarehouseAndGoodsAreaInfo() { - List basicdataGoodsShelfVOList =warehouseMapper.getWarehouseAndGoodsAreaInfo(); + List basicdataGoodsShelfVOList = warehouseMapper.getWarehouseAndGoodsAreaInfo(); return basicdataGoodsShelfVOList; } @Override public List getWarehouseList() { - List basicdataGoodsShelfVOList =warehouseMapper.getWarehouseList(); + List basicdataGoodsShelfVOList = warehouseMapper.getWarehouseList(); return basicdataGoodsShelfVOList; } @@ -85,15 +101,15 @@ public class BasicdataWarehouseServiceImpl extends BaseServiceImpl longs = Func.toLongList(ids); boolean result = false; for (Long id : longs) { result = SqlHelper.retBool(warehouseMapper.removeWarehouse(id)); - if (!result){ + if (!result) { return result; } } @@ -104,8 +120,8 @@ public class BasicdataWarehouseServiceImpl extends BaseServiceImpl pageListName(String name) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(StringUtils.isNotBlank(name),BasicdataWarehouseEntity::getName,name); - return baseMapper.selectList( queryWrapper); + queryWrapper.lambda().eq(StringUtils.isNotBlank(name), BasicdataWarehouseEntity::getName, name); + return baseMapper.selectList(queryWrapper); } @Override @@ -115,29 +131,78 @@ public class BasicdataWarehouseServiceImpl extends BaseServiceImpl getDeptWarehouse(QueryWrapper queryWrapper) { - return baseMapper.selectList(queryWrapper); } + + + + /* + 1. 得到仓库列表 + 根据当前登录人 + 当前人部门 + 情况 + 1、登录人部门范围大 登录人 -- 仓库 -> 一对多 + 递归查询 + 2、登录人部门就是营业部节点 登录人 -- 仓库 -> 一对一 + + + + + + + */ + @Override public List getMyWarehouseList() { // 获取当前登陆人 BladeUser user = AuthUtil.getUser(); + //查询出部门表 String deptId = user.getDeptId(); + List userDeptNode = deptClient.getUserDeptNode(Long.parseLong(deptId)); + StringBuffer depts = new StringBuffer(); + if (Func.isEmpty(userDeptNode)) { + log.error("userDeptNode用户部门信息有误+{" + userDeptNode + "}"); + return null; + } else { + userDeptNode.forEach(u -> { + depts.append(u.getId()).append(","); + }); + } + String str = depts.deleteCharAt(depts.length() - 1).toString(); + List warehouseEntityList = baseMapper.selectList(Wrappers.query().lambda().in(BasicdataWarehouseEntity::getDepartment, str)); + return BasicdataWarehouseWrapper.build().listVO(warehouseEntityList); + } - // 获取当前登陆人能操作的仓库列表 - + @Override + public void preserveCurrentMyWarehouse(BasicdataWarehouseDTO warehouseDTO) { +// 2、存放用户选择的仓库id +// key 租户Id + 用户id + BladeUser user = AuthUtil.getUser(); + String str = user.getTenantId() +"--"+ user.getUserId(); + redis.set(str,warehouseDTO); + } - return null; + // 3、Feign 获取用户选择的仓库 +// 这里考虑两种情况 +// 1、用户只有一个仓库信息,直接返回 +// 2、用户没有选择仓库的动作,返回null + @Override + public Object getMyCurrentWarehouse() { + BladeUser user = AuthUtil.getUser(); + String str = user.getTenantId()+"--" + user.getUserId(); + Object o = redis.get(str); + return o; } } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/wrapper/BasicdataWarehouseWrapper.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/wrapper/BasicdataWarehouseWrapper.java new file mode 100644 index 000000000..84e200389 --- /dev/null +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/wrapper/BasicdataWarehouseWrapper.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.basicdata.wrapper; + +import com.logpm.basicdata.entity.BasicdataBrandEntity; +import com.logpm.basicdata.entity.BasicdataWarehouseEntity; +import com.logpm.basicdata.vo.BasicdataBrandVO; +import com.logpm.basicdata.vo.BasicdataWarehouseVO; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; + +import java.util.Objects; + +/** + * 基础品牌表 包装类,返回视图层所需的字段 + * + * @author cyz + * @since 2023-05-16 + */ +public class BasicdataWarehouseWrapper extends BaseEntityWrapper { + + public static BasicdataWarehouseWrapper build() { + return new BasicdataWarehouseWrapper(); + } + + @Override + public BasicdataWarehouseVO entityVO(BasicdataWarehouseEntity warehouseEntity) { + BasicdataWarehouseVO basicdataWarehouseVO = Objects.requireNonNull(BeanUtil.copy(warehouseEntity, BasicdataWarehouseVO.class)); + + //User createUser = UserCache.getUser(basicdataBrand.getCreateUser()); + //User updateUser = UserCache.getUser(basicdataBrand.getUpdateUser()); + //basicdataBrandVO.setCreateUserName(createUser.getName()); + //basicdataBrandVO.setUpdateUserName(updateUser.getName()); + + return basicdataWarehouseVO; + } + + +}