From e049e70371cb05a9ed622fb42864c8154d7c2e4c Mon Sep 17 00:00:00 2001 From: wanghao Date: Tue, 2 Dec 2025 08:54:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E7=89=A9=E6=96=99=E8=B0=83?= =?UTF-8?q?=E6=8B=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsMaterialTransferRecordController.java | 117 +++++++++++++ .../WmsOutStockDetailsController.java | 2 +- .../controller/WmsSampleLedgerController.java | 39 +++-- .../wms/domain/WmsMaterialTransferRecord.java | 89 ++++++++++ .../wms/domain/WmsSampleDisposalRecord.java | 19 +- .../dromara/wms/domain/WmsSampleLedger.java | 4 +- .../bo/WmsMaterialTransferRecordBo.java | 77 ++++++++ .../domain/bo/WmsSampleDisposalRecordBo.java | 4 +- .../wms/domain/bo/WmsSampleLedgerBo.java | 13 +- .../vo/WmsMaterialTransferRecordVo.java | 146 ++++++++++++++++ .../wms/domain/vo/WmsOutStockDetailsVo.java | 36 ++-- .../domain/vo/WmsSampleDisposalRecordVo.java | 12 +- .../wms/domain/vo/WmsSampleLedgerVo.java | 4 +- .../wms/mapper/WmsInventoryDetailsMapper.java | 3 + .../WmsMaterialTransferRecordMapper.java | 39 +++++ .../wms/mapper/WmsSampleLedgerMapper.java | 2 + .../IWmsMaterialTransferRecordService.java | 69 ++++++++ .../service/IWmsOutStockDetailsService.java | 2 + .../wms/service/IWmsSampleLedgerService.java | 2 +- .../WmsMaterialTransferRecordServiceImpl.java | 164 ++++++++++++++++++ .../impl/WmsOutStockDetailsServiceImpl.java | 35 ++-- .../WmsSampleDisposalRecordServiceImpl.java | 63 +++---- .../impl/WmsSampleLedgerServiceImpl.java | 21 +-- .../wms/WmsMaterialTransferRecordMapper.xml | 14 ++ 24 files changed, 861 insertions(+), 115 deletions(-) create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsMaterialTransferRecordController.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsMaterialTransferRecord.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsMaterialTransferRecordBo.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsMaterialTransferRecordVo.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsMaterialTransferRecordMapper.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsMaterialTransferRecordService.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsMaterialTransferRecordServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsMaterialTransferRecordMapper.xml diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsMaterialTransferRecordController.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsMaterialTransferRecordController.java new file mode 100644 index 00000000..76cf4cd1 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsMaterialTransferRecordController.java @@ -0,0 +1,117 @@ +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.dromara.wms.domain.WmsMaterialTransferRecord; +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.WmsMaterialTransferRecordVo; +import org.dromara.wms.domain.bo.WmsMaterialTransferRecordBo; +import org.dromara.wms.service.IWmsMaterialTransferRecordService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 物料调拨 + * 前端访问路由地址为:/wms/materialTransferRecord + * + * @author Yinq + * @date 2025-12-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/materialTransferRecord") +public class WmsMaterialTransferRecordController extends BaseController { + + private final IWmsMaterialTransferRecordService wmsMaterialTransferRecordService; + + /** + * 查询物料调拨列表 + */ + @SaCheckPermission("wms:materialTransferRecord:list") + @GetMapping("/list") + public TableDataInfo list(WmsMaterialTransferRecordBo bo, PageQuery pageQuery) { + return wmsMaterialTransferRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出物料调拨列表 + */ + @SaCheckPermission("wms:materialTransferRecord:export") + @Log(title = "物料调拨", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsMaterialTransferRecordBo bo, HttpServletResponse response) { + List list = wmsMaterialTransferRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "物料调拨", WmsMaterialTransferRecordVo.class, response); + } + + /** + * 获取物料调拨详细信息 + * + * @param transferRecordId 主键 + */ + @SaCheckPermission("wms:materialTransferRecord:query") + @GetMapping("/{transferRecordId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("transferRecordId") Long transferRecordId) { + return R.ok(wmsMaterialTransferRecordService.queryById(transferRecordId)); + } + + /** + * 新增物料调拨 + */ + @SaCheckPermission("wms:materialTransferRecord:add") + @Log(title = "物料调拨", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody List bo) { + return toAjax(wmsMaterialTransferRecordService.insertByBo(bo)); + } + + /** + * 修改物料调拨 + */ + @SaCheckPermission("wms:materialTransferRecord:edit") + @Log(title = "物料调拨", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsMaterialTransferRecordBo bo) { + return toAjax(wmsMaterialTransferRecordService.updateByBo(bo)); + } + + /** + * 删除物料调拨 + * + * @param transferRecordIds 主键串 + */ + @SaCheckPermission("wms:materialTransferRecord:remove") + @Log(title = "物料调拨", businessType = BusinessType.DELETE) + @DeleteMapping("/{transferRecordIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("transferRecordIds") Long[] transferRecordIds) { + return toAjax(wmsMaterialTransferRecordService.deleteWithValidByIds(List.of(transferRecordIds), true)); + } + + /** + * 下拉框查询物料调拨列表 + */ + @GetMapping("/getWmsMaterialTransferRecordList") + public R> getWmsMaterialTransferRecordList(WmsMaterialTransferRecordBo bo) { + List list = wmsMaterialTransferRecordService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsOutStockDetailsController.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsOutStockDetailsController.java index 64ddf0a8..fd55ca70 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsOutStockDetailsController.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsOutStockDetailsController.java @@ -109,7 +109,7 @@ public class WmsOutStockDetailsController extends BaseController { */ @GetMapping("/getWmsOutStockDetailsList") public R> getWmsOutStockDetailsList(WmsOutStockDetailsBo bo) { - List list = wmsOutStockDetailsService.queryList(bo); + List list = wmsOutStockDetailsService.queryListE(bo); return R.ok(list); } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleLedgerController.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleLedgerController.java index 9ec53b56..f0f65be6 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleLedgerController.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleLedgerController.java @@ -1,27 +1,28 @@ 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.dromara.wms.domain.WmsSampleLedger; -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 jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; 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.WmsSampleLedgerVo; -import org.dromara.wms.domain.bo.WmsSampleLedgerBo; -import org.dromara.wms.service.IWmsSampleLedgerService; +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.dromara.wms.domain.WmsSampleLedger; +import org.dromara.wms.domain.bo.WmsSampleLedgerBo; +import org.dromara.wms.domain.vo.WmsSampleLedgerVo; +import org.dromara.wms.service.IWmsSampleLedgerService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 样品管理 @@ -66,7 +67,7 @@ public class WmsSampleLedgerController extends BaseController { @SaCheckPermission("wms:sampleLedger:query") @GetMapping("/{sampleLedgerId}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable("sampleLedgerId") Long sampleLedgerId) { + @PathVariable("sampleLedgerId") Long sampleLedgerId) { return R.ok(wmsSampleLedgerService.queryById(sampleLedgerId)); } @@ -77,7 +78,7 @@ public class WmsSampleLedgerController extends BaseController { @Log(title = "样品管理", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody List bo) { + public R add(@Validated(AddGroup.class) @RequestBody List bo) { return toAjax(wmsSampleLedgerService.insertByBo(bo)); } @@ -102,7 +103,7 @@ public class WmsSampleLedgerController extends BaseController { @DeleteMapping("/{sampleLedgerIds}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable("sampleLedgerIds") Long[] sampleLedgerIds) { - return toAjax(wmsSampleLedgerService.deleteWithValidByIds(List.of(sampleLedgerIds), true)); + return toAjax(wmsSampleLedgerService.deleteWithValidByIds(List.of(sampleLedgerIds))); } /** diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsMaterialTransferRecord.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsMaterialTransferRecord.java new file mode 100644 index 00000000..00449b31 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsMaterialTransferRecord.java @@ -0,0 +1,89 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 物料调拨对象 wms_material_transfer_record + * + * @author Yinq + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_material_transfer_record") +public class WmsMaterialTransferRecord extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 调拨记录ID + */ + @TableId(value = "transfer_record_id", type = IdType.AUTO) + private Long transferRecordId; + + /** + * 物料ID + */ + private Long materielId; + + /** + * 批次号 + */ + private String batchNumber; + + /** + * 调拨数量 + */ + private Double transferQty; + + /** + * 单位 + */ + private String unitName; + + /** + * 调出仓库 + */ + private Long transferOutStoreId; + + /** + * 调入仓库 + */ + private Long transferInStoreId; + + /** + * 库存id + */ + private Long inventoryDetailsId; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + /** + * 成品编码 + */ + @TableField(exist = false) + private String productCode; + + /** + * 成品名称 + */ + @TableField(exist = false) + private String productName; + @TableField(exist = false) + private String externalBrand; + @TableField(exist = false) + /** + * 成品描述 + */ + private String productSpe; + +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleDisposalRecord.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleDisposalRecord.java index 4346b816..d7b480df 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleDisposalRecord.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleDisposalRecord.java @@ -40,7 +40,7 @@ public class WmsSampleDisposalRecord extends TenantEntity { /** * 处置数量 */ - private Long disposalQty; + private Double disposalQty; /** * 单位 @@ -63,5 +63,22 @@ public class WmsSampleDisposalRecord extends TenantEntity { */ private Long sampleLedgerId; + /** + * 成品编码 + */ + @TableField(exist = false) + private String productCode; + /** + * 成品名称 + */ + @TableField(exist = false) + private String productName; + @TableField(exist = false) + private String externalBrand; + /** + * 成品描述 + */ + @TableField(exist = false) + private String productSpe; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleLedger.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleLedger.java index 01a7a60e..45a56525 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleLedger.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleLedger.java @@ -50,7 +50,7 @@ public class WmsSampleLedger extends TenantEntity { /** * 借出数量 */ - private Long lentQty; + private Double lentQty; /** * 单位 @@ -60,7 +60,7 @@ public class WmsSampleLedger extends TenantEntity { /** * 未处理数量 */ - private Long returnQty; + private Double returnQty; /** * 客户ID diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsMaterialTransferRecordBo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsMaterialTransferRecordBo.java new file mode 100644 index 00000000..c320c6f1 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsMaterialTransferRecordBo.java @@ -0,0 +1,77 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.wms.domain.WmsMaterialTransferRecord; +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.*; + +/** + * 物料调拨业务对象 wms_material_transfer_record + * + * @author Yinq + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsMaterialTransferRecord.class, reverseConvertGenerate = false) +public class WmsMaterialTransferRecordBo extends BaseEntity { + private Long transferRecordId; + /** + * 物料ID + */ + private Long materielId; + + /** + * 批次号 + */ + private String batchNumber; + + /** + * 调拨数量 + */ + private Double transferQty; + + /** + * 单位 + */ + private String unitName; + + /** + * 调出仓库 + */ + @NotNull(message = "调出仓库不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long transferOutStoreId; + + /** + * 调入仓库 + */ + @NotNull(message = "调入仓库不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long transferInStoreId; + + /** + * 库存id + */ + private Long inventoryDetailsId; + + /** + * 成品编码 + */ + private String productCode; + + /** + * 成品名称 + */ + private String productName; + private String externalBrand; + + /** + * 成品描述 + */ + private String productSpe; + + +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleDisposalRecordBo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleDisposalRecordBo.java index 4451a67c..af82676b 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleDisposalRecordBo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleDisposalRecordBo.java @@ -39,7 +39,7 @@ public class WmsSampleDisposalRecordBo extends BaseEntity { /** * 处置数量 */ - private Long disposalQty; + private Double disposalQty; /** * 单位 @@ -57,4 +57,6 @@ public class WmsSampleDisposalRecordBo extends BaseEntity { private Long sampleLedgerId; + + } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleLedgerBo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleLedgerBo.java index 73609111..aa9e0537 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleLedgerBo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleLedgerBo.java @@ -29,7 +29,7 @@ public class WmsSampleLedgerBo extends BaseEntity { /** * 出库仓库 */ - @NotNull(message = "出库仓库不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotNull(message = "出库仓库不能为空", groups = { AddGroup.class, EditGroup.class }) private Long warehouseId; /** @@ -50,7 +50,7 @@ public class WmsSampleLedgerBo extends BaseEntity { /** * 借出数量 */ - private Long lentQty; + private Double lentQty; /** * 单位 @@ -60,12 +60,12 @@ public class WmsSampleLedgerBo extends BaseEntity { /** * 未处理数量 */ - private Long returnQty; + private Double returnQty; /** * 客户ID */ - @NotBlank(message = "客户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotBlank(message = "客户ID不能为空", groups = { AddGroup.class, EditGroup.class }) private int customerId; /** @@ -104,4 +104,9 @@ public class WmsSampleLedgerBo extends BaseEntity { */ private String productSpe; + /** + * 处置数量 + */ + private Double disposalQty; + } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsMaterialTransferRecordVo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsMaterialTransferRecordVo.java new file mode 100644 index 00000000..3a293370 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsMaterialTransferRecordVo.java @@ -0,0 +1,146 @@ +package org.dromara.wms.domain.vo; + +import org.dromara.wms.domain.WmsMaterialTransferRecord; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.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; + + + +/** + * 物料调拨视图对象 wms_material_transfer_record + * + * @author Yinq + * @date 2025-12-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsMaterialTransferRecord.class) +public class WmsMaterialTransferRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 调拨记录ID + */ + @ExcelProperty(value = "调拨记录ID") + private Long transferRecordId; + + /** + * 物料ID + */ + // @ExcelProperty(value = "物料ID") + private Long materielId; + /** + * 成品编码 + */ + @ExcelProperty(value = "成品编码") + private String productCode; + + /** + * 成品名称 + */ + @ExcelProperty(value = "成品名称") + private String productName; + /** + * 外部品牌 + */ + @ExcelProperty(value = "外部品牌") + private String externalBrand; + + /** + * 成品描述 + */ + @ExcelProperty(value = "成品描述") + private String productSpe; + + + /** + * 批次号 + */ + @ExcelProperty(value = "批次号") + private String batchNumber; + + /** + * 调拨数量 + */ + @ExcelProperty(value = "调拨数量") + private Double transferQty; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unitName; + + /** + * 调出仓库 + */ + @ExcelProperty(value = "调出仓库") + private Long transferOutStoreId; + + /** + * 调入仓库 + */ + @ExcelProperty(value = "调入仓库") + private Long transferInStoreId; + + /** + * 库存id + */ + @ExcelProperty(value = "库存id") + private Long inventoryDetailsId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @ExcelProperty(value = "删除标志", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=代表存在,1=代表删除") + private String delFlag; + + /** + * 创建部门 + */ + @ExcelProperty(value = "创建部门") + private Long createDept; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private Long createBy; + + /** + * 调拨时间 + */ + @ExcelProperty(value = "调拨时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private Long updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutStockDetailsVo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutStockDetailsVo.java index 120df08a..8eb1bc37 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutStockDetailsVo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutStockDetailsVo.java @@ -31,7 +31,6 @@ public class WmsOutStockDetailsVo implements Serializable { /** * 出库单明细ID */ - @ExcelProperty(value = "出库单明细ID") private Long outStockDetailsId; /** @@ -49,9 +48,25 @@ public class WmsOutStockDetailsVo implements Serializable { /** * 物料ID */ - @ExcelProperty(value = "物料ID") private Long materielId; + /** + * 成品编码 + */ + @ExcelProperty(value = "物料编码") + private String productCode; + /** + * 成品名称 + */ + @ExcelProperty(value = "物料名称") + private String productName; + private String externalBrand; + + /** + * 成品描述 + */ + @ExcelProperty(value = "物料描述") + private String productSpe; /** * 批次号 */ @@ -92,13 +107,11 @@ public class WmsOutStockDetailsVo implements Serializable { /** * 创建部门 */ - @ExcelProperty(value = "创建部门") private Long createDept; /** * 创建人 */ - @ExcelProperty(value = "创建人") private Long createBy; /** @@ -110,7 +123,6 @@ public class WmsOutStockDetailsVo implements Serializable { /** * 更新人 */ - @ExcelProperty(value = "更新人") private Long updateBy; /** @@ -142,20 +154,6 @@ public class WmsOutStockDetailsVo implements Serializable { */ @ExcelProperty(value = "库存ID") private Long inventoryDetailsId; - /** - * 成品编码 - */ - private String productCode; - /** - * 成品名称 - */ - private String productName; - private String externalBrand; - - /** - * 成品描述 - */ - private String productSpe; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleDisposalRecordVo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleDisposalRecordVo.java index 7f9a995b..4c653c49 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleDisposalRecordVo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleDisposalRecordVo.java @@ -37,9 +37,14 @@ public class WmsSampleDisposalRecordVo implements Serializable { /** * 物料ID */ - @ExcelProperty(value = "物料ID") - private Long materielId; + private Long materielId; + @ExcelProperty(value = "物料编码") + private String productCode; + @ExcelProperty(value = "物料名称") + private String productName; + @ExcelProperty(value = "物料描述") + private String productSpe; /** * 批次号 */ @@ -50,7 +55,7 @@ public class WmsSampleDisposalRecordVo implements Serializable { * 处置数量 */ @ExcelProperty(value = "处置数量") - private Long disposalQty; + private Double disposalQty; /** * 单位 @@ -102,4 +107,5 @@ public class WmsSampleDisposalRecordVo implements Serializable { private Long sampleLedgerId; + } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleLedgerVo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleLedgerVo.java index 9520fa79..844789cd 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleLedgerVo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleLedgerVo.java @@ -62,7 +62,7 @@ public class WmsSampleLedgerVo implements Serializable { * 借出数量 */ @ExcelProperty(value = "借出数量") - private Long lentQty; + private Double lentQty; /** * 单位 @@ -74,7 +74,7 @@ public class WmsSampleLedgerVo implements Serializable { * 未处理数量 */ @ExcelProperty(value = "未处理数量") - private Long returnQty; + private Double returnQty; /** * 客户ID diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryDetailsMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryDetailsMapper.java index 74efe365..21398ffa 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryDetailsMapper.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryDetailsMapper.java @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param; import org.dromara.wms.domain.WmsInventoryDetails; import org.dromara.wms.domain.vo.WmsInventoryDetailsVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.springframework.stereotype.Repository; /** * 库存明细Mapper接口 @@ -15,6 +16,8 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * @author Yinq * @date 2025-10-27 */ + +@Repository public interface WmsInventoryDetailsMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsMaterialTransferRecordMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsMaterialTransferRecordMapper.java new file mode 100644 index 00000000..f3897fd7 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsMaterialTransferRecordMapper.java @@ -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.WmsMaterialTransferRecord; +import org.dromara.wms.domain.vo.WmsMaterialTransferRecordVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.springframework.stereotype.Repository; + +/** + * 物料调拨Mapper接口 + * + * @author Yinq + * @date 2025-12-01 + */ +@Repository +public interface WmsMaterialTransferRecordMapper extends BaseMapperPlus { + + /** + * 查询物料调拨列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 物料调拨集合 + */ + public Page selectCustomWmsMaterialTransferRecordVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询物料调拨列表 + * + * @param queryWrapper 条件 + * @return 物料调拨集合 + */ + public List selectCustomWmsMaterialTransferRecordVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleLedgerMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleLedgerMapper.java index 34d4c71e..46c79760 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleLedgerMapper.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleLedgerMapper.java @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param; import org.dromara.wms.domain.WmsSampleLedger; import org.dromara.wms.domain.vo.WmsSampleLedgerVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.springframework.stereotype.Repository; /** * 样品管理Mapper接口 @@ -15,6 +16,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * @author Yinq * @date 2025-11-19 */ +@Repository public interface WmsSampleLedgerMapper extends BaseMapperPlus { /** diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsMaterialTransferRecordService.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsMaterialTransferRecordService.java new file mode 100644 index 00000000..1d52d03d --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsMaterialTransferRecordService.java @@ -0,0 +1,69 @@ +package org.dromara.wms.service; + +import org.dromara.wms.domain.WmsMaterialTransferRecord; +import org.dromara.wms.domain.vo.WmsMaterialTransferRecordVo; +import org.dromara.wms.domain.bo.WmsMaterialTransferRecordBo; +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-12-01 + */ +public interface IWmsMaterialTransferRecordService { + + /** + * 查询物料调拨 + * + * @param transferRecordId 主键 + * @return 物料调拨 + */ + WmsMaterialTransferRecordVo queryById(Long transferRecordId); + + /** + * 分页查询物料调拨列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物料调拨分页列表 + */ + TableDataInfo queryPageList(WmsMaterialTransferRecordBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的物料调拨列表 + * + * @param bo 查询条件 + * @return 物料调拨列表 + */ + List queryList(WmsMaterialTransferRecordBo bo); + + /** + * 新增物料调拨 + * + * @param bo 物料调拨 + * @return 是否新增成功 + */ + Boolean insertByBo(List bo); + + /** + * 修改物料调拨 + * + * @param bo 物料调拨 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsMaterialTransferRecordBo bo); + + /** + * 校验并批量删除物料调拨信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsOutStockDetailsService.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsOutStockDetailsService.java index eea85bb6..7c05056c 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsOutStockDetailsService.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsOutStockDetailsService.java @@ -66,4 +66,6 @@ public interface IWmsOutStockDetailsService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List queryListE(WmsOutStockDetailsBo bo); } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleLedgerService.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleLedgerService.java index 0b793625..2d712d9c 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleLedgerService.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleLedgerService.java @@ -65,5 +65,5 @@ public interface IWmsSampleLedgerService { * @param isValid 是否进行有效性校验 * @return 是否删除成功 */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + Boolean deleteWithValidByIds(Collection ids); } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsMaterialTransferRecordServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsMaterialTransferRecordServiceImpl.java new file mode 100644 index 00000000..adef713f --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsMaterialTransferRecordServiceImpl.java @@ -0,0 +1,164 @@ +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.WmsBaseProduct; +import org.dromara.wms.domain.WmsInventoryDetails; +import org.dromara.wms.domain.WmsMaterialTransferRecord; +import org.dromara.wms.domain.bo.WmsMaterialTransferRecordBo; +import org.dromara.wms.domain.vo.WmsMaterialTransferRecordVo; +import org.dromara.wms.mapper.WmsInventoryDetailsMapper; +import org.dromara.wms.mapper.WmsMaterialTransferRecordMapper; +import org.dromara.wms.service.IWmsMaterialTransferRecordService; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 物料调拨Service业务层处理 + * + * @author Yinq + * @date 2025-12-01 + */ +@RequiredArgsConstructor +@Service +public class WmsMaterialTransferRecordServiceImpl implements IWmsMaterialTransferRecordService { + + private final WmsMaterialTransferRecordMapper baseMapper; + + private final WmsInventoryDetailsMapper wmsInventoryDetailsMapper; + /** + * 查询物料调拨 + * + * @param transferRecordId 主键 + * @return 物料调拨 + */ + @Override + public WmsMaterialTransferRecordVo queryById(Long transferRecordId) { + return baseMapper.selectVoById(transferRecordId); + } + + /** + * 分页查询物料调拨列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物料调拨分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsMaterialTransferRecordBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的物料调拨列表 + * + * @param bo 查询条件 + * @return 物料调拨列表 + */ + @Override + public List queryList(WmsMaterialTransferRecordBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsMaterialTransferRecordBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsMaterialTransferRecord.class) + .selectAll(WmsMaterialTransferRecord.class) + .eq(WmsMaterialTransferRecord::getDelFlag, "0") + .eq(bo.getMaterielId() != null, WmsMaterialTransferRecord::getMaterielId, bo.getMaterielId()) + .eq(StringUtils.isNotBlank(bo.getBatchNumber()), WmsMaterialTransferRecord::getBatchNumber, bo.getBatchNumber()) + .eq(bo.getTransferOutStoreId() != null, WmsMaterialTransferRecord::getTransferOutStoreId, bo.getTransferOutStoreId()) + .eq(bo.getTransferInStoreId() != null, WmsMaterialTransferRecord::getTransferInStoreId, bo.getTransferInStoreId()) + .leftJoin(WmsBaseProduct.class, WmsBaseProduct::getProductId, WmsMaterialTransferRecord::getMaterielId) + .select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName, WmsBaseProduct::getExternalBrand, WmsBaseProduct::getProductSpe) + .like(bo.getProductCode() != null, WmsBaseProduct::getProductCode, bo.getProductCode()) + .like(bo.getProductName() != null, WmsBaseProduct::getProductName, bo.getProductName()); + return lqw; + } + + /** + * 新增物料调拨 + * + * @param bo 物料调拨 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(List bo) { + baseMapper.insert(bo); + // 修改库存 + bo.forEach(record -> { + // Long transferOutStoreId = record.getTransferOutStoreId(); + + Long inventoryDetailsId = record.getInventoryDetailsId(); // 库存ID + Double transferQty = record.getTransferQty(); // 调拨数量 + // 库存验证 + WmsInventoryDetails inventoryDetails = wmsInventoryDetailsMapper.selectById( inventoryDetailsId); + double lossQty = inventoryDetails.getInventoryAmount() - transferQty; + if (lossQty < 0) { + throw new IllegalArgumentException("库存不足"); + } + // 出库库存减少 + WmsInventoryDetails outDetails = new WmsInventoryDetails(); + outDetails.setInventoryDetailsId(inventoryDetailsId); + outDetails.setInventoryAmount(lossQty); + if (lossQty == 0) { + outDetails.setDelFlag("1"); + } + wmsInventoryDetailsMapper.updateById(outDetails); + // 入库库存增加 + WmsInventoryDetails inDetails = new WmsInventoryDetails(); + inDetails.setInventoryAmount(transferQty);// 入库数量 + inDetails.setWarehouseId(record.getTransferInStoreId()); //仓库 + inDetails.setInventoryDetailsId(null); + inDetails.setMaterielId(inventoryDetails.getMaterielId()); + inDetails.setUnitPrice(inventoryDetails.getUnitPrice()); + + wmsInventoryDetailsMapper.insert(inDetails); + + + + + }); + + return true; + } + + /** + * 修改物料调拨 + * + * @param bo 物料调拨 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsMaterialTransferRecordBo bo) { + WmsMaterialTransferRecord update = MapstructUtils.convert(bo, WmsMaterialTransferRecord.class); + return baseMapper.updateById(update) > 0; + } + + + + /** + * 校验并批量删除物料调拨信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsOutStockDetailsServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsOutStockDetailsServiceImpl.java index f96b6068..16fbabf0 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsOutStockDetailsServiceImpl.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsOutStockDetailsServiceImpl.java @@ -68,13 +68,18 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService MPJLambdaWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } + @Override + public List queryListE(WmsOutStockDetailsBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapperE(bo); + return baseMapper.selectVoList(lqw); + } private MPJLambdaWrapper buildQueryWrapper(WmsOutStockDetailsBo bo) { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsOutStockDetails.class) .selectAll(WmsOutStockDetails.class) .leftJoin(WmsBaseProduct.class, WmsBaseProduct::getProductId, WmsOutStockDetails::getMaterielId) - .select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName,WmsBaseProduct::getExternalBrand,WmsBaseProduct::getProductSpe) + .select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName, WmsBaseProduct::getExternalBrand, WmsBaseProduct::getProductSpe) // .eq(WmsOutStockDetails::getDelFlag, "0") .eq(bo.getWarehouseId() != null, WmsOutStockDetails::getWarehouseId, bo.getWarehouseId()) .eq(bo.getMaterielId() != null, WmsOutStockDetails::getMaterielId, bo.getMaterielId()) @@ -84,6 +89,14 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService .eq(bo.getOutStockBillId() != null, WmsOutStockDetails::getOutStockBillId, bo.getOutStockBillId()); return lqw; } + private MPJLambdaWrapper buildQueryWrapperE(WmsOutStockDetailsBo bo) { + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsOutStockDetails.class) + .selectAll(WmsOutStockDetails.class) + .leftJoin(WmsBaseProduct.class, WmsBaseProduct::getProductId, WmsOutStockDetails::getMaterielId) + .select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName, WmsBaseProduct::getExternalBrand, WmsBaseProduct::getProductSpe) + .eq(bo.getOutStockBillId() != null, WmsOutStockDetails::getOutStockBillId, bo.getOutStockBillId()); + return lqw; + } /** * 新增出库单明细 @@ -94,12 +107,7 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService @Override public Boolean insertByBo(WmsOutStockDetailsBo bo) { WmsOutStockDetails add = MapstructUtils.convert(bo, WmsOutStockDetails.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setOutStockDetailsId(add.getOutStockDetailsId()); - } - return flag; + return baseMapper.insert(add) > 0; } /** @@ -111,16 +119,11 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService @Override public Boolean updateByBo(WmsOutStockDetailsBo bo) { WmsOutStockDetails update = MapstructUtils.convert(bo, WmsOutStockDetails.class); - validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; } - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WmsOutStockDetails entity) { - //TODO 做一些数据校验,如唯一约束 - } + /** * 校验并批量删除出库单明细信息 @@ -131,9 +134,7 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 - } + return baseMapper.deleteByIds(ids) > 0; } } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleDisposalRecordServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleDisposalRecordServiceImpl.java index 6139a214..74857844 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleDisposalRecordServiceImpl.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleDisposalRecordServiceImpl.java @@ -1,24 +1,24 @@ 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.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.springframework.stereotype.Service; +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.WmsBaseProduct; +import org.dromara.wms.domain.WmsSampleDisposalRecord; import org.dromara.wms.domain.bo.WmsSampleDisposalRecordBo; import org.dromara.wms.domain.vo.WmsSampleDisposalRecordVo; -import org.dromara.wms.domain.WmsSampleDisposalRecord; import org.dromara.wms.mapper.WmsSampleDisposalRecordMapper; import org.dromara.wms.service.IWmsSampleDisposalRecordService; +import org.springframework.stereotype.Service; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 样品处置记录Service业务层处理 @@ -39,23 +39,23 @@ public class WmsSampleDisposalRecordServiceImpl implements IWmsSampleDisposalRec * @return 样品处置记录 */ @Override - public WmsSampleDisposalRecordVo queryById(Long sampleRecordId){ + public WmsSampleDisposalRecordVo queryById(Long sampleRecordId) { return baseMapper.selectVoById(sampleRecordId); } - /** - * 分页查询样品处置记录列表 - * - * @param bo 查询条件 - * @param pageQuery 分页参数 - * @return 样品处置记录分页列表 - */ - @Override - public TableDataInfo queryPageList(WmsSampleDisposalRecordBo bo, PageQuery pageQuery) { - MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } + /** + * 分页查询样品处置记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 样品处置记录分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsSampleDisposalRecordBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } /** * 查询符合条件的样品处置记录列表 @@ -72,12 +72,13 @@ public class WmsSampleDisposalRecordServiceImpl implements IWmsSampleDisposalRec private MPJLambdaWrapper buildQueryWrapper(WmsSampleDisposalRecordBo bo) { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsSampleDisposalRecord.class) - .selectAll(WmsSampleDisposalRecord.class) - .eq(WmsSampleDisposalRecord::getDelFlag, "0") - .eq(StringUtils.isNotBlank(bo.getBatchNumber()), WmsSampleDisposalRecord::getBatchNumber, bo.getBatchNumber()) - .eq(StringUtils.isNotBlank(bo.getDisposalType()), WmsSampleDisposalRecord::getDisposalType, bo.getDisposalType()) - .eq(bo.getSampleLedgerId() != null, WmsSampleDisposalRecord::getSampleLedgerId, bo.getSampleLedgerId()) -; + .selectAll(WmsSampleDisposalRecord.class) + .eq(WmsSampleDisposalRecord::getDelFlag, "0") + .eq(StringUtils.isNotBlank(bo.getBatchNumber()), WmsSampleDisposalRecord::getBatchNumber, bo.getBatchNumber()) + .eq(StringUtils.isNotBlank(bo.getDisposalType()), WmsSampleDisposalRecord::getDisposalType, bo.getDisposalType()) + .eq(bo.getSampleLedgerId() != null, WmsSampleDisposalRecord::getSampleLedgerId, bo.getSampleLedgerId()) + .leftJoin(WmsBaseProduct.class, WmsBaseProduct::getProductId, WmsSampleDisposalRecord::getMaterielId) + .select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName, WmsBaseProduct::getProductSpe); return lqw; } @@ -114,7 +115,7 @@ public class WmsSampleDisposalRecordServiceImpl implements IWmsSampleDisposalRec /** * 保存前的数据校验 */ - private void validEntityBeforeSave(WmsSampleDisposalRecord entity){ + private void validEntityBeforeSave(WmsSampleDisposalRecord entity) { //TODO 做一些数据校验,如唯一约束 } @@ -127,7 +128,7 @@ public class WmsSampleDisposalRecordServiceImpl implements IWmsSampleDisposalRec */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleLedgerServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleLedgerServiceImpl.java index 4ea6d7fc..cbb189c5 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleLedgerServiceImpl.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleLedgerServiceImpl.java @@ -100,9 +100,8 @@ public class WmsSampleLedgerServiceImpl implements IWmsSampleLedgerService { */ @Override public Boolean insertByBo(List bo) { - boolean flag = false; baseMapper.insert(bo); - return flag; + return true; } /** @@ -114,29 +113,23 @@ public class WmsSampleLedgerServiceImpl implements IWmsSampleLedgerService { @Override public Boolean updateByBo(WmsSampleLedgerBo bo) { WmsSampleLedger update = MapstructUtils.convert(bo, WmsSampleLedger.class); - validEntityBeforeSave(update); + Double disposalQty = bo.getDisposalQty(); + double obj = bo.getReturnQty() - disposalQty; + update.setReturnQty(obj); + update.setSampleState(obj == 0 ? "2" : "1"); return baseMapper.updateById(update) > 0; } - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WmsSampleLedger entity) { - //TODO 做一些数据校验,如唯一约束 - } /** * 校验并批量删除样品管理信息 * * @param ids 待删除的主键集合 - * @param isValid 是否进行有效性校验 * @return 是否删除成功 */ @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 - } + public Boolean deleteWithValidByIds(Collection ids) { + return baseMapper.deleteByIds(ids) > 0; } } diff --git a/ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsMaterialTransferRecordMapper.xml b/ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsMaterialTransferRecordMapper.xml new file mode 100644 index 00000000..54c5474f --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsMaterialTransferRecordMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + +