From 2283033b7102099efee9c73a1d4a467570360299 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 31 Oct 2025 17:33:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor(service):=E4=BC=98=E5=8C=96=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=9F=A5=E6=89=BE=E9=80=BB=E8=BE=91=E5=B9=B6=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E5=86=97=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 findOrCreateStock 方法返回类型为 void- 移除 warehouseId 的重复设置逻辑 - 简化库存存在时的处理流程- 删除多个与出入库及库存流水相关的实体类和业务对象- 清理无用的业务逻辑代码,提升代码可维护性 --- .../main/java/com/klp/domain/WmsStockIo.java | 55 ---------- .../java/com/klp/domain/WmsStockIoDetail.java | 74 ------------- .../main/java/com/klp/domain/WmsStockLog.java | 70 ------------ .../java/com/klp/domain/bo/WmsStockIoBo.java | 61 ----------- .../java/com/klp/domain/bo/WmsStockLogBo.java | 85 --------------- .../com/klp/domain/vo/WmsStockIoDetailVo.java | 103 ------------------ .../java/com/klp/domain/vo/WmsStockIoVo.java | 65 ----------- .../java/com/klp/domain/vo/WmsStockLogVo.java | 92 ---------------- .../impl/WmsMaterialCoilServiceImpl.java | 19 +--- 9 files changed, 6 insertions(+), 618 deletions(-) delete mode 100644 klp-wms/src/main/java/com/klp/domain/WmsStockIo.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/WmsStockIoDetail.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/WmsStockLog.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/bo/WmsStockIoBo.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/bo/WmsStockLogBo.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/vo/WmsStockIoDetailVo.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/vo/WmsStockIoVo.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/vo/WmsStockLogVo.java diff --git a/klp-wms/src/main/java/com/klp/domain/WmsStockIo.java b/klp-wms/src/main/java/com/klp/domain/WmsStockIo.java deleted file mode 100644 index 8e312fef..00000000 --- a/klp-wms/src/main/java/com/klp/domain/WmsStockIo.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.klp.domain; - -import com.baomidou.mybatisplus.annotation.*; -import com.klp.common.core.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - - -/** - * 出入库单主对象 wms_stock_io - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wms_stock_io") -public class WmsStockIo extends BaseEntity { - - private static final long serialVersionUID=1L; - - /** - * 出入库单ID - */ - @TableId(value = "stock_io_id") - private Long stockIoId; - /** - * 出入库单号 - */ - private String stockIoCode; - /** - * 类型(in=入库,out=出库) - */ - private String ioType; - /** - * 业务类型(采购、销售、退货、调拨等) - */ - private String bizType; - /** - * 单据状态(0=草稿,1=已提交,2=已审核,3=已完成) - */ - private Integer status; - /** - * 备注 - */ - private String remark; - // - private Long parentId; - /** - * 删除标志(0=正常,1=已删除) - */ - @TableLogic - private Integer delFlag; - -} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsStockIoDetail.java b/klp-wms/src/main/java/com/klp/domain/WmsStockIoDetail.java deleted file mode 100644 index 499de5d4..00000000 --- a/klp-wms/src/main/java/com/klp/domain/WmsStockIoDetail.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.klp.domain; - -import com.baomidou.mybatisplus.annotation.*; -import com.klp.common.core.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.math.BigDecimal; - -/** - * 出入库单明细对象 wms_stock_io_detail - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wms_stock_io_detail") -public class WmsStockIoDetail extends BaseEntity { - - private static final long serialVersionUID=1L; - - /** - * 明细ID - */ - @TableId(value = "detail_id") - private Long detailId; - /** - * 出入库单ID - */ - private Long stockIoId; - /** - * 库区/库位ID - */ - private Long warehouseId; - /** - * 物品类型(raw_material/product) - */ - private String itemType; - /** - * 物品ID - */ - private Long itemId; - /** - * 数量 - */ - private BigDecimal quantity; - /** - * 单位 - */ - private String unit; - /** - * 批次号 - */ - private String batchNo; - /** - * 备注 - */ - private String remark; - /** - * 删除标志(0=正常,1=已删除) - */ - @TableLogic - private Integer delFlag; - /** - * 源库位ID(移库时使用) - */ - private Long fromWarehouseId; - /** - * 记录类型,0:详情,1:扫码枪记录 - */ - private Integer recordType; - -} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsStockLog.java b/klp-wms/src/main/java/com/klp/domain/WmsStockLog.java deleted file mode 100644 index afc72833..00000000 --- a/klp-wms/src/main/java/com/klp/domain/WmsStockLog.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.klp.domain; - -import com.baomidou.mybatisplus.annotation.*; -import com.klp.common.core.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.math.BigDecimal; -import java.util.Date; - -/** - * 库存流水对象 wms_stock_log - * - * @author JR - * @date 2025-08-11 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wms_stock_log") -public class WmsStockLog extends BaseEntity { - - private static final long serialVersionUID=1L; - - /** - * 主键ID - */ - @TableId(value = "id") - private Long id; - /** - * 仓库/库区/库位ID - */ - private Long warehouseId; - /** - * 物品ID(指向原材料或产品主键) - */ - private Long itemId; - /** - * 物品类型(raw_material/product) - */ - private String itemType; - /** - * 变动数量(正=入库,负=出库) - */ - private BigDecimal changeQty; - /** - * 变动后的库存数量 - */ - private BigDecimal afterQty; - /** - * 变动类型(入库/出库等) - */ - private String changeType; - /** - * 实际库存变动时间 - */ - private Date changeTime; - /** - * 备注 - */ - private String remark; - /** - * 删除标志(0=正常,1=删除) - */ - @TableLogic - private Long delFlag; - - //批次号 - private String batchNo; - -} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsStockIoBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsStockIoBo.java deleted file mode 100644 index 1d3820f7..00000000 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsStockIoBo.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.klp.domain.bo; - -import com.klp.common.core.domain.BaseEntity; -import com.klp.common.core.validate.AddGroup; -import com.klp.common.core.validate.EditGroup; -import lombok.Data; -import lombok.EqualsAndHashCode; -import javax.validation.constraints.*; - - -/** - * 出入库单主业务对象 wms_stock_io - * - * @author Joshi - * @date 2025-07-18 - */ - -@Data -@EqualsAndHashCode(callSuper = true) -public class WmsStockIoBo extends BaseEntity { - - /** - * 出入库单ID - */ - private Long stockIoId; - - /** - * 出入库单号 - */ - @NotBlank(message = "出入库单号不能为空", groups = { AddGroup.class, EditGroup.class }) - private String stockIoCode; - - /** - * 类型(in=入库,out=出库) - */ - @NotBlank(message = "类型(in=入库,out=出库)不能为空", groups = { AddGroup.class, EditGroup.class }) - private String ioType; - - /** - * 业务类型(采购、销售、退货、调拨等) - */ - @NotBlank(message = "业务类型(采购、销售、退货、调拨等)不能为空", groups = { AddGroup.class, EditGroup.class }) - private String bizType; - - /** - * 单据状态(0=草稿,1=已提交,2=已审核,3=已完成) - */ - @NotNull(message = "单据状态(0=草稿,1=已提交,2=已审核,3=已完成)不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer status; - - /** - * 备注 - */ - private String remark; - - /** - * 父级ID(用于退库时关联原出库单) - */ - private Long parentId; - -} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsStockLogBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsStockLogBo.java deleted file mode 100644 index 24137cfa..00000000 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsStockLogBo.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.klp.domain.bo; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.klp.common.core.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.format.annotation.DateTimeFormat; - -import java.math.BigDecimal; -import java.util.Date; - -/** - * 库存流水业务对象 wms_stock_log - * - * @author JR - * @date 2025-08-11 - */ - -@Data -@EqualsAndHashCode(callSuper = true) -public class WmsStockLogBo extends BaseEntity { - - /** - * 主键ID - */ - private Long id; - - /** - * 仓库/库区/库位ID - */ - private Long warehouseId; - - /** - * 物品ID(指向原材料或产品主键) - */ - private Long itemId; - - /** - * 物品类型(raw_material/product) - */ - private String itemType; - - /** - * 变动数量(正=入库,负=出库) - */ - private BigDecimal changeQty; - - /** - * 变动后的库存数量 - */ - private BigDecimal afterQty; - - /** - * 变动类型(入库/出库等) - */ - private String changeType; - - /** - * 实际库存变动时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date changeTime; - - /** - * 备注 - */ - private String remark; - - /** - * 开始时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date startTime; - - /** - * 结束时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date endTime; - - //批次号 - private String batchNo; -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsStockIoDetailVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsStockIoDetailVo.java deleted file mode 100644 index c53a0898..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsStockIoDetailVo.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.klp.domain.vo; - -import java.math.BigDecimal; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.klp.common.annotation.ExcelDictFormat; -import com.klp.common.convert.ExcelDictConvert; -import lombok.Data; - - -/** - * 出入库单明细视图对象 wms_stock_io_detail - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@ExcelIgnoreUnannotated -public class WmsStockIoDetailVo { - - private static final long serialVersionUID = 1L; - - /** - * 明细ID - */ - @ExcelProperty(value = "明细ID") - private Long detailId; - - /** - * 出入库单ID - */ - @ExcelProperty(value = "出入库单ID") - private Long stockIoId; - - /** - * 库区/库位ID - */ - @ExcelProperty(value = "库区/库位ID") - private Long warehouseId; - - /** - * 物品类型(raw_material/product) - */ - @ExcelProperty(value = "物品类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "r=aw_material/product") - private String itemType; - - /** - * 物品ID - */ - @ExcelProperty(value = "物品ID") - private Long itemId; - - /** - * 数量 - */ - @ExcelProperty(value = "数量") - private BigDecimal quantity; - - /** - * 单位 - */ - @ExcelProperty(value = "单位") - private String unit; - - /** - * 批次号 - */ - @ExcelProperty(value = "批次号") - private String batchNo; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - /** - * 记录类型,0:详情,1:扫码枪记录 - */ - private Integer recordType; - - /** - * 库区/库位名称 - */ - private String warehouseName; - /** - * 源库区/库位名称(移库用) - */ - private String fromWarehouseName; - - /** - * 源库位ID(移库时使用) - */ - private Long fromWarehouseId; - - //主表的 数据号 类型以及业务类型 - private String stockIoCode; - private String ioType; - private String bizType; - - -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsStockIoVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsStockIoVo.java deleted file mode 100644 index 0ce81e64..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsStockIoVo.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.klp.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.klp.common.annotation.ExcelDictFormat; -import com.klp.common.convert.ExcelDictConvert; -import com.klp.common.core.domain.BaseEntity; -import lombok.Data; - - -/** - * 出入库单主视图对象 wms_stock_io - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@ExcelIgnoreUnannotated -public class WmsStockIoVo extends BaseEntity { - - private static final long serialVersionUID = 1L; - - /** - * 出入库单ID - */ - @ExcelProperty(value = "出入库单ID") - private Long stockIoId; - - /** - * 出入库单号 - */ - @ExcelProperty(value = "出入库单号") - private String stockIoCode; - - /** - * 类型(in=入库,out=出库) - */ - @ExcelProperty(value = "类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "i=n=入库,out=出库") - private String ioType; - - /** - * 业务类型(采购、销售、退货、调拨等) - */ - @ExcelProperty(value = "业务类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "采=购、销售、退货、调拨等") - private String bizType; - - /** - * 单据状态(0=草稿,1=已提交,2=已审核,3=已完成) - */ - @ExcelProperty(value = "单据状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "0==草稿,1=已提交,2=已审核,3=已完成") - private Integer status; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - private Long parentId; - - -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsStockLogVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsStockLogVo.java deleted file mode 100644 index 7d165a8e..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsStockLogVo.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.klp.domain.vo; - -import java.math.BigDecimal; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.klp.common.annotation.ExcelDictFormat; -import com.klp.common.convert.ExcelDictConvert; -import lombok.Data; - - -/** - * 库存流水视图对象 wms_stock_log - * - * @author JR - * @date 2025-08-11 - */ -@Data -@ExcelIgnoreUnannotated -public class WmsStockLogVo { - - private static final long serialVersionUID = 1L; - - /** - * 主键ID - */ - @ExcelProperty(value = "主键ID") - private Long id; - - /** - * 仓库/库区/库位ID - */ - @ExcelProperty(value = "仓库/库区/库位ID") - private Long warehouseId; - - /** - * 物品ID(指向原材料或产品主键) - */ - @ExcelProperty(value = "物品ID", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "指=向原材料或产品主键") - private Long itemId; - - /** - * 物品类型(raw_material/product) - */ - @ExcelProperty(value = "物品类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "r=aw_material/product") - private String itemType; - - /** - * 变动数量(正=入库,负=出库) - */ - @ExcelProperty(value = "变动数量", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "正==入库,负=出库") - private BigDecimal changeQty; - - /** - * 变动后的库存数量 - */ - @ExcelProperty(value = "变动后的库存数量") - private BigDecimal afterQty; - - /** - * 变动类型(入库/出库等) - */ - @ExcelProperty(value = "变动类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "入=库/出库等") - private String changeType; - - /** - * 实际库存变动时间 - */ - @ExcelProperty(value = "实际库存变动时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date changeTime; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - /** - * 仓库/库区名称 - */ - @ExcelProperty(value = "仓库/库区名称") - private String warehouseName; - - //批次号 - private String batchNo; -} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 3c9601ff..5c53a595 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -182,8 +182,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { bo.setQrcodeRecordId(qrcodeRecordId); // 2. 查找或创建stock - Long warehouseId = findOrCreateStock(bo); - bo.setWarehouseId(warehouseId); + findOrCreateStock(bo); // 3. 插入钢卷数据 @@ -256,7 +255,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { /** * 查找或创建stock */ - private Long findOrCreateStock(WmsMaterialCoilBo bo) { + private void findOrCreateStock(WmsMaterialCoilBo bo) { if (bo.getItemType() == null || bo.getItemId() == null) { throw new RuntimeException("物品类型和物品ID不能为空"); } @@ -267,26 +266,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { stockBo.setItemId(bo.getItemId()); List stockList = stockService.queryList(stockBo); - if (!stockList.isEmpty()) { - // 如果找到相同的stock,返回第一个的warehouseId - return stockList.get(0).getWarehouseId(); - } else { + if (stockList.isEmpty()) { // 如果没有找到匹配的stock,新增一条stock记录 WmsStockBo newStockBo = new WmsStockBo(); newStockBo.setItemType(bo.getItemType()); newStockBo.setItemId(bo.getItemId()); - // 如果有指定warehouseId,使用指定的;否则为null - if (bo.getWarehouseId() != null) { - newStockBo.setWarehouseId(bo.getWarehouseId()); - } + + // 调用stockService新增stock Boolean insertResult = stockService.insertByBo(newStockBo); if (!insertResult) { throw new RuntimeException("新增库存记录失败"); } - // 返回新创建的stock的warehouseId - return newStockBo.getWarehouseId(); } + // 如果已存在stock记录,则不需要重复创建 } /**