From bb13ae2dcab5d0db5aa60381fe1c009114f875a0 Mon Sep 17 00:00:00 2001 From: wanghao Date: Fri, 21 Nov 2025 15:25:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=A0=B7=E5=93=81=E5=80=9F?= =?UTF-8?q?=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsSampleDisposalRecordController.java | 116 ++++++++++++ .../controller/WmsSampleLedgerController.java | 117 ++++++++++++ .../dromara/wms/domain/ErpProjectInfo.java | 141 ++++++++++++++ .../wms/domain/WmsSampleDisposalRecord.java | 67 +++++++ .../dromara/wms/domain/WmsSampleLedger.java | 134 ++++++++++++++ .../domain/bo/WmsSampleDisposalRecordBo.java | 60 ++++++ .../wms/domain/bo/WmsSampleLedgerBo.java | 107 +++++++++++ .../domain/vo/WmsSampleDisposalRecordVo.java | 105 +++++++++++ .../wms/domain/vo/WmsSampleLedgerVo.java | 174 ++++++++++++++++++ .../wms/mapper/ErpProjectInfoMapper.java | 23 +++ .../mapper/WmsSampleDisposalRecordMapper.java | 37 ++++ .../wms/mapper/WmsSampleLedgerMapper.java | 37 ++++ .../IWmsSampleDisposalRecordService.java | 69 +++++++ .../wms/service/IWmsSampleLedgerService.java | 69 +++++++ .../WmsSampleDisposalRecordServiceImpl.java | 135 ++++++++++++++ .../impl/WmsSampleLedgerServiceImpl.java | 142 ++++++++++++++ .../wms/WmsSampleDisposalRecordMapper.xml | 14 ++ .../mapper/wms/WmsSampleLedgerMapper.xml | 14 ++ 18 files changed, 1561 insertions(+) create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleDisposalRecordController.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleLedgerController.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/ErpProjectInfo.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleDisposalRecord.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleLedger.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleDisposalRecordBo.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleLedgerBo.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleDisposalRecordVo.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleLedgerVo.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/ErpProjectInfoMapper.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleDisposalRecordMapper.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleLedgerMapper.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleDisposalRecordService.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleLedgerService.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleDisposalRecordServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleLedgerServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsSampleDisposalRecordMapper.xml create mode 100644 ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsSampleLedgerMapper.xml diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleDisposalRecordController.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleDisposalRecordController.java new file mode 100644 index 00000000..a42abeef --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleDisposalRecordController.java @@ -0,0 +1,116 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.wms.domain.vo.WmsSampleDisposalRecordVo; +import org.dromara.wms.domain.bo.WmsSampleDisposalRecordBo; +import org.dromara.wms.service.IWmsSampleDisposalRecordService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 样品处置记录 + * 前端访问路由地址为:/wms/sampleDisposalRecord + * + * @author Yinq + * @date 2025-11-21 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/sampleDisposalRecord") +public class WmsSampleDisposalRecordController extends BaseController { + + private final IWmsSampleDisposalRecordService wmsSampleDisposalRecordService; + + /** + * 查询样品处置记录列表 + */ + @SaCheckPermission("wms:sampleDisposalRecord:list") + @GetMapping("/list") + public TableDataInfo list(WmsSampleDisposalRecordBo bo, PageQuery pageQuery) { + return wmsSampleDisposalRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出样品处置记录列表 + */ + @SaCheckPermission("wms:sampleDisposalRecord:export") + @Log(title = "样品处置记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsSampleDisposalRecordBo bo, HttpServletResponse response) { + List list = wmsSampleDisposalRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "样品处置记录", WmsSampleDisposalRecordVo.class, response); + } + + /** + * 获取样品处置记录详细信息 + * + * @param sampleRecordId 主键 + */ + @SaCheckPermission("wms:sampleDisposalRecord:query") + @GetMapping("/{sampleRecordId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("sampleRecordId") Long sampleRecordId) { + return R.ok(wmsSampleDisposalRecordService.queryById(sampleRecordId)); + } + + /** + * 新增样品处置记录 + */ + @SaCheckPermission("wms:sampleDisposalRecord:add") + @Log(title = "样品处置记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsSampleDisposalRecordBo bo) { + return toAjax(wmsSampleDisposalRecordService.insertByBo(bo)); + } + + /** + * 修改样品处置记录 + */ + @SaCheckPermission("wms:sampleDisposalRecord:edit") + @Log(title = "样品处置记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsSampleDisposalRecordBo bo) { + return toAjax(wmsSampleDisposalRecordService.updateByBo(bo)); + } + + /** + * 删除样品处置记录 + * + * @param sampleRecordIds 主键串 + */ + @SaCheckPermission("wms:sampleDisposalRecord:remove") + @Log(title = "样品处置记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{sampleRecordIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("sampleRecordIds") Long[] sampleRecordIds) { + return toAjax(wmsSampleDisposalRecordService.deleteWithValidByIds(List.of(sampleRecordIds), true)); + } + + /** + * 下拉框查询样品处置记录列表 + */ + @GetMapping("/getWmsSampleDisposalRecordList") + public R> getWmsSampleDisposalRecordList(WmsSampleDisposalRecordBo bo) { + List list = wmsSampleDisposalRecordService.queryList(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 new file mode 100644 index 00000000..9ec53b56 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsSampleLedgerController.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.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 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.mybatis.core.page.TableDataInfo; + +/** + * 样品管理 + * 前端访问路由地址为:/wms/sampleLedger + * + * @author Yinq + * @date 2025-11-19 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/sampleLedger") +public class WmsSampleLedgerController extends BaseController { + + private final IWmsSampleLedgerService wmsSampleLedgerService; + + /** + * 查询样品管理列表 + */ + @SaCheckPermission("wms:sampleLedger:list") + @GetMapping("/list") + public TableDataInfo list(WmsSampleLedgerBo bo, PageQuery pageQuery) { + return wmsSampleLedgerService.queryPageList(bo, pageQuery); + } + + /** + * 导出样品管理列表 + */ + @SaCheckPermission("wms:sampleLedger:export") + @Log(title = "样品管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsSampleLedgerBo bo, HttpServletResponse response) { + List list = wmsSampleLedgerService.queryList(bo); + ExcelUtil.exportExcel(list, "样品管理", WmsSampleLedgerVo.class, response); + } + + /** + * 获取样品管理详细信息 + * + * @param sampleLedgerId 主键 + */ + @SaCheckPermission("wms:sampleLedger:query") + @GetMapping("/{sampleLedgerId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("sampleLedgerId") Long sampleLedgerId) { + return R.ok(wmsSampleLedgerService.queryById(sampleLedgerId)); + } + + /** + * 新增样品管理 + */ + @SaCheckPermission("wms:sampleLedger:add") + @Log(title = "样品管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody List bo) { + return toAjax(wmsSampleLedgerService.insertByBo(bo)); + } + + /** + * 修改样品管理 + */ + @SaCheckPermission("wms:sampleLedger:edit") + @Log(title = "样品管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsSampleLedgerBo bo) { + return toAjax(wmsSampleLedgerService.updateByBo(bo)); + } + + /** + * 删除样品管理 + * + * @param sampleLedgerIds 主键串 + */ + @SaCheckPermission("wms:sampleLedger:remove") + @Log(title = "样品管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{sampleLedgerIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("sampleLedgerIds") Long[] sampleLedgerIds) { + return toAjax(wmsSampleLedgerService.deleteWithValidByIds(List.of(sampleLedgerIds), true)); + } + + /** + * 下拉框查询样品管理列表 + */ + @GetMapping("/getWmsSampleLedgerList") + public R> getWmsSampleLedgerList(WmsSampleLedgerBo bo) { + List list = wmsSampleLedgerService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/ErpProjectInfo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/ErpProjectInfo.java new file mode 100644 index 00000000..d168fdc4 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/ErpProjectInfo.java @@ -0,0 +1,141 @@ +package org.dromara.wms.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; + +import java.io.Serial; +import java.math.BigDecimal; + +/** + * 项目信息对象 erp_project_info + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("erp_project_info") +public class ErpProjectInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 项目ID + */ + @TableId(value = "project_id", type = IdType.ASSIGN_ID) + private Long projectId; + + /** + * 有无合同(1有 2无) + */ + private String contractFlag; + + /** + * 项目编号 + */ + private String projectCode; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 业务方向(1智能轮胎 2轮胎工厂 3快递物流 4锂电 5工业软件 6智能制造 7新行业及零售) + */ + private String businessDirection; + + /** + * 项目类别(1销售(实施、物流) 2销售(备件) 3研发 4预投) + */ + private String projectCategory; + + /** + * 备件标识(1是 0否) + */ + private String spareFlag; + + /** + * 项目类型ID + */ + private Long projectTypeId; + + /** + * 付款方式 + */ + private String paymentMethod; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 项目经理 + */ + private Long managerId; + + /** + * 部门负责人 + */ + private Long chargeId; + + /** + * 分管副总 + */ + private Long deputyId; + + /** + * 抄送人员 + */ + private String peopleId; + + /** + * 金额 + */ + private BigDecimal amount; + + /** + * 项目状态(1暂存 2审批中 3可用) + */ + private String projectStatus; + + /** + * 流程状态 + */ + private String flowStatus; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 合同ID(预留) + */ + private Long contractId; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + +} 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 new file mode 100644 index 00000000..4346b816 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleDisposalRecord.java @@ -0,0 +1,67 @@ +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_sample_disposal_record + * + * @author Yinq + * @date 2025-11-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_sample_disposal_record") +public class WmsSampleDisposalRecord extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 样品处理记录ID + */ + @TableId(value = "sample_record_id", type = IdType.AUTO) + private Long sampleRecordId; + + /** + * 物料ID + */ + private Long materielId; + + /** + * 批次号 + */ + private String batchNumber; + + /** + * 处置数量 + */ + private Long disposalQty; + + /** + * 单位 + */ + private String unitName; + + /** + * 处置类型 + */ + private String disposalType; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + /** + * 样品台账ID + */ + private Long sampleLedgerId; + + +} 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 new file mode 100644 index 00000000..01a7a60e --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsSampleLedger.java @@ -0,0 +1,134 @@ +package org.dromara.wms.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; + +import java.io.Serial; + +/** + * 样品管理对象 wms_sample_ledger + * + * @author Yinq + * @date 2025-11-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_sample_ledger") +public class WmsSampleLedger extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 样品台账ID + */ + @TableId(value = "sample_ledger_id", type = IdType.AUTO) + private Long sampleLedgerId; + + /** + * 出库仓库 + */ + private Long warehouseId; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 物料ID + */ + private Long materielId; + + /** + * 批次号 + */ + private String batchNumber; + + /** + * 借出数量 + */ + private Long lentQty; + + /** + * 单位 + */ + private String unitName; + + /** + * 未处理数量 + */ + private Long returnQty; + + /** + * 客户ID + */ + private int customerId; + + /** + * 联系人 + */ + private String customerUser; + + /** + * 联系电话 + */ + private String customerNumber; + + /** + * 用途 + */ + private String lentRemark; + + /** + * 样品状态 + */ + private String sampleState; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + private String isReturn; + /** + * 库存ID + */ + private Long inventoryDetailsId; + + + /** + * 成品编码 + */ + @TableField(exist = false) + private String productCode; + + /** + * 成品名称 + */ + @TableField(exist = false) + private String productName; + @TableField(exist = false) + private String externalBrand; + /** + * 成品描述 + */ + @TableField(exist = false) + private String productSpe; + + + @TableField(exist = false) + /** + * 项目编号 + */ + private String projectCode; + + @TableField(exist = false) + /** + * 项目名称 + */ + private String projectName; + +} 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 new file mode 100644 index 00000000..4451a67c --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleDisposalRecordBo.java @@ -0,0 +1,60 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.wms.domain.WmsSampleDisposalRecord; +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_sample_disposal_record + * + * @author Yinq + * @date 2025-11-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsSampleDisposalRecord.class, reverseConvertGenerate = false) +public class WmsSampleDisposalRecordBo extends BaseEntity { + + /** + * 样品处理记录ID + */ + @NotNull(message = "样品处理记录ID不能为空", groups = { EditGroup.class }) + private Long sampleRecordId; + + /** + * 物料ID + */ + private Long materielId; + + /** + * 批次号 + */ + private String batchNumber; + + /** + * 处置数量 + */ + private Long disposalQty; + + /** + * 单位 + */ + private String unitName; + + /** + * 处置类型 + */ + private String disposalType; + + /** + * 样品台账ID + */ + 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 new file mode 100644 index 00000000..73609111 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsSampleLedgerBo.java @@ -0,0 +1,107 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.wms.domain.WmsSampleLedger; +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_sample_ledger + * + * @author Yinq + * @date 2025-11-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsSampleLedger.class, reverseConvertGenerate = false) +public class WmsSampleLedgerBo extends BaseEntity { + + /** + * 样品台账ID + */ + @NotNull(message = "样品台账ID不能为空", groups = { EditGroup.class }) + private Long sampleLedgerId; + + /** + * 出库仓库 + */ + @NotNull(message = "出库仓库不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long warehouseId; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 物料ID + */ + private Long materielId; + + /** + * 批次号 + */ + private String batchNumber; + + /** + * 借出数量 + */ + private Long lentQty; + + /** + * 单位 + */ + private String unitName; + + /** + * 未处理数量 + */ + private Long returnQty; + + /** + * 客户ID + */ + @NotBlank(message = "客户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private int customerId; + + /** + * 联系人 + */ + private String customerUser; + + /** + * 联系电话 + */ + private String customerNumber; + + /** + * 用途 + */ + private String lentRemark; + + /** + * 样品状态 + */ + private String sampleState; + private String isReturn; + /** + * 成品编码 + */ + 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 new file mode 100644 index 00000000..7f9a995b --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleDisposalRecordVo.java @@ -0,0 +1,105 @@ +package org.dromara.wms.domain.vo; + +import org.dromara.wms.domain.WmsSampleDisposalRecord; +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_sample_disposal_record + * + * @author Yinq + * @date 2025-11-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsSampleDisposalRecord.class) +public class WmsSampleDisposalRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 样品处理记录ID + */ + @ExcelProperty(value = "样品处理记录ID") + private Long sampleRecordId; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materielId; + + /** + * 批次号 + */ + @ExcelProperty(value = "批次号") + private String batchNumber; + + /** + * 处置数量 + */ + @ExcelProperty(value = "处置数量") + private Long disposalQty; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unitName; + + /** + * 处置类型 + */ + @ExcelProperty(value = "处置类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wms_disposal_type") + private String disposalType; + + /** + * 创建部门 + */ + @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; + + /** + * 样品台账ID + */ + @ExcelProperty(value = "样品台账ID") + 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 new file mode 100644 index 00000000..9520fa79 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsSampleLedgerVo.java @@ -0,0 +1,174 @@ +package org.dromara.wms.domain.vo; + +import org.dromara.wms.domain.WmsSampleLedger; +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_sample_ledger + * + * @author Yinq + * @date 2025-11-19 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsSampleLedger.class) +public class WmsSampleLedgerVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 样品台账ID + */ + // @ExcelProperty(value = "样品台账ID") + private Long sampleLedgerId; + + /** + * 出库仓库 + */ + @ExcelProperty(value = "出库仓库") + private Long warehouseId; + + /** + * 项目ID + */ + // @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 物料ID + */ + // @ExcelProperty(value = "物料ID") + private Long materielId; + + /** + * 批次号 + */ + @ExcelProperty(value = "批次号") + private String batchNumber; + + /** + * 借出数量 + */ + @ExcelProperty(value = "借出数量") + private Long lentQty; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unitName; + + /** + * 未处理数量 + */ + @ExcelProperty(value = "未处理数量") + private Long returnQty; + + /** + * 客户ID + */ + // @ExcelProperty(value = "客户ID") + private int customerId; + + /** + * 联系人 + */ + @ExcelProperty(value = "联系人") + private String customerUser; + + /** + * 联系电话 + */ + @ExcelProperty(value = "联系电话") + private String customerNumber; + + /** + * 用途 + */ + @ExcelProperty(value = "用途") + private String lentRemark; + + /** + * 样品状态 + */ + @ExcelProperty(value = "样品状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wms_sample_state") + private String sampleState; + + /** + * 创建部门 + */ + @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; + + private String isReturn; + private Long inventoryDetailsId; + + /** + * 成品编码 + */ + @ExcelProperty(value = "成品编码") + private String productCode; + + /** + * 成品名称 + */ + @ExcelProperty(value = "成品名称") + private String productName; + @ExcelProperty(value = "外部品牌") + private String externalBrand; + + /** + * 成品描述 + */ + @ExcelProperty(value = "物料描述") + private String productSpe; + + /** + * 项目编号 + */ + @ExcelProperty(value = "项目编号") + private String projectCode; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/ErpProjectInfoMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/ErpProjectInfoMapper.java new file mode 100644 index 00000000..4a1981a0 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/ErpProjectInfoMapper.java @@ -0,0 +1,23 @@ +package org.dromara.wms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Param; +import org.dromara.common.mybatis.annotation.DataColumn; +import org.dromara.common.mybatis.annotation.DataPermission; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.ErpProjectInfo; + +import java.util.List; + +/** + * 项目信息Mapper接口 + * + * @author Yinq + * @date 2025-10-24 + */ +public interface ErpProjectInfoMapper extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleDisposalRecordMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleDisposalRecordMapper.java new file mode 100644 index 00000000..bcc7f8d0 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleDisposalRecordMapper.java @@ -0,0 +1,37 @@ +package org.dromara.wms.mapper; + +import java.util.List; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.wms.domain.WmsSampleDisposalRecord; +import org.dromara.wms.domain.vo.WmsSampleDisposalRecordVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 样品处置记录Mapper接口 + * + * @author Yinq + * @date 2025-11-21 + */ +public interface WmsSampleDisposalRecordMapper extends BaseMapperPlus { + + /** + * 查询样品处置记录列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 样品处置记录集合 + */ + public Page selectCustomWmsSampleDisposalRecordVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询样品处置记录列表 + * + * @param queryWrapper 条件 + * @return 样品处置记录集合 + */ + public List selectCustomWmsSampleDisposalRecordVoList(@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 new file mode 100644 index 00000000..34d4c71e --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/mapper/WmsSampleLedgerMapper.java @@ -0,0 +1,37 @@ +package org.dromara.wms.mapper; + +import java.util.List; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.wms.domain.WmsSampleLedger; +import org.dromara.wms.domain.vo.WmsSampleLedgerVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 样品管理Mapper接口 + * + * @author Yinq + * @date 2025-11-19 + */ +public interface WmsSampleLedgerMapper extends BaseMapperPlus { + + /** + * 查询样品管理列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 样品管理集合 + */ + public Page selectCustomWmsSampleLedgerVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询样品管理列表 + * + * @param queryWrapper 条件 + * @return 样品管理集合 + */ + public List selectCustomWmsSampleLedgerVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleDisposalRecordService.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleDisposalRecordService.java new file mode 100644 index 00000000..572a3b62 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleDisposalRecordService.java @@ -0,0 +1,69 @@ +package org.dromara.wms.service; + +import org.dromara.wms.domain.WmsSampleDisposalRecord; +import org.dromara.wms.domain.vo.WmsSampleDisposalRecordVo; +import org.dromara.wms.domain.bo.WmsSampleDisposalRecordBo; +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-11-21 + */ +public interface IWmsSampleDisposalRecordService { + + /** + * 查询样品处置记录 + * + * @param sampleRecordId 主键 + * @return 样品处置记录 + */ + WmsSampleDisposalRecordVo queryById(Long sampleRecordId); + + /** + * 分页查询样品处置记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 样品处置记录分页列表 + */ + TableDataInfo queryPageList(WmsSampleDisposalRecordBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的样品处置记录列表 + * + * @param bo 查询条件 + * @return 样品处置记录列表 + */ + List queryList(WmsSampleDisposalRecordBo bo); + + /** + * 新增样品处置记录 + * + * @param bo 样品处置记录 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsSampleDisposalRecordBo bo); + + /** + * 修改样品处置记录 + * + * @param bo 样品处置记录 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsSampleDisposalRecordBo 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/IWmsSampleLedgerService.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleLedgerService.java new file mode 100644 index 00000000..0b793625 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsSampleLedgerService.java @@ -0,0 +1,69 @@ +package org.dromara.wms.service; + +import org.dromara.wms.domain.WmsSampleLedger; +import org.dromara.wms.domain.vo.WmsSampleLedgerVo; +import org.dromara.wms.domain.bo.WmsSampleLedgerBo; +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-11-19 + */ +public interface IWmsSampleLedgerService { + + /** + * 查询样品管理 + * + * @param sampleLedgerId 主键 + * @return 样品管理 + */ + WmsSampleLedgerVo queryById(Long sampleLedgerId); + + /** + * 分页查询样品管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 样品管理分页列表 + */ + TableDataInfo queryPageList(WmsSampleLedgerBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的样品管理列表 + * + * @param bo 查询条件 + * @return 样品管理列表 + */ + List queryList(WmsSampleLedgerBo bo); + + /** + * 新增样品管理 + * + * @param bo 样品管理 + * @return 是否新增成功 + */ + Boolean insertByBo(List bo); + + /** + * 修改样品管理 + * + * @param bo 样品管理 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsSampleLedgerBo 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/impl/WmsSampleDisposalRecordServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleDisposalRecordServiceImpl.java new file mode 100644 index 00000000..6139a214 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleDisposalRecordServiceImpl.java @@ -0,0 +1,135 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; + import org.dromara.common.mybatis.core.page.TableDataInfo; + import org.dromara.common.mybatis.core.page.PageQuery; + import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +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 java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 样品处置记录Service业务层处理 + * + * @author Yinq + * @date 2025-11-21 + */ +@RequiredArgsConstructor +@Service +public class WmsSampleDisposalRecordServiceImpl implements IWmsSampleDisposalRecordService { + + private final WmsSampleDisposalRecordMapper baseMapper; + + /** + * 查询样品处置记录 + * + * @param sampleRecordId 主键 + * @return 样品处置记录 + */ + @Override + 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 查询条件 + * @return 样品处置记录列表 + */ + @Override + public List queryList(WmsSampleDisposalRecordBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + 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()) +; + return lqw; + } + + /** + * 新增样品处置记录 + * + * @param bo 样品处置记录 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsSampleDisposalRecordBo bo) { + WmsSampleDisposalRecord add = MapstructUtils.convert(bo, WmsSampleDisposalRecord.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setSampleRecordId(add.getSampleRecordId()); + } + return flag; + } + + /** + * 修改样品处置记录 + * + * @param bo 样品处置记录 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsSampleDisposalRecordBo bo) { + WmsSampleDisposalRecord update = MapstructUtils.convert(bo, WmsSampleDisposalRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsSampleDisposalRecord 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/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 new file mode 100644 index 00000000..4ea6d7fc --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsSampleLedgerServiceImpl.java @@ -0,0 +1,142 @@ +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.ErpProjectInfo; +import org.dromara.wms.domain.WmsBaseProduct; +import org.dromara.wms.domain.WmsSampleLedger; +import org.dromara.wms.domain.bo.WmsSampleLedgerBo; +import org.dromara.wms.domain.vo.WmsSampleLedgerVo; +import org.dromara.wms.mapper.WmsSampleLedgerMapper; +import org.dromara.wms.service.IWmsSampleLedgerService; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 样品管理Service业务层处理 + * + * @author Yinq + * @date 2025-11-19 + */ +@RequiredArgsConstructor +@Service +public class WmsSampleLedgerServiceImpl implements IWmsSampleLedgerService { + + private final WmsSampleLedgerMapper baseMapper; + + /** + * 查询样品管理 + * + * @param sampleLedgerId 主键 + * @return 样品管理 + */ + @Override + public WmsSampleLedgerVo queryById(Long sampleLedgerId) { + return baseMapper.selectVoById(sampleLedgerId); + } + + /** + * 分页查询样品管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 样品管理分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsSampleLedgerBo 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(WmsSampleLedgerBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsSampleLedgerBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsSampleLedger.class) + .selectAll(WmsSampleLedger.class) + .eq(WmsSampleLedger::getDelFlag, "0") + .eq(bo.getWarehouseId() != null, WmsSampleLedger::getWarehouseId, bo.getWarehouseId()) + .eq(bo.getProjectId() != null, WmsSampleLedger::getProjectId, bo.getProjectId()) + .eq(bo.getMaterielId() != null, WmsSampleLedger::getMaterielId, bo.getMaterielId()) + .eq(StringUtils.isNotBlank(bo.getBatchNumber()), WmsSampleLedger::getBatchNumber, bo.getBatchNumber()) + .eq(bo.getCustomerId() != 0, WmsSampleLedger::getCustomerId, bo.getCustomerId()) + .eq(StringUtils.isNotBlank(bo.getIsReturn()), WmsSampleLedger::getIsReturn, bo.getIsReturn()) + .eq(StringUtils.isNotBlank(bo.getSampleState()), WmsSampleLedger::getSampleState, bo.getSampleState()) + .between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, + WmsSampleLedger::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime")) + .leftJoin(WmsBaseProduct.class, WmsBaseProduct::getProductId, WmsSampleLedger::getMaterielId) + .select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName, WmsBaseProduct::getProductSpe) + .like(StringUtils.isNotEmpty(bo.getProductName()), WmsBaseProduct::getProductName, bo.getProductName()) + .leftJoin(ErpProjectInfo.class, ErpProjectInfo::getProjectId, WmsSampleLedger::getProjectId) + .select(ErpProjectInfo::getProjectCode, ErpProjectInfo::getProjectName); + return lqw; + } + + /** + * 新增样品管理 + * + * @param bo 样品管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(List bo) { + boolean flag = false; + baseMapper.insert(bo); + return flag; + } + + /** + * 修改样品管理 + * + * @param bo 样品管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsSampleLedgerBo bo) { + WmsSampleLedger update = MapstructUtils.convert(bo, WmsSampleLedger.class); + validEntityBeforeSave(update); + 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 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsSampleDisposalRecordMapper.xml b/ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsSampleDisposalRecordMapper.xml new file mode 100644 index 00000000..1ffe79a4 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsSampleDisposalRecordMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsSampleLedgerMapper.xml b/ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsSampleLedgerMapper.xml new file mode 100644 index 00000000..c2dd9f18 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/resources/mapper/wms/WmsSampleLedgerMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + +