增加 wms模块基础信息
parent
b1dc619e33
commit
ffd1eebf28
@ -0,0 +1,27 @@
|
||||
# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
|
||||
FROM bellsoft/liberica-openjdk-rocky:17.0.16-cds
|
||||
#FROM bellsoft/liberica-openjdk-rocky:21.0.8-cds
|
||||
#FROM findepi/graalvm:java17-native
|
||||
|
||||
LABEL maintainer="Lion Li"
|
||||
|
||||
RUN mkdir -p /ruoyi/system/logs \
|
||||
/ruoyi/system/temp \
|
||||
/ruoyi/skywalking/agent
|
||||
|
||||
WORKDIR /ruoyi/system
|
||||
|
||||
ENV SERVER_PORT=9201 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
|
||||
|
||||
EXPOSE ${SERVER_PORT}
|
||||
|
||||
ADD ./target/ruoyi-system.jar ./app.jar
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
|
||||
#-Dskywalking.agent.service_name=ruoyi-system \
|
||||
#-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \
|
||||
-XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
|
||||
-jar app.jar
|
||||
|
||||
@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>ruoyi-wms</artifactId>
|
||||
|
||||
<description>
|
||||
ruoyi-wms系统模块
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-nacos</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi Common Log -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-log</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-service-impl</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-doc</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-mybatis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-dubbo</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-seata</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-idempotent</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-tenant</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-security</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-translation</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-sensitive</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-encrypt</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi Api System -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-api-system</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-api-resource</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi Api System -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-api-workflow</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<version>${spring-boot.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,22 @@
|
||||
package org.dromara.wms;
|
||||
|
||||
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
|
||||
|
||||
/**
|
||||
* WMS模块
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@EnableDubbo
|
||||
@SpringBootApplication
|
||||
public class RuoYiWmsApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication application = new SpringApplication(RuoYiWmsApplication.class);
|
||||
application.setApplicationStartup(new BufferingApplicationStartup(2048));
|
||||
application.run(args);
|
||||
System.out.println("(♥◠‿◠)ノ゙ WMS模块启动成功 ლ(´ڡ`ლ)゙ ");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,128 @@
|
||||
package org.dromara.wms.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.wms.domain.vo.WmsBaseLocationVo;
|
||||
import org.dromara.wms.domain.bo.WmsBaseLocationBo;
|
||||
import org.dromara.wms.service.IWmsBaseLocationService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 库位信息
|
||||
* 前端访问路由地址为:/wms/baseLocation
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/baseLocation")
|
||||
public class WmsBaseLocationController extends BaseController {
|
||||
|
||||
private final IWmsBaseLocationService wmsBaseLocationService;
|
||||
|
||||
/**
|
||||
* 查询库位信息列表
|
||||
*/
|
||||
@SaCheckPermission("wms:baseLocation:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsBaseLocationVo> list(WmsBaseLocationBo bo, PageQuery pageQuery) {
|
||||
return wmsBaseLocationService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出库位信息列表
|
||||
*/
|
||||
@SaCheckPermission("wms:baseLocation:export")
|
||||
@Log(title = "库位信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsBaseLocationBo bo, HttpServletResponse response) {
|
||||
List<WmsBaseLocationVo> list = wmsBaseLocationService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "库位信息", WmsBaseLocationVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库位信息详细信息
|
||||
*
|
||||
* @param locationId 主键
|
||||
*/
|
||||
@SaCheckPermission("wms:baseLocation:query")
|
||||
@GetMapping("/{locationId}")
|
||||
public R<WmsBaseLocationVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("locationId") Long locationId) {
|
||||
return R.ok(wmsBaseLocationService.queryById(locationId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增库位信息
|
||||
*/
|
||||
@SaCheckPermission("wms:baseLocation:add")
|
||||
@Log(title = "库位信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsBaseLocationBo bo) {
|
||||
WmsBaseLocationBo bo1 = new WmsBaseLocationBo();
|
||||
bo1.setLocationCode(bo.getLocationCode());
|
||||
List<WmsBaseLocationVo> list = wmsBaseLocationService.queryList(bo1);
|
||||
if (!list.isEmpty()) {
|
||||
return R.fail("库位编码已存在");
|
||||
}
|
||||
return toAjax(wmsBaseLocationService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库位信息
|
||||
*/
|
||||
@SaCheckPermission("wms:baseLocation:edit")
|
||||
@Log(title = "库位信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsBaseLocationBo bo) {
|
||||
WmsBaseLocationBo bo1 = new WmsBaseLocationBo();
|
||||
bo1.setLocationCode(bo.getLocationCode());
|
||||
List<WmsBaseLocationVo> list = wmsBaseLocationService.queryList(bo1);
|
||||
if (!list.isEmpty() && !list.get(0).getLocationId().equals(bo.getLocationId())) {
|
||||
return R.fail("库位编码已存在");
|
||||
}
|
||||
return toAjax(wmsBaseLocationService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除库位信息
|
||||
*
|
||||
* @param locationIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("wms:baseLocation:remove")
|
||||
@Log(title = "库位信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{locationIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable("locationIds") Long[] locationIds) {
|
||||
return toAjax(wmsBaseLocationService.deleteWithValidByIds(List.of(locationIds), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 下拉框查询库位信息列表
|
||||
*/
|
||||
@GetMapping("/getWmsBaseLocationList")
|
||||
public R<List<WmsBaseLocationVo>> getWmsBaseLocationList(WmsBaseLocationBo bo) {
|
||||
List<WmsBaseLocationVo> list = wmsBaseLocationService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,123 @@
|
||||
package org.dromara.wms.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.wms.domain.vo.WmsWarehouseInfoVo;
|
||||
import org.dromara.wms.domain.bo.WmsWarehouseInfoBo;
|
||||
import org.dromara.wms.service.IWmsWarehouseInfoService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 仓库信息
|
||||
* 前端访问路由地址为:/wms/warehouseInfo
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/warehouseInfo")
|
||||
public class WmsWarehouseInfoController extends BaseController {
|
||||
|
||||
private final IWmsWarehouseInfoService wmsWarehouseInfoService;
|
||||
|
||||
/**
|
||||
* 查询仓库信息列表
|
||||
*/
|
||||
@SaCheckPermission("wms:warehouseInfo:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsWarehouseInfoVo> list(WmsWarehouseInfoBo bo, PageQuery pageQuery) {
|
||||
return wmsWarehouseInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出仓库信息列表
|
||||
*/
|
||||
@SaCheckPermission("wms:warehouseInfo:export")
|
||||
@Log(title = "仓库信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsWarehouseInfoBo bo, HttpServletResponse response) {
|
||||
List<WmsWarehouseInfoVo> list = wmsWarehouseInfoService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "仓库信息", WmsWarehouseInfoVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取仓库信息详细信息
|
||||
*
|
||||
* @param warehouseId 主键
|
||||
*/
|
||||
@SaCheckPermission("wms:warehouseInfo:query")
|
||||
@GetMapping("/{warehouseId}")
|
||||
public R<WmsWarehouseInfoVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("warehouseId") Long warehouseId) {
|
||||
return R.ok(wmsWarehouseInfoService.queryById(warehouseId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增仓库信息
|
||||
*/
|
||||
@SaCheckPermission("wms:warehouseInfo:add")
|
||||
@Log(title = "仓库信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsWarehouseInfoBo bo) {
|
||||
WmsWarehouseInfoBo bo1 = new WmsWarehouseInfoBo();
|
||||
bo1.setWarehouseCode(bo.getWarehouseCode());
|
||||
List<WmsWarehouseInfoVo> list = wmsWarehouseInfoService.queryList(bo1);
|
||||
if (!list.isEmpty()) {
|
||||
return R.fail("仓库编码已存在");
|
||||
}
|
||||
|
||||
return toAjax(wmsWarehouseInfoService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改仓库信息
|
||||
*/
|
||||
@SaCheckPermission("wms:warehouseInfo:edit")
|
||||
@Log(title = "仓库信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsWarehouseInfoBo bo) {
|
||||
return toAjax(wmsWarehouseInfoService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除仓库信息
|
||||
*
|
||||
* @param warehouseIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("wms:warehouseInfo:remove")
|
||||
@Log(title = "仓库信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{warehouseIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable("warehouseIds") Long[] warehouseIds) {
|
||||
return toAjax(wmsWarehouseInfoService.deleteWithValidByIds(List.of(warehouseIds), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 下拉框查询仓库信息列表
|
||||
*/
|
||||
@GetMapping("/getWmsWarehouseInfoList")
|
||||
public R<List<WmsWarehouseInfoVo>> getWmsWarehouseInfoList(WmsWarehouseInfoBo bo) {
|
||||
List<WmsWarehouseInfoVo> list = wmsWarehouseInfoService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
package org.dromara.wms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.dromara.wms.domain.SysDept;
|
||||
|
||||
public interface SysDeptMapper extends BaseMapper<SysDept> {
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package org.dromara.wms.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.dromara.wms.domain.WmsBaseLocation;
|
||||
import org.dromara.wms.domain.vo.WmsBaseLocationVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 库位信息Mapper接口
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
public interface WmsBaseLocationMapper extends BaseMapperPlus<WmsBaseLocation, WmsBaseLocationVo> {
|
||||
|
||||
/**
|
||||
* 查询库位信息列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 库位信息集合
|
||||
*/
|
||||
public Page<WmsBaseLocationVo> selectCustomWmsBaseLocationVoList(@Param("page") Page<WmsBaseLocationVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<WmsBaseLocation> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询库位信息列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 库位信息集合
|
||||
*/
|
||||
public List<WmsBaseLocationVo> selectCustomWmsBaseLocationVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<WmsBaseLocation> queryWrapper);
|
||||
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package org.dromara.wms.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.dromara.wms.domain.WmsWarehouseInfo;
|
||||
import org.dromara.wms.domain.vo.WmsWarehouseInfoVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 仓库信息Mapper接口
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Repository
|
||||
public interface WmsWarehouseInfoMapper extends BaseMapperPlus<WmsWarehouseInfo, WmsWarehouseInfoVo> {
|
||||
|
||||
/**
|
||||
* 查询仓库信息列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 仓库信息集合
|
||||
*/
|
||||
public Page<WmsWarehouseInfoVo> selectCustomWmsWarehouseInfoVoList(@Param("page") Page<WmsWarehouseInfoVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<WmsWarehouseInfo> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询仓库信息列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 仓库信息集合
|
||||
*/
|
||||
public List<WmsWarehouseInfoVo> selectCustomWmsWarehouseInfoVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<WmsWarehouseInfo> queryWrapper);
|
||||
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
package org.dromara.wms.service;
|
||||
|
||||
import org.dromara.wms.domain.WmsBaseLocation;
|
||||
import org.dromara.wms.domain.vo.WmsBaseLocationVo;
|
||||
import org.dromara.wms.domain.bo.WmsBaseLocationBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 库位信息Service接口
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
public interface IWmsBaseLocationService {
|
||||
|
||||
/**
|
||||
* 查询库位信息
|
||||
*
|
||||
* @param locationId 主键
|
||||
* @return 库位信息
|
||||
*/
|
||||
WmsBaseLocationVo queryById(Long locationId);
|
||||
|
||||
/**
|
||||
* 分页查询库位信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 库位信息分页列表
|
||||
*/
|
||||
TableDataInfo<WmsBaseLocationVo> queryPageList(WmsBaseLocationBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的库位信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 库位信息列表
|
||||
*/
|
||||
List<WmsBaseLocationVo> queryList(WmsBaseLocationBo bo);
|
||||
|
||||
/**
|
||||
* 新增库位信息
|
||||
*
|
||||
* @param bo 库位信息
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(WmsBaseLocationBo bo);
|
||||
|
||||
/**
|
||||
* 修改库位信息
|
||||
*
|
||||
* @param bo 库位信息
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(WmsBaseLocationBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除库位信息信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
package org.dromara.wms.service;
|
||||
|
||||
import org.dromara.wms.domain.WmsWarehouseInfo;
|
||||
import org.dromara.wms.domain.vo.WmsWarehouseInfoVo;
|
||||
import org.dromara.wms.domain.bo.WmsWarehouseInfoBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 仓库信息Service接口
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
public interface IWmsWarehouseInfoService {
|
||||
|
||||
/**
|
||||
* 查询仓库信息
|
||||
*
|
||||
* @param warehouseId 主键
|
||||
* @return 仓库信息
|
||||
*/
|
||||
WmsWarehouseInfoVo queryById(Long warehouseId);
|
||||
|
||||
/**
|
||||
* 分页查询仓库信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 仓库信息分页列表
|
||||
*/
|
||||
TableDataInfo<WmsWarehouseInfoVo> queryPageList(WmsWarehouseInfoBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的仓库信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 仓库信息列表
|
||||
*/
|
||||
List<WmsWarehouseInfoVo> queryList(WmsWarehouseInfoBo bo);
|
||||
|
||||
/**
|
||||
* 新增仓库信息
|
||||
*
|
||||
* @param bo 仓库信息
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(WmsWarehouseInfoBo bo);
|
||||
|
||||
/**
|
||||
* 修改仓库信息
|
||||
*
|
||||
* @param bo 仓库信息
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(WmsWarehouseInfoBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除仓库信息信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,137 @@
|
||||
package org.dromara.wms.service.impl;
|
||||
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.toolkit.JoinWrappers;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.wms.domain.WmsWarehouseInfo;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.wms.domain.bo.WmsBaseLocationBo;
|
||||
import org.dromara.wms.domain.vo.WmsBaseLocationVo;
|
||||
import org.dromara.wms.domain.WmsBaseLocation;
|
||||
import org.dromara.wms.mapper.WmsBaseLocationMapper;
|
||||
import org.dromara.wms.service.IWmsBaseLocationService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 库位信息Service业务层处理
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class WmsBaseLocationServiceImpl implements IWmsBaseLocationService {
|
||||
|
||||
private final WmsBaseLocationMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询库位信息
|
||||
*
|
||||
* @param locationId 主键
|
||||
* @return 库位信息
|
||||
*/
|
||||
@Override
|
||||
public WmsBaseLocationVo queryById(Long locationId){
|
||||
return baseMapper.selectVoById(locationId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询库位信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 库位信息分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<WmsBaseLocationVo> queryPageList(WmsBaseLocationBo bo, PageQuery pageQuery) {
|
||||
MPJLambdaWrapper<WmsBaseLocation> lqw = buildQueryWrapper(bo);
|
||||
Page<WmsBaseLocationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的库位信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 库位信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<WmsBaseLocationVo> queryList(WmsBaseLocationBo bo) {
|
||||
MPJLambdaWrapper<WmsBaseLocation> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private MPJLambdaWrapper<WmsBaseLocation> buildQueryWrapper(WmsBaseLocationBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
MPJLambdaWrapper<WmsBaseLocation> lqw = JoinWrappers.lambda(WmsBaseLocation.class)
|
||||
.selectAll(WmsBaseLocation.class)
|
||||
.eq(bo.getWarehouseId() != null, WmsBaseLocation::getWarehouseId, bo.getWarehouseId())
|
||||
.eq(StringUtils.isNotBlank(bo.getLocationCode()), WmsBaseLocation::getLocationCode, bo.getLocationCode())
|
||||
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), WmsBaseLocation::getActiveFlag, bo.getActiveFlag())
|
||||
.leftJoin(WmsWarehouseInfo.class, WmsWarehouseInfo::getWarehouseId, WmsBaseLocation::getWarehouseId)
|
||||
.select(WmsWarehouseInfo::getWarehouseCode,WmsWarehouseInfo::getWarehouseName)
|
||||
;
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增库位信息
|
||||
*
|
||||
* @param bo 库位信息
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(WmsBaseLocationBo bo) {
|
||||
WmsBaseLocation add = MapstructUtils.convert(bo, WmsBaseLocation.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setLocationId(add.getLocationId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库位信息
|
||||
*
|
||||
* @param bo 库位信息
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(WmsBaseLocationBo bo) {
|
||||
WmsBaseLocation update = MapstructUtils.convert(bo, WmsBaseLocation.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(WmsBaseLocation entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除库位信息信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,129 @@
|
||||
package org.dromara.wms.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.toolkit.JoinWrappers;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.wms.domain.SysDept;
|
||||
import org.dromara.wms.domain.WmsWarehouseInfo;
|
||||
import org.dromara.wms.domain.bo.WmsWarehouseInfoBo;
|
||||
import org.dromara.wms.domain.vo.WmsWarehouseInfoVo;
|
||||
import org.dromara.wms.mapper.WmsWarehouseInfoMapper;
|
||||
import org.dromara.wms.service.IWmsWarehouseInfoService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 仓库信息Service业务层处理
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class WmsWarehouseInfoServiceImpl implements IWmsWarehouseInfoService {
|
||||
|
||||
private final WmsWarehouseInfoMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询仓库信息
|
||||
*
|
||||
* @param warehouseId 主键
|
||||
* @return 仓库信息
|
||||
*/
|
||||
@Override
|
||||
public WmsWarehouseInfoVo queryById(Long warehouseId) {
|
||||
return baseMapper.selectVoById(warehouseId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询仓库信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 仓库信息分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<WmsWarehouseInfoVo> queryPageList(WmsWarehouseInfoBo bo, PageQuery pageQuery) {
|
||||
MPJLambdaWrapper<WmsWarehouseInfo> lqw = buildQueryWrapper(bo);
|
||||
Page<WmsWarehouseInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的仓库信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 仓库信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<WmsWarehouseInfoVo> queryList(WmsWarehouseInfoBo bo) {
|
||||
MPJLambdaWrapper<WmsWarehouseInfo> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private MPJLambdaWrapper<WmsWarehouseInfo> buildQueryWrapper(WmsWarehouseInfoBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
MPJLambdaWrapper<WmsWarehouseInfo> lqw = JoinWrappers.lambda(WmsWarehouseInfo.class)
|
||||
.selectAll(WmsWarehouseInfo.class)
|
||||
.like(StringUtils.isNotBlank(bo.getWarehouseName()), WmsWarehouseInfo::getWarehouseName, bo.getWarehouseName())
|
||||
.eq(StringUtils.isNotBlank(bo.getWarehouseType()), WmsWarehouseInfo::getWarehouseType, bo.getWarehouseType())
|
||||
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), WmsWarehouseInfo::getActiveFlag, bo.getActiveFlag())
|
||||
.leftJoin(SysDept.class, SysDept::getDeptId, WmsWarehouseInfo::getDeptId)
|
||||
.select(SysDept::getDeptName);
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增仓库信息
|
||||
*
|
||||
* @param bo 仓库信息
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(WmsWarehouseInfoBo bo) {
|
||||
WmsWarehouseInfo add = MapstructUtils.convert(bo, WmsWarehouseInfo.class);
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
// if (flag) {
|
||||
// bo.setWarehouseId(add.getWarehouseId());
|
||||
// }
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改仓库信息
|
||||
*
|
||||
* @param bo 仓库信息
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(WmsWarehouseInfoBo bo) {
|
||||
WmsWarehouseInfo update = MapstructUtils.convert(bo, WmsWarehouseInfo.class);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 校验并批量删除仓库信息信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
/*if (isValid) {
|
||||
|
||||
}*/
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
# Tomcat
|
||||
server:
|
||||
port: 9200
|
||||
|
||||
# Spring
|
||||
spring:
|
||||
application:
|
||||
# 应用名称
|
||||
name: ruoyi-wms
|
||||
profiles:
|
||||
# 环境配置
|
||||
active: @profiles.active@
|
||||
|
||||
--- # nacos 配置
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
# nacos 服务地址
|
||||
server-addr: @nacos.server@
|
||||
username: @nacos.username@
|
||||
password: @nacos.password@
|
||||
discovery:
|
||||
# 注册组
|
||||
group: @nacos.discovery.group@
|
||||
namespace: ${spring.profiles.active}
|
||||
config:
|
||||
# 配置组
|
||||
group: @nacos.config.group@
|
||||
namespace: ${spring.profiles.active}
|
||||
config:
|
||||
import:
|
||||
- optional:nacos:application-common.yml
|
||||
- optional:nacos:datasource.yml
|
||||
- optional:nacos:${spring.application.name}.yml
|
||||
@ -0,0 +1,10 @@
|
||||
Spring Boot Version: ${spring-boot.version}
|
||||
Spring Application Name: ${spring.application.name}
|
||||
_ _
|
||||
(_) | |
|
||||
_ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___
|
||||
| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \
|
||||
| | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | |
|
||||
|_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_|
|
||||
__/ | __/ |
|
||||
|___/ |___/
|
||||
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||
<!-- 日志存放路径 -->
|
||||
<property name="log.path" value="logs/${project.artifactId}" />
|
||||
<!-- 日志输出格式 -->
|
||||
<property name="console.log.pattern"
|
||||
value="%cyan(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
|
||||
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${console.log.pattern}</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<include resource="logback-common.xml" />
|
||||
|
||||
<include resource="logback-logstash.xml" />
|
||||
|
||||
<!-- 开启 skywalking 日志收集 -->
|
||||
<include resource="logback-skylog.xml" />
|
||||
|
||||
<!--系统操作日志-->
|
||||
<root level="info">
|
||||
<appender-ref ref="console" />
|
||||
</root>
|
||||
</configuration>
|
||||
@ -0,0 +1,3 @@
|
||||
java包使用 `.` 分割 resource 目录使用 `/` 分割
|
||||
<br>
|
||||
此文件目的 防止文件夹粘连找不到 `xml` 文件
|
||||
@ -0,0 +1,14 @@
|
||||
<?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="org.dromara.wms.mapper.WmsBaseLocationMapper">
|
||||
<resultMap type="org.dromara.wms.domain.vo.WmsBaseLocationVo" id="WmsBaseLocationResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomWmsBaseLocationVoList" resultMap="WmsBaseLocationResult">
|
||||
select location_id, warehouse_id, tenant_id, location_code, active_flag, create_dept, create_by, create_time, update_by, update_time from wms_base_location t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?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="org.dromara.wms.mapper.WmsWarehouseInfoMapper">
|
||||
<resultMap type="org.dromara.wms.domain.vo.WmsWarehouseInfoVo" id="WmsWarehouseInfoResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomWmsWarehouseInfoVoList" resultMap="WmsWarehouseInfoResult">
|
||||
select warehouse_id, tenant_id, warehouse_code, warehouse_name, warehouse_type, dept_id, warehouse_manager, remark, active_flag, del_flag, create_dept, create_by, create_time, update_by, update_time from wms_warehouse_info t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,25 @@
|
||||
spring:
|
||||
datasource:
|
||||
dynamic:
|
||||
# 设置默认的数据源或者数据源组,默认值即为 master
|
||||
primary: master
|
||||
datasource:
|
||||
# 主库数据源
|
||||
master:
|
||||
type: ${spring.datasource.type}
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: ${datasource.system-master.url}
|
||||
username: ${datasource.system-master.username}
|
||||
password: ${datasource.system-master.password}
|
||||
# oracle:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: oracle.jdbc.OracleDriver
|
||||
# url: ${datasource.system-oracle.url}
|
||||
# username: ${datasource.system-oracle.username}
|
||||
# password: ${datasource.system-oracle.password}
|
||||
# postgres:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: org.postgresql.Driver
|
||||
# url: ${datasource.system-postgres.url}
|
||||
# username: ${datasource.system-postgres.username}
|
||||
# password: ${datasource.system-postgres.password}
|
||||
Loading…
Reference in New Issue