diff --git a/bateraom-cloud-admin/pom.xml b/bateraom-cloud-admin/pom.xml index 458e1249a..986f472d3 100644 --- a/bateraom-cloud-admin/pom.xml +++ b/bateraom-cloud-admin/pom.xml @@ -93,6 +93,13 @@ bateraom-cloud-workflow + + + org.dromara + bateraom-cloud-business + ${revision} + + de.codecentric spring-boot-admin-starter-client diff --git a/bateraom-cloud-modules/bateraom-cloud-business/pom.xml b/bateraom-cloud-modules/bateraom-cloud-business/pom.xml index 9acb63e07..d4f49ded5 100644 --- a/bateraom-cloud-modules/bateraom-cloud-business/pom.xml +++ b/bateraom-cloud-modules/bateraom-cloud-business/pom.xml @@ -2,12 +2,13 @@ - 4.0.0 org.dromara bateraom-cloud-modules - 5.3.1-BETA + ${revision} + 4.0.0 + bateraom-cloud-business @@ -17,4 +18,46 @@ UTF-8 + + + + org.dromara + bateraom-cloud-common-core + + + + org.dromara + bateraom-cloud-common-doc + + + + org.dromara + bateraom-cloud-common-mybatis + + + + org.dromara + bateraom-cloud-common-log + + + + org.dromara + bateraom-cloud-common-excel + + + + org.dromara + bateraom-cloud-common-tenant + + + + org.dromara + bateraom-cloud-common-web + + + org.dromara + bateraom-cloud-common-idempotent + + + diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/controller/BcCargoLocationController.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/controller/BcCargoLocationController.java new file mode 100644 index 000000000..1f2db5ff0 --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/controller/BcCargoLocationController.java @@ -0,0 +1,106 @@ +package org.dromara.business.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.business.domain.bo.BcCargoLocationBo; +import org.dromara.business.domain.vo.BcCargoLocationVo; +import org.dromara.business.service.IBcCargoLocationService; +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.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Author zengdy + * @Description TODO + * @Date 2025/3/17 15:30 + * @Version 1.0 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/data/cargoLocation") +public class BcCargoLocationController extends BaseController { + + private final IBcCargoLocationService bcCargoLocationService; + + /** + * 查询货位信息列表 + */ + @SaCheckPermission("data:cargoLocation:list") + @GetMapping("/list") + public TableDataInfo list(BcCargoLocationBo bo, PageQuery pageQuery) { + return bcCargoLocationService.queryPageList(bo, pageQuery); + } + + /** + * 导出货位信息列表 + */ + @SaCheckPermission("data:cargoLocation:export") + @Log(title = "货位信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BcCargoLocationBo bo, HttpServletResponse response) { + List list = bcCargoLocationService.queryList(bo); + ExcelUtil.exportExcel(list, "货位信息", BcCargoLocationVo.class, response); + } + + /** + * 获取货位信息详细信息 + * + * @param locationId 主键 + */ + @SaCheckPermission("data:cargoLocation:query") + @GetMapping("/{locationId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long locationId) { + return R.ok(bcCargoLocationService.queryById(locationId)); + } + + /** + * 新增货位信息 + */ + @SaCheckPermission("data:cargoLocation:add") + @Log(title = "货位信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BcCargoLocationBo bo) { + return toAjax(bcCargoLocationService.insertByBo(bo)); + } + + /** + * 修改货位信息 + */ + @SaCheckPermission("data:cargoLocation:edit") + @Log(title = "货位信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BcCargoLocationBo bo) { + return toAjax(bcCargoLocationService.updateByBo(bo)); + } + + /** + * 删除货位信息 + * + * @param locationIds 主键串 + */ + @SaCheckPermission("data:cargoLocation:remove") + @Log(title = "货位信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{locationIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] locationIds) { + return toAjax(bcCargoLocationService.deleteWithValidByIds(List.of(locationIds), true)); + } +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/controller/BcWarehouseController.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/controller/BcWarehouseController.java new file mode 100644 index 000000000..29367a9a2 --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/controller/BcWarehouseController.java @@ -0,0 +1,105 @@ +package org.dromara.business.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.business.domain.vo.BcWarehouseVo; +import org.dromara.business.domain.bo.BcWarehouseBo; +import org.dromara.business.service.IBcWarehouseService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 仓库信息 + * + * @author Lion Li + * @date 2025-03-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/data/warehouse") +public class BcWarehouseController extends BaseController { + + private final IBcWarehouseService bcWarehouseService; + + /** + * 查询仓库信息列表 + */ + @SaCheckPermission("data:warehouse:list") + @GetMapping("/list") + public TableDataInfo list(BcWarehouseBo bo, PageQuery pageQuery) { + return bcWarehouseService.queryPageList(bo, pageQuery); + } + + /** + * 导出仓库信息列表 + */ + @SaCheckPermission("data:warehouse:export") + @Log(title = "仓库信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BcWarehouseBo bo, HttpServletResponse response) { + List list = bcWarehouseService.queryList(bo); + ExcelUtil.exportExcel(list, "仓库信息", BcWarehouseVo.class, response); + } + + /** + * 获取仓库信息详细信息 + * + * @param warehouseId 主键 + */ + @SaCheckPermission("data:warehouse:query") + @GetMapping("/{warehouseId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long warehouseId) { + return R.ok(bcWarehouseService.queryById(warehouseId)); + } + + /** + * 新增仓库信息 + */ + @SaCheckPermission("data:warehouse:add") + @Log(title = "仓库信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BcWarehouseBo bo) { + return toAjax(bcWarehouseService.insertByBo(bo)); + } + + /** + * 修改仓库信息 + */ + @SaCheckPermission("data:warehouse:edit") + @Log(title = "仓库信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BcWarehouseBo bo) { + return toAjax(bcWarehouseService.updateByBo(bo)); + } + + /** + * 删除仓库信息 + * + * @param warehouseIds 主键串 + */ + @SaCheckPermission("data:warehouse:remove") + @Log(title = "仓库信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{warehouseIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] warehouseIds) { + return toAjax(bcWarehouseService.deleteWithValidByIds(List.of(warehouseIds), true)); + } +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/BcCargoLocation.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/BcCargoLocation.java new file mode 100644 index 000000000..f20400379 --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/BcCargoLocation.java @@ -0,0 +1,56 @@ +package org.dromara.business.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; + +import java.io.Serial; + +/** + * @Author zengdy + * @Description TODO + * @Date 2025/3/17 15:22 + * @Version 1.0 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bc_cargo_location") +public class BcCargoLocation extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 货位ID + */ + @TableId(value = "location_id") + private Long locationId; + + /** + * 仓库ID + */ + private Long warehouseId; + /** + * 货位名称 + */ + private String locationName; + + /** + * 显示顺序 + */ + private Long locationSort; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/BcWarehouse.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/BcWarehouse.java new file mode 100644 index 000000000..e57a09fd3 --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/BcWarehouse.java @@ -0,0 +1,51 @@ +package org.dromara.business.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 仓库信息对象 bc_warehouse + * + * @author Lion Li + * @date 2025-03-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bc_warehouse") +public class BcWarehouse extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 仓库ID + */ + @TableId(value = "warehouse_id") + private Long warehouseId; + + /** + * 仓库名称 + */ + private String warehouseName; + + /** + * 显示顺序 + */ + private Long warehouseSort; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/bo/BcCargoLocationBo.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/bo/BcCargoLocationBo.java new file mode 100644 index 000000000..a08001042 --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/bo/BcCargoLocationBo.java @@ -0,0 +1,57 @@ +package org.dromara.business.domain.bo; +import org.dromara.business.domain.BcCargoLocation; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +/** + * 货位信息业务对象 bc_cargo_location + * + * @author Lion Li + * @date 2025-03-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BcCargoLocation.class, reverseConvertGenerate = false) +public class BcCargoLocationBo extends BaseEntity { + + /** + * 货位ID + */ + @NotNull(message = "货位ID不能为空", groups = { EditGroup.class }) + private Long locationId; + + /** + * 仓库ID + */ + @NotNull(message = "仓库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long warehouseId; + + /** + * 货位名称 + */ + @NotBlank(message = "货位名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String locationName; + + /** + * 显示顺序 + */ + @NotNull(message = "显示顺序不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long locationSort; + + /** + * 状态(0正常 1停用) + */ + @NotBlank(message = "状态(0正常 1停用)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/bo/BcWarehouseBo.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/bo/BcWarehouseBo.java new file mode 100644 index 000000000..dcb4be0e1 --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/bo/BcWarehouseBo.java @@ -0,0 +1,53 @@ +package org.dromara.business.domain.bo; + +import org.dromara.business.domain.BcWarehouse; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 仓库信息业务对象 bc_warehouse + * + * @author Lion Li + * @date 2025-03-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BcWarehouse.class, reverseConvertGenerate = false) +public class BcWarehouseBo extends BaseEntity { + + /** + * 仓库ID + */ + @NotNull(message = "仓库ID不能为空", groups = { EditGroup.class }) + private Long warehouseId; + + /** + * 仓库名称 + */ + @NotBlank(message = "仓库名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String warehouseName; + + /** + * 显示顺序 + */ + @NotNull(message = "显示顺序不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long warehouseSort; + + /** + * 状态(0正常 1停用) + */ + @NotBlank(message = "状态(0正常 1停用)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/vo/BcCargoLocationVo.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/vo/BcCargoLocationVo.java new file mode 100644 index 000000000..27628d4ce --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/vo/BcCargoLocationVo.java @@ -0,0 +1,67 @@ +package org.dromara.business.domain.vo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.business.domain.BcCargoLocation; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + + +/** + * @Author zengdy + * @Description TODO + * @Date 2025/3/17 15:23 + * @Version 1.0 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BcCargoLocation.class) +public class BcCargoLocationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 货位ID + */ + @ExcelProperty(value = "货位ID") + private Long locationId; + + /** + * 仓库ID + */ + @ExcelProperty(value = "仓库ID") + private Long warehouseId; + + /** + * 货位名称 + */ + @ExcelProperty(value = "货位名称") + private String locationName; + + /** + * 显示顺序 + */ + @ExcelProperty(value = "显示顺序") + private Long locationSort; + + /** + * 状态(0正常 1停用) + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/vo/BcWarehouseVo.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/vo/BcWarehouseVo.java new file mode 100644 index 000000000..36d1ac98b --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/domain/vo/BcWarehouseVo.java @@ -0,0 +1,63 @@ +package org.dromara.business.domain.vo; + +import org.dromara.system.domain.BcWarehouse; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 仓库信息视图对象 bc_warehouse + * + * @author Lion Li + * @date 2025-03-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BcWarehouse.class) +public class BcWarehouseVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 仓库ID + */ + @ExcelProperty(value = "仓库ID") + private Long warehouseId; + + /** + * 仓库名称 + */ + @ExcelProperty(value = "仓库名称") + private String warehouseName; + + /** + * 显示顺序 + */ + @ExcelProperty(value = "显示顺序") + private Long warehouseSort; + + /** + * 状态(0正常 1停用) + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/mapper/BcCargoLocationMapper.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/mapper/BcCargoLocationMapper.java new file mode 100644 index 000000000..181a3865b --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/mapper/BcCargoLocationMapper.java @@ -0,0 +1,14 @@ +package org.dromara.business.mapper; + +import org.dromara.business.domain.BcCargoLocation; +import org.dromara.business.domain.vo.BcCargoLocationVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * @Author zengdy + * @Description TODO + * @Date 2025/3/17 15:26 + * @Version 1.0 + */ +public interface BcCargoLocationMapper extends BaseMapperPlus { +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/mapper/BcWarehouseMapper.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/mapper/BcWarehouseMapper.java new file mode 100644 index 000000000..c0bb87f6d --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/mapper/BcWarehouseMapper.java @@ -0,0 +1,15 @@ +package org.dromara.business.mapper; + +import org.dromara.business.domain.BcWarehouse; +import org.dromara.business.domain.vo.BcWarehouseVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 仓库信息Mapper接口 + * + * @author Lion Li + * @date 2025-03-17 + */ +public interface BcWarehouseMapper extends BaseMapperPlus { + +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/IBcCargoLocationService.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/IBcCargoLocationService.java new file mode 100644 index 000000000..67dd24f43 --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/IBcCargoLocationService.java @@ -0,0 +1,67 @@ +package org.dromara.business.service; + +import org.dromara.business.domain.bo.BcCargoLocationBo; +import org.dromara.business.domain.vo.BcCargoLocationVo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * @Author zengdy + * @Description 货位信息Service接口 + * @Date 2025/3/17 15:27 + * @Version 1.0 + */ +public interface IBcCargoLocationService { + /** + * 查询货位信息 + * + * @param locationId 主键 + * @return 货位信息 + */ + BcCargoLocationVo queryById(Long locationId); + + /** + * 分页查询货位信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 货位信息分页列表 + */ + TableDataInfo queryPageList(BcCargoLocationBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的货位信息列表 + * + * @param bo 查询条件 + * @return 货位信息列表 + */ + List queryList(BcCargoLocationBo bo); + + /** + * 新增货位信息 + * + * @param bo 货位信息 + * @return 是否新增成功 + */ + Boolean insertByBo(BcCargoLocationBo bo); + + /** + * 修改货位信息 + * + * @param bo 货位信息 + * @return 是否修改成功 + */ + Boolean updateByBo(BcCargoLocationBo bo); + + /** + * 校验并批量删除货位信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/IBcWarehouseService.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/IBcWarehouseService.java new file mode 100644 index 000000000..c6c594262 --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/IBcWarehouseService.java @@ -0,0 +1,68 @@ +package org.dromara.business.service; + +import org.dromara.business.domain.vo.BcWarehouseVo; +import org.dromara.business.domain.bo.BcWarehouseBo; +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 Lion Li + * @date 2025-03-17 + */ +public interface IBcWarehouseService { + + /** + * 查询仓库信息 + * + * @param warehouseId 主键 + * @return 仓库信息 + */ + BcWarehouseVo queryById(Long warehouseId); + + /** + * 分页查询仓库信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 仓库信息分页列表 + */ + TableDataInfo queryPageList(BcWarehouseBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的仓库信息列表 + * + * @param bo 查询条件 + * @return 仓库信息列表 + */ + List queryList(BcWarehouseBo bo); + + /** + * 新增仓库信息 + * + * @param bo 仓库信息 + * @return 是否新增成功 + */ + Boolean insertByBo(BcWarehouseBo bo); + + /** + * 修改仓库信息 + * + * @param bo 仓库信息 + * @return 是否修改成功 + */ + Boolean updateByBo(BcWarehouseBo bo); + + /** + * 校验并批量删除仓库信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/impl/BcCargoLocationServiceImpl.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/impl/BcCargoLocationServiceImpl.java new file mode 100644 index 000000000..0a6b8cdcb --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/impl/BcCargoLocationServiceImpl.java @@ -0,0 +1,131 @@ +package org.dromara.business.service.impl; + +import org.dromara.business.domain.BcCargoLocation; +import org.dromara.business.domain.bo.BcCargoLocationBo; +import org.dromara.business.domain.vo.BcCargoLocationVo; +import org.dromara.business.mapper.BcCargoLocationMapper; +import org.dromara.business.service.IBcCargoLocationService; +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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; +/** + * @Author zengdy + * @Description TODO + * @Date 2025/3/17 15:29 + * @Version 1.0 + */ +@RequiredArgsConstructor +@Service +public class BcCargoLocationServiceImpl implements IBcCargoLocationService { + + private final BcCargoLocationMapper baseMapper; + + /** + * 查询货位信息 + * + * @param locationId 主键 + * @return 货位信息 + */ + @Override + public BcCargoLocationVo queryById(Long locationId){ + return baseMapper.selectVoById(locationId); + } + + /** + * 分页查询货位信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 货位信息分页列表 + */ + @Override + public TableDataInfo queryPageList(BcCargoLocationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的货位信息列表 + * + * @param bo 查询条件 + * @return 货位信息列表 + */ + @Override + public List queryList(BcCargoLocationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BcCargoLocationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(BcCargoLocation::getLocationId); + lqw.like(StringUtils.isNotBlank(bo.getLocationName()), BcCargoLocation::getLocationName, bo.getLocationName()); + lqw.eq(bo.getLocationSort() != null, BcCargoLocation::getLocationSort, bo.getLocationSort()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), BcCargoLocation::getStatus, bo.getStatus()); + return lqw; + } + + /** + * 新增货位信息 + * + * @param bo 货位信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BcCargoLocationBo bo) { + BcCargoLocation add = MapstructUtils.convert(bo, BcCargoLocation.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setLocationId(add.getLocationId()); + } + return flag; + } + + /** + * 修改货位信息 + * + * @param bo 货位信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BcCargoLocationBo bo) { + BcCargoLocation update = MapstructUtils.convert(bo, BcCargoLocation.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BcCargoLocation entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除货位信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/impl/BcWarehouseServiceImpl.java b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/impl/BcWarehouseServiceImpl.java new file mode 100644 index 000000000..0266f34db --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/java/org/dromara/business/service/impl/BcWarehouseServiceImpl.java @@ -0,0 +1,132 @@ +package org.dromara.business.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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.business.domain.bo.BcWarehouseBo; +import org.dromara.business.domain.vo.BcWarehouseVo; +import org.dromara.business.domain.BcWarehouse; +import org.dromara.business.mapper.BcWarehouseMapper; +import org.dromara.business.service.IBcWarehouseService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 仓库信息Service业务层处理 + * + * @author Lion Li + * @date 2025-03-17 + */ +@RequiredArgsConstructor +@Service +public class BcWarehouseServiceImpl implements IBcWarehouseService { + + private final BcWarehouseMapper baseMapper; + + /** + * 查询仓库信息 + * + * @param warehouseId 主键 + * @return 仓库信息 + */ + @Override + public BcWarehouseVo queryById(Long warehouseId){ + return baseMapper.selectVoById(warehouseId); + } + + /** + * 分页查询仓库信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 仓库信息分页列表 + */ + @Override + public TableDataInfo queryPageList(BcWarehouseBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的仓库信息列表 + * + * @param bo 查询条件 + * @return 仓库信息列表 + */ + @Override + public List queryList(BcWarehouseBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BcWarehouseBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(BcWarehouse::getWarehouseId); + lqw.like(StringUtils.isNotBlank(bo.getWarehouseName()), BcWarehouse::getWarehouseName, bo.getWarehouseName()); + lqw.eq(bo.getWarehouseSort() != null, BcWarehouse::getWarehouseSort, bo.getWarehouseSort()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), BcWarehouse::getStatus, bo.getStatus()); + return lqw; + } + + /** + * 新增仓库信息 + * + * @param bo 仓库信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BcWarehouseBo bo) { + BcWarehouse add = MapstructUtils.convert(bo, BcWarehouse.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setWarehouseId(add.getWarehouseId()); + } + return flag; + } + + /** + * 修改仓库信息 + * + * @param bo 仓库信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BcWarehouseBo bo) { + BcWarehouse update = MapstructUtils.convert(bo, BcWarehouse.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BcWarehouse entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除仓库信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/resources/mapper/business/bcCargoLocationMapper.xml b/bateraom-cloud-modules/bateraom-cloud-business/src/main/resources/mapper/business/bcCargoLocationMapper.xml new file mode 100644 index 000000000..5aceb818a --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/resources/mapper/business/bcCargoLocationMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/resources/mapper/business/bcWarehouseMapper.xml b/bateraom-cloud-modules/bateraom-cloud-business/src/main/resources/mapper/business/bcWarehouseMapper.xml new file mode 100644 index 000000000..fdd79196e --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/resources/mapper/business/bcWarehouseMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/bateraom-cloud-modules/bateraom-cloud-business/src/main/resources/mapper/package-info.md b/bateraom-cloud-modules/bateraom-cloud-business/src/main/resources/mapper/package-info.md new file mode 100644 index 000000000..c938b1e50 --- /dev/null +++ b/bateraom-cloud-modules/bateraom-cloud-business/src/main/resources/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/pom.xml b/pom.xml index a1f6a7085..3ae9a1f97 100644 --- a/pom.xml +++ b/pom.xml @@ -355,6 +355,13 @@ ${revision}
+ + + org.dromara + bateraom-cloud-business + ${revision} + + org.dromara diff --git a/script/sql/ry_vue_5.X.sql b/script/sql/ry_vue_5.X.sql index c17e4a01a..a11fb6ccb 100644 --- a/script/sql/ry_vue_5.X.sql +++ b/script/sql/ry_vue_5.X.sql @@ -961,3 +961,41 @@ INSERT INTO test_tree VALUES (10, '000000', 7, 108, 3, '子节点66', 0, 103, sy INSERT INTO test_tree VALUES (11, '000000', 7, 108, 3, '子节点77', 0, 103, sysdate(), 1, NULL, NULL, 0); INSERT INTO test_tree VALUES (12, '000000', 10, 108, 3, '子节点88', 0, 103, sysdate(), 1, NULL, NULL, 0); INSERT INTO test_tree VALUES (13, '000000', 10, 108, 3, '子节点99', 0, 103, sysdate(), 1, NULL, NULL, 0); + + + + +-- add +-- 仓库 +CREATE TABLE `bc_warehouse` ( + `warehouse_id` bigint NOT NULL COMMENT '仓库ID', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `warehouse_name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '仓库名称', + `warehouse_sort` int NOT NULL COMMENT '显示顺序', + `status` char(1) COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态(0正常 1停用)', + `create_dept` bigint DEFAULT NULL COMMENT '创建部门', + `create_by` bigint DEFAULT NULL COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_by` bigint DEFAULT NULL COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`warehouse_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='仓库信息表'; + + +-- 货位 +CREATE TABLE `bc_cargo_location` ( + `location_id` bigint NOT NULL COMMENT '货位ID', + `warehouse_id` bigint NOT NULL COMMENT '仓库ID', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `location_name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '货位名称', + `location_sort` int NOT NULL COMMENT '显示顺序', + `status` char(1) COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态(0正常 1停用)', + `create_dept` bigint DEFAULT NULL COMMENT '创建部门', + `create_by` bigint DEFAULT NULL COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_by` bigint DEFAULT NULL COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`location_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='货位信息表';