Browse Source

仓库信息设置缓存

training
kilo 2 years ago
parent
commit
de182e752b
  1. 10
      blade-service/logpm-basicdata/pom.xml
  2. 40
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java
  3. 35
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataWarehouseDTO.java
  4. 12
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataWarehouseService.java
  5. 91
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java
  6. 53
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/wrapper/BasicdataWarehouseWrapper.java

10
blade-service/logpm-basicdata/pom.xml

@ -61,6 +61,16 @@
<version>${bladex.project.version}</version>
</dependency>
<!-- 系统pom引入-->
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-system-api</artifactId>
<version>${bladex.project.version}</version>
</dependency>
<!-- redis-->
</dependencies>

40
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
3Feign 获取用户选择的仓库
这里考虑两种情况
1用户只有一个仓库信息直接返回
2用户没有选择仓库的动作返回null
*/
}

35
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;
}

12
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<BasicdataWarehou
* @return
*/
List<BasicdataWarehouseVO> getMyWarehouseList();
/**
* 保存当前用户选择的仓库至Redis缓存中
* @param warehouseDTO
*/
void preserveCurrentMyWarehouse(BasicdataWarehouseDTO warehouseDTO);
/**
* 根据当前登录用户查询Redis缓存中选择的仓库信息
*/
Object getMyCurrentWarehouse();
}

91
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<BasicdataWarehouseMapper, BasicdataWarehouseEntity> 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<BasicdataWare
@Override
public List<BasicdataWarehouseVO> getWarehouseAndGoodsAreaInfo() {
List<BasicdataWarehouseVO> basicdataGoodsShelfVOList =warehouseMapper.getWarehouseAndGoodsAreaInfo();
List<BasicdataWarehouseVO> basicdataGoodsShelfVOList = warehouseMapper.getWarehouseAndGoodsAreaInfo();
return basicdataGoodsShelfVOList;
}
@Override
public List<BasicdataWarehouseVO> getWarehouseList() {
List<BasicdataWarehouseVO> basicdataGoodsShelfVOList =warehouseMapper.getWarehouseList();
List<BasicdataWarehouseVO> basicdataGoodsShelfVOList = warehouseMapper.getWarehouseList();
return basicdataGoodsShelfVOList;
}
@ -85,15 +101,15 @@ public class BasicdataWarehouseServiceImpl extends BaseServiceImpl<BasicdataWare
@Transactional
public boolean removeWarehouse(String ids) {
// //仓库涉及众多表,取消批量删除,这里只针对仓库下是否存在有托盘、货区、班组等下级资源
if (Func.isEmpty(ids)){
log.error("传入参数异常["+ids+"]");
if (Func.isEmpty(ids)) {
log.error("传入参数异常[" + ids + "]");
return false;
}
List<Long> 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<BasicdataWare
@Override
public List<BasicdataWarehouseEntity> pageListName(String name) {
QueryWrapper<BasicdataWarehouseEntity> 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<BasicdataWare
/**
* 部门下的仓库
*
* @param queryWrapper
* @return
*/
@Override
public List<BasicdataWarehouseEntity> getDeptWarehouse(QueryWrapper<BasicdataWarehouseEntity> queryWrapper) {
return baseMapper.selectList(queryWrapper);
}
/*
1. 得到仓库列表
根据当前登录人
当前人部门
情况
1登录人部门范围大 登录人 -- 仓库 -> 一对多
递归查询
2登录人部门就是营业部节点 登录人 -- 仓库 -> 一对一
*/
@Override
public List<BasicdataWarehouseVO> getMyWarehouseList() {
// 获取当前登陆人
BladeUser user = AuthUtil.getUser();
//查询出部门表
String deptId = user.getDeptId();
List<Dept> 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<BasicdataWarehouseEntity> warehouseEntityList = baseMapper.selectList(Wrappers.<BasicdataWarehouseEntity>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;
}
}

53
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<BasicdataWarehouseEntity, BasicdataWarehouseVO> {
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;
}
}
Loading…
Cancel
Save