仓库管理
This commit is contained in:
parent
f433aff58f
commit
0c53f3161c
@ -4,6 +4,8 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
|||||||
|
|
||||||
public interface ErrorCodeConstants {
|
public interface ErrorCodeConstants {
|
||||||
ErrorCode BASE_TYPE_NOT_EXISTS = new ErrorCode(500, "配置类型不存在");
|
ErrorCode BASE_TYPE_NOT_EXISTS = new ErrorCode(500, "配置类型不存在");
|
||||||
ErrorCode BASE_TYPE_EXITS_CHILDREN = new ErrorCode(500, "存在存在子配置类型,无法删除");
|
ErrorCode BASE_TYPE_EXITS_CHILDREN = new ErrorCode(500, "存在子配置类型,无法删除");
|
||||||
|
ErrorCode BASE_WAREHOUSE_EXITS_CHILDREN = new ErrorCode(500, "存在子配置类型,无法删除");
|
||||||
ErrorCode BASE_TYPE_NAME_DUPLICATE = new ErrorCode(500, "同父级下配置类型名称或编码重复");
|
ErrorCode BASE_TYPE_NAME_DUPLICATE = new ErrorCode(500, "同父级下配置类型名称或编码重复");
|
||||||
|
ErrorCode BASE_WAREHOUSE_NAME_DUPLICATE = new ErrorCode(500, "同父级下仓库区域名称或编码重复");
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,105 @@
|
|||||||
|
package cn.iocoder.yudao.module.conf.controller.admin;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.conf.service.BaseWarehouseService;
|
||||||
|
import cn.iocoder.yudao.module.conf.vo.BaseWarehouseListReqVO;
|
||||||
|
import cn.iocoder.yudao.module.conf.vo.BaseWarehouseRespVO;
|
||||||
|
import cn.iocoder.yudao.module.conf.vo.BaseWarehouseSaveReqVO;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 仓库管理")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/conf/baseWarehouse")
|
||||||
|
@Validated
|
||||||
|
public class BaseWarehouseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BaseWarehouseService baseWarehouseService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增账目配置类型
|
||||||
|
*
|
||||||
|
* @param createReqVO BaseTypeSaveReqVO实体
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.lang.String>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 11:21 2024/9/10
|
||||||
|
**/
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建配置类型")
|
||||||
|
public CommonResult<Boolean> createBaseType(@Valid @RequestBody BaseWarehouseSaveReqVO createReqVO) {
|
||||||
|
baseWarehouseService.saveBaseWarehouse(createReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑账目配置类型
|
||||||
|
*
|
||||||
|
* @param updateReqVO BaseTypeSaveReqVO实体
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.lang.Boolean>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 14:25 2024/9/10
|
||||||
|
**/
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新配置类型")
|
||||||
|
public CommonResult<Boolean> updateBaseType(@Valid @RequestBody BaseWarehouseSaveReqVO updateReqVO) {
|
||||||
|
baseWarehouseService.saveBaseWarehouse(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除配置类型
|
||||||
|
*
|
||||||
|
* @param id 类型id
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.lang.Boolean>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 14:25 2024/9/10
|
||||||
|
**/
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除配置类型")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
public CommonResult<Boolean> deleteBaseType(@RequestParam("id") String id) {
|
||||||
|
baseWarehouseService.deleteBaseWarehouse(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据id获取配置类型
|
||||||
|
*
|
||||||
|
* @param id 配置类型id
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<cn.iocoder.yudao.module.conf.vo.BaseTypeRespVO>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 14:26 2024/9/10
|
||||||
|
**/
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得配置类型")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BaseWarehouseRespVO> getBaseType(@RequestParam("id") String id) {
|
||||||
|
return success(baseWarehouseService.getBaseWarehouse(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置类型列表
|
||||||
|
*
|
||||||
|
* @param listReqVO BaseTypeListReqVO 实体
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.util.List < cn.iocoder.yudao.module.conf.vo.BaseTypeRespVO>>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 14:26 2024/9/10
|
||||||
|
**/
|
||||||
|
@GetMapping("/list")
|
||||||
|
@Operation(summary = "获得配置类型列表")
|
||||||
|
public CommonResult<List<BaseWarehouseRespVO>> getBaseTypeList(@Valid BaseWarehouseListReqVO listReqVO) {
|
||||||
|
return success(baseWarehouseService.getBaseWarehouseList(listReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -20,8 +20,6 @@ import lombok.*;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class BaseType extends TenantBaseDO {
|
public class BaseType extends TenantBaseDO {
|
||||||
|
|
||||||
public static final Long PARENT_ID_ROOT = 0L;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键标识
|
* 主键标识
|
||||||
*/
|
*/
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
package cn.iocoder.yudao.module.conf.entity;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库 DO
|
||||||
|
*
|
||||||
|
* @author pqz
|
||||||
|
*/
|
||||||
|
@TableName("dl_base_warehouse")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class BaseWarehouse extends TenantBaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键标识
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_UUID)
|
||||||
|
private String id;
|
||||||
|
/**
|
||||||
|
* 父id
|
||||||
|
*/
|
||||||
|
private String parentId;
|
||||||
|
/**
|
||||||
|
* 仓库/货架名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
/**
|
||||||
|
* 仓库/货架编码
|
||||||
|
*/
|
||||||
|
private String code;
|
||||||
|
/**
|
||||||
|
* 状态(01启用,02禁用)
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
/**排序*/
|
||||||
|
private double sort;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
/**
|
||||||
|
* 所属子公司
|
||||||
|
*/
|
||||||
|
private String corpId;
|
||||||
|
|
||||||
|
}
|
@ -1,6 +1,5 @@
|
|||||||
package cn.iocoder.yudao.module.conf.mapper;
|
package cn.iocoder.yudao.module.conf.mapper;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
||||||
import cn.iocoder.yudao.module.conf.entity.BaseType;
|
import cn.iocoder.yudao.module.conf.entity.BaseType;
|
||||||
import cn.iocoder.yudao.module.conf.vo.BaseTypeListReqVO;
|
import cn.iocoder.yudao.module.conf.vo.BaseTypeListReqVO;
|
||||||
import cn.iocoder.yudao.module.conf.vo.BaseTypeRespVO;
|
import cn.iocoder.yudao.module.conf.vo.BaseTypeRespVO;
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package cn.iocoder.yudao.module.conf.mapper;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
||||||
|
import cn.iocoder.yudao.module.conf.vo.BaseWarehouseListReqVO;
|
||||||
|
import cn.iocoder.yudao.module.conf.vo.BaseWarehouseRespVO;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库 Mapper
|
||||||
|
*
|
||||||
|
* @author pqz
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface BaseWarehouseMapper extends BaseMapper<BaseWarehouse> {
|
||||||
|
/**
|
||||||
|
* 查询仓库列表
|
||||||
|
* @author PQZ
|
||||||
|
* @date 18:24 2024/9/10
|
||||||
|
* @param entity BaseWarehouseListReqVO实体
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.conf.vo.BaseWarehouseRespVO>
|
||||||
|
**/
|
||||||
|
List<BaseWarehouseRespVO> queryList(@Param("entity")BaseWarehouseListReqVO entity);
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
package cn.iocoder.yudao.module.conf.service;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
||||||
|
import cn.iocoder.yudao.module.conf.vo.*;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库 Service 接口
|
||||||
|
*
|
||||||
|
* @author pqz
|
||||||
|
*/
|
||||||
|
public interface BaseWarehouseService extends IService<BaseWarehouse> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增仓库
|
||||||
|
*
|
||||||
|
* @param saveReqVO BaseWarehouseSaveReqVO实体
|
||||||
|
* @return void
|
||||||
|
* @author PQZ
|
||||||
|
* @date 18:28 2024/9/10
|
||||||
|
**/
|
||||||
|
void saveBaseWarehouse(BaseWarehouseSaveReqVO saveReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除仓库
|
||||||
|
*
|
||||||
|
* @param id 仓库id
|
||||||
|
* @author PQZ
|
||||||
|
* @date 18:29 2024/9/10
|
||||||
|
**/
|
||||||
|
void deleteBaseWarehouse(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据仓库id查询仓库
|
||||||
|
*
|
||||||
|
* @param id 仓库id
|
||||||
|
* @return cn.iocoder.yudao.module.conf.vo.BaseTypeRespVO
|
||||||
|
* @author PQZ
|
||||||
|
* @date 18:30 2024/9/10
|
||||||
|
**/
|
||||||
|
BaseWarehouseRespVO getBaseWarehouse(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取仓库列表
|
||||||
|
*
|
||||||
|
* @param listReqVO BaseWarehouseListReqVO实体
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.conf.vo.BaseWarehouseRespVO>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 18:31 2024/9/10
|
||||||
|
**/
|
||||||
|
List<BaseWarehouseRespVO> getBaseWarehouseList(BaseWarehouseListReqVO listReqVO);
|
||||||
|
|
||||||
|
}
|
@ -17,7 +17,6 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import static cn.iocoder.yudao.common.ErrorCodeConstants.*;
|
import static cn.iocoder.yudao.common.ErrorCodeConstants.*;
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
@ -45,7 +44,7 @@ public class BaseTypeServiceImpl extends ServiceImpl<BaseTypeMapper, BaseType> i
|
|||||||
public void saveBaseType(BaseTypeSaveReqVO saveReqVO) {
|
public void saveBaseType(BaseTypeSaveReqVO saveReqVO) {
|
||||||
/*1、数据校验*/
|
/*1、数据校验*/
|
||||||
//同级别下校验名称是否重复
|
//同级别下校验名称是否重复
|
||||||
validateBaseTypeNameUnique(saveReqVO.getId(),saveReqVO.getParentId(),saveReqVO.getType(),saveReqVO.getName(),saveReqVO.getCode());
|
validateBaseTypeNameUnique(saveReqVO.getId(), saveReqVO.getParentId(), saveReqVO.getType(), saveReqVO.getName(), saveReqVO.getCode());
|
||||||
/*2、数据保存*/
|
/*2、数据保存*/
|
||||||
//类型转换
|
//类型转换
|
||||||
BaseType baseType = BeanUtils.toBean(saveReqVO, BaseType.class);
|
BaseType baseType = BeanUtils.toBean(saveReqVO, BaseType.class);
|
||||||
@ -55,9 +54,10 @@ public class BaseTypeServiceImpl extends ServiceImpl<BaseTypeMapper, BaseType> i
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除配置类型
|
* 删除配置类型
|
||||||
|
*
|
||||||
|
* @param id 配置类型id
|
||||||
* @author PQZ
|
* @author PQZ
|
||||||
* @date 17:07 2024/9/10
|
* @date 17:07 2024/9/10
|
||||||
* @param id 配置类型id
|
|
||||||
**/
|
**/
|
||||||
@Override
|
@Override
|
||||||
public void deleteBaseType(String id) {
|
public void deleteBaseType(String id) {
|
||||||
@ -84,7 +84,7 @@ public class BaseTypeServiceImpl extends ServiceImpl<BaseTypeMapper, BaseType> i
|
|||||||
* @author PQZ
|
* @author PQZ
|
||||||
* @date 11:34 2024/9/10
|
* @date 11:34 2024/9/10
|
||||||
**/
|
**/
|
||||||
private void validateBaseTypeNameUnique(String id, String parentId, String type, String name,String code) {
|
private void validateBaseTypeNameUnique(String id, String parentId, String type, String name, String code) {
|
||||||
//配置类型不能为空
|
//配置类型不能为空
|
||||||
if (StringUtils.isBlank(type)) {
|
if (StringUtils.isBlank(type)) {
|
||||||
throw exception(BASE_TYPE_NOT_EXISTS);
|
throw exception(BASE_TYPE_NOT_EXISTS);
|
||||||
@ -93,7 +93,7 @@ public class BaseTypeServiceImpl extends ServiceImpl<BaseTypeMapper, BaseType> i
|
|||||||
lambdaQueryWrapper.eq(BaseDO::getDeleted, 0)
|
lambdaQueryWrapper.eq(BaseDO::getDeleted, 0)
|
||||||
.eq(BaseType::getType, type)
|
.eq(BaseType::getType, type)
|
||||||
.eq(BaseType::getName, name)
|
.eq(BaseType::getName, name)
|
||||||
.eq(BaseType::getName, code)
|
.eq(BaseType::getCode, code)
|
||||||
.eq(BaseType::getParentId, parentId);
|
.eq(BaseType::getParentId, parentId);
|
||||||
//id存在为编辑情况,排除自身
|
//id存在为编辑情况,排除自身
|
||||||
if (null != id) {
|
if (null != id) {
|
||||||
@ -108,17 +108,18 @@ public class BaseTypeServiceImpl extends ServiceImpl<BaseTypeMapper, BaseType> i
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据类型id查询配置类型
|
* 根据类型id查询配置类型
|
||||||
* @author PQZ
|
*
|
||||||
* @date 14:40 2024/9/10
|
|
||||||
* @param id 类型id
|
* @param id 类型id
|
||||||
* @return cn.iocoder.yudao.module.conf.entity.BaseType
|
* @return cn.iocoder.yudao.module.conf.entity.BaseType
|
||||||
|
* @author PQZ
|
||||||
|
* @date 14:40 2024/9/10
|
||||||
**/
|
**/
|
||||||
@Override
|
@Override
|
||||||
public BaseTypeRespVO getBaseType(String id) {
|
public BaseTypeRespVO getBaseType(String id) {
|
||||||
BaseType baseType = getById(id);
|
BaseType baseType = getById(id);
|
||||||
BaseTypeRespVO result = BeanUtils.toBean(baseType, BaseTypeRespVO.class);
|
BaseTypeRespVO result = BeanUtils.toBean(baseType, BaseTypeRespVO.class);
|
||||||
//关联子公司转换
|
//关联子公司转换
|
||||||
if (StringUtils.isNotBlank(result.getCorpId())){
|
if (StringUtils.isNotBlank(result.getCorpId())) {
|
||||||
result.setCorpIds(Arrays.asList(result.getCorpId().split(",")));
|
result.setCorpIds(Arrays.asList(result.getCorpId().split(",")));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -126,10 +127,11 @@ public class BaseTypeServiceImpl extends ServiceImpl<BaseTypeMapper, BaseType> i
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取配置类型列表
|
* 获取配置类型列表
|
||||||
* @author PQZ
|
*
|
||||||
* @date 14:27 2024/9/10
|
|
||||||
* @param listReqVO BaseTypeListReqVO
|
* @param listReqVO BaseTypeListReqVO
|
||||||
* @return java.util.List<cn.iocoder.yudao.module.conf.entity.BaseType>
|
* @return java.util.List<cn.iocoder.yudao.module.conf.entity.BaseType>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 14:27 2024/9/10
|
||||||
**/
|
**/
|
||||||
@Override
|
@Override
|
||||||
public List<BaseTypeRespVO> getBaseTypeList(BaseTypeListReqVO listReqVO) {
|
public List<BaseTypeRespVO> getBaseTypeList(BaseTypeListReqVO listReqVO) {
|
||||||
|
@ -0,0 +1,134 @@
|
|||||||
|
package cn.iocoder.yudao.module.conf.service.impl;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
||||||
|
import cn.iocoder.yudao.module.conf.mapper.BaseWarehouseMapper;
|
||||||
|
import cn.iocoder.yudao.module.conf.service.BaseWarehouseService;
|
||||||
|
import cn.iocoder.yudao.module.conf.vo.BaseWarehouseListReqVO;
|
||||||
|
import cn.iocoder.yudao.module.conf.vo.BaseWarehouseRespVO;
|
||||||
|
import cn.iocoder.yudao.module.conf.vo.BaseWarehouseSaveReqVO;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.common.ErrorCodeConstants.BASE_WAREHOUSE_EXITS_CHILDREN;
|
||||||
|
import static cn.iocoder.yudao.common.ErrorCodeConstants.BASE_WAREHOUSE_NAME_DUPLICATE;
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置类型 Service 实现类
|
||||||
|
*
|
||||||
|
* @author pqz
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class BaseWarehouseServiceImpl extends ServiceImpl<BaseWarehouseMapper, BaseWarehouse> implements BaseWarehouseService {
|
||||||
|
@Resource
|
||||||
|
private BaseWarehouseMapper baseWarehouseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增仓库
|
||||||
|
*
|
||||||
|
* @param saveReqVO BaseWarehouseSaveReqVO实体
|
||||||
|
* @return void
|
||||||
|
* @author PQZ
|
||||||
|
* @date 18:28 2024/9/10
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void saveBaseWarehouse(BaseWarehouseSaveReqVO saveReqVO) {
|
||||||
|
/*1、数据校验*/
|
||||||
|
//同级别下校验名称是否重复
|
||||||
|
validateWarehouseUnique(saveReqVO.getId(), saveReqVO.getParentId(), saveReqVO.getName(), saveReqVO.getCode());
|
||||||
|
/*2、数据保存*/
|
||||||
|
//类型转换
|
||||||
|
BaseWarehouse baseWarehouse = BeanUtils.toBean(saveReqVO, BaseWarehouse.class);
|
||||||
|
//数据保存
|
||||||
|
saveOrUpdate(baseWarehouse);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除仓库
|
||||||
|
*
|
||||||
|
* @param id 仓库id
|
||||||
|
* @author PQZ
|
||||||
|
* @date 18:29 2024/9/10
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void deleteBaseWarehouse(String id) {
|
||||||
|
// 校验是否有子配置类型
|
||||||
|
LambdaQueryWrapper<BaseWarehouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(BaseWarehouse::getParentId, id);
|
||||||
|
List<BaseWarehouse> list = list(lambdaQueryWrapper);
|
||||||
|
if (list.size() > 0) {
|
||||||
|
throw exception(BASE_WAREHOUSE_EXITS_CHILDREN);
|
||||||
|
}
|
||||||
|
// 删除
|
||||||
|
baseWarehouseMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据仓库id查询仓库
|
||||||
|
*
|
||||||
|
* @param id 仓库id
|
||||||
|
* @return cn.iocoder.yudao.module.conf.vo.BaseTypeRespVO
|
||||||
|
* @author PQZ
|
||||||
|
* @date 18:30 2024/9/10
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public BaseWarehouseRespVO getBaseWarehouse(String id) {
|
||||||
|
BaseWarehouse baseWarehouse = getById(id);
|
||||||
|
BaseWarehouseRespVO result = BeanUtils.toBean(baseWarehouse, BaseWarehouseRespVO.class);
|
||||||
|
//关联子公司转换
|
||||||
|
if (StringUtils.isNotBlank(result.getCorpId())) {
|
||||||
|
result.setCorpIds(Arrays.asList(result.getCorpId().split(",")));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取仓库列表
|
||||||
|
*
|
||||||
|
* @param listReqVO BaseWarehouseListReqVO实体
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.conf.vo.BaseWarehouseRespVO>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 18:31 2024/9/10
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public List<BaseWarehouseRespVO> getBaseWarehouseList(BaseWarehouseListReqVO listReqVO) {
|
||||||
|
return baseWarehouseMapper.queryList(listReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同类型,同级别下校验名称及编码唯一性
|
||||||
|
*
|
||||||
|
* @param id id
|
||||||
|
* @param parentId 父类id
|
||||||
|
* @param name 名称
|
||||||
|
* @param code 编码
|
||||||
|
* @author PQZ
|
||||||
|
* @date 11:34 2024/9/10
|
||||||
|
**/
|
||||||
|
private void validateWarehouseUnique(String id, String parentId, String name, String code) {
|
||||||
|
LambdaQueryWrapper<BaseWarehouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(BaseDO::getDeleted, 0)
|
||||||
|
.eq(BaseWarehouse::getName, name)
|
||||||
|
.eq(BaseWarehouse::getCode, code)
|
||||||
|
.eq(BaseWarehouse::getParentId, parentId);
|
||||||
|
//id存在为编辑情况,排除自身
|
||||||
|
if (null != id) {
|
||||||
|
lambdaQueryWrapper.ne(BaseWarehouse::getId, id);
|
||||||
|
}
|
||||||
|
//查询list,校验唯一性
|
||||||
|
List<BaseWarehouse> list = list(lambdaQueryWrapper);
|
||||||
|
if (list.size() > 0) {
|
||||||
|
throw exception(BASE_WAREHOUSE_NAME_DUPLICATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.conf.vo;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 仓库列表 Request VO")
|
||||||
|
@Data
|
||||||
|
public class BaseWarehouseListReqVO extends BaseWarehouse {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.conf.vo;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.alibaba.excel.annotation.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 仓库 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class BaseWarehouseRespVO extends BaseWarehouse {
|
||||||
|
/**关联子公司*/
|
||||||
|
List<String> corpIds = new ArrayList<>();
|
||||||
|
/**子公司名称字符串*/
|
||||||
|
String corpNames;
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package cn.iocoder.yudao.module.conf.vo;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 仓库新增/修改 Request VO")
|
||||||
|
@Data
|
||||||
|
public class BaseWarehouseSaveReqVO extends BaseWarehouse {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="cn.iocoder.yudao.module.conf.mapper.BaseWarehouseMapper">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||||
|
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||||
|
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||||
|
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<select id="queryList" resultType="cn.iocoder.yudao.module.conf.vo.BaseWarehouseRespVO">
|
||||||
|
SELECT
|
||||||
|
dbw.*,
|
||||||
|
GROUP_CONCAT(bc.corp_name) AS corpNames
|
||||||
|
FROM
|
||||||
|
dl_base_warehouse dbw
|
||||||
|
LEFT JOIN base_company bc ON FIND_IN_SET(bc.id, dbw.corp_id) > 0
|
||||||
|
<where>
|
||||||
|
dbw.deleted = 0
|
||||||
|
<if test="entity.status != null and entity.status != ''">
|
||||||
|
and dbw.status = #{entity.status}
|
||||||
|
</if>
|
||||||
|
<if test="entity.corpId != null and entity.corpId != ''">
|
||||||
|
and dbw.corp_id like concat('%', #{entity.corpId}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="entity.name != null and entity.name != ''">
|
||||||
|
and dbw.name like concat('%', #{entity.name}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="entity.code != null and entity.code != ''">
|
||||||
|
and dbw.code like concat('%', #{entity.code}, '%')
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
GROUP BY
|
||||||
|
dbw.id
|
||||||
|
order by dbw.sort asc
|
||||||
|
</select>
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue
Block a user