From d40d81aa421c7cdb959556fedffef71fc62cde80 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期三, 16 四月 2025 10:07:22 +0800
Subject: [PATCH] 完成备件模块
---
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareController.java | 8
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareBo.java | 7
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareInoutdtBo.java | 77 +++++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java | 105 +++++++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareServiceImpl.java | 21 +
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareInoutBo.java | 7
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareInoutdtVo.java | 97 ++++++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareMapper.java | 9
eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsSpareInoutdtMapper.xml | 15 +
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsSpareInoutdt.java | 72 +++++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareVo.java | 5
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareInoutdtService.java | 68 ++++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutdtServiceImpl.java | 138 +++++++++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareInoutdtMapper.java | 24 +
eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsSpareMapper.xml | 10
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareInoutVo.java | 6
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareInoutdtController.java | 105 +++++++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareInoutController.java | 1
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareInoutService.java | 4
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareInoutMapper.java | 8
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareService.java | 12
21 files changed, 789 insertions(+), 10 deletions(-)
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareController.java
index e030bc3..24401fd 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareController.java
@@ -6,6 +6,8 @@
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.eims.domain.vo.EimsSpareInoutVo;
+import org.dromara.eims.domain.vo.EimsSpareInoutdtVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -45,6 +47,12 @@
return eimsSpareService.queryPageList(bo, pageQuery);
}
+ @SaCheckPermission("eims:spare:list")
+ @GetMapping("/listInout")
+ public TableDataInfo<EimsSpareInoutdtVo> listInout(EimsSpareBo bo, PageQuery pageQuery) {
+ return eimsSpareService.querySpareInoutList(bo, pageQuery);
+ }
+
/**
* 瀵煎嚭澶囦欢鍙拌处鍒楄〃
*/
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareInoutController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareInoutController.java
index f0f8c34..aebd6ff 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareInoutController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareInoutController.java
@@ -45,6 +45,7 @@
return eimsSpareInoutService.queryPageList(bo, pageQuery);
}
+
/**
* 瀵煎嚭澶囦欢鍑哄叆搴撳垪琛�
*/
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareInoutdtController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareInoutdtController.java
new file mode 100644
index 0000000..8bf9fb0
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsSpareInoutdtController.java
@@ -0,0 +1,105 @@
+package org.dromara.eims.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.eims.domain.vo.EimsSpareInoutdtVo;
+import org.dromara.eims.domain.bo.EimsSpareInoutdtBo;
+import org.dromara.eims.service.IEimsSpareInoutdtService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 澶囦欢鍑哄叆搴撴槑缁�
+ *
+ * @author zhuguifei
+ * @date 2025-04-11
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/eims/spareInoutdt")
+public class EimsSpareInoutdtController extends BaseController {
+
+ private final IEimsSpareInoutdtService eimsSpareInoutdtService;
+
+ /**
+ * 鏌ヨ澶囦欢鍑哄叆搴撴槑缁嗗垪琛�
+ */
+ @SaCheckPermission("eims:spareInoutdt:list")
+ @GetMapping("/list")
+ public TableDataInfo<EimsSpareInoutdtVo> list(EimsSpareInoutdtBo bo, PageQuery pageQuery) {
+ return eimsSpareInoutdtService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 瀵煎嚭澶囦欢鍑哄叆搴撴槑缁嗗垪琛�
+ */
+ @SaCheckPermission("eims:spareInoutdt:export")
+ @Log(title = "澶囦欢鍑哄叆搴撴槑缁�", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(EimsSpareInoutdtBo bo, HttpServletResponse response) {
+ List<EimsSpareInoutdtVo> list = eimsSpareInoutdtService.queryList(bo);
+ ExcelUtil.exportExcel(list, "澶囦欢鍑哄叆搴撴槑缁�", EimsSpareInoutdtVo.class, response);
+ }
+
+ /**
+ * 鑾峰彇澶囦欢鍑哄叆搴撴槑缁嗚缁嗕俊鎭�
+ *
+ * @param id 涓婚敭
+ */
+ @SaCheckPermission("eims:spareInoutdt:query")
+ @GetMapping("/{id}")
+ public R<EimsSpareInoutdtVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long id) {
+ return R.ok(eimsSpareInoutdtService.queryById(id));
+ }
+
+ /**
+ * 鏂板澶囦欢鍑哄叆搴撴槑缁�
+ */
+ @SaCheckPermission("eims:spareInoutdt:add")
+ @Log(title = "澶囦欢鍑哄叆搴撴槑缁�", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsSpareInoutdtBo bo) {
+ return toAjax(eimsSpareInoutdtService.insertByBo(bo));
+ }
+
+ /**
+ * 淇敼澶囦欢鍑哄叆搴撴槑缁�
+ */
+ @SaCheckPermission("eims:spareInoutdt:edit")
+ @Log(title = "澶囦欢鍑哄叆搴撴槑缁�", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsSpareInoutdtBo bo) {
+ return toAjax(eimsSpareInoutdtService.updateByBo(bo));
+ }
+
+ /**
+ * 鍒犻櫎澶囦欢鍑哄叆搴撴槑缁�
+ *
+ * @param ids 涓婚敭涓�
+ */
+ @SaCheckPermission("eims:spareInoutdt:remove")
+ @Log(title = "澶囦欢鍑哄叆搴撴槑缁�", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long[] ids) {
+ return toAjax(eimsSpareInoutdtService.deleteWithValidByIds(List.of(ids), true));
+ }
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsSpareInoutdt.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsSpareInoutdt.java
new file mode 100644
index 0000000..aa09db2
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsSpareInoutdt.java
@@ -0,0 +1,72 @@
+package org.dromara.eims.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.math.BigDecimal;
+
+/**
+ * 澶囦欢鍑哄叆搴撴槑缁嗗璞� eims_spare_inoutdt
+ *
+ * @author zhuguifei
+ * @date 2025-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("eims_spare_inoutdt")
+public class EimsSpareInoutdt extends BaseEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @TableId(value = "id")
+ private Long id;
+
+ /**
+ * 鍑哄簱鍗曟垨鍏ュ簱鍗昳d
+ */
+ private Long inoutId;
+
+ /**
+ * 澶囦欢id
+ */
+ private Long spareId;
+
+ /**
+ * 涔嬪墠搴撳瓨
+ */
+ private Long beforeStock;
+
+ /**
+ * 瀹為檯搴撳瓨
+ */
+ private Long actualStock;
+
+ /**
+ * 鏁伴噺
+ */
+ private Long quantity;
+
+ /**
+ * 鍗曚环
+ */
+ private BigDecimal unitPrice;
+
+ /**
+ * 閲戦
+ */
+ private BigDecimal amount;
+
+ /**
+ * 澶囨敞
+ */
+ private String remark;
+
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareBo.java
index daed6f9..f46d491 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareBo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareBo.java
@@ -114,4 +114,11 @@
private String remark;
+
+ /**
+ * 鍑哄簱鍏ュ簱鏁伴噺
+ */
+ private Long quantity;
+
+
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareInoutBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareInoutBo.java
index 4af19e2..0ab9a03 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareInoutBo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareInoutBo.java
@@ -9,7 +9,10 @@
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
+import java.util.List;
+
import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.eims.domain.vo.EimsSpareVo;
/**
* 澶囦欢鍑哄叆搴撲笟鍔″璞� eims_spare_inout
@@ -69,5 +72,9 @@
*/
private String remark;
+ //鍑哄叆搴撻�夋嫨鐨勫浠舵槑缁�
+ private List<EimsSpareBo> spareList;
+
+
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareInoutdtBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareInoutdtBo.java
new file mode 100644
index 0000000..5f62b5a
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsSpareInoutdtBo.java
@@ -0,0 +1,77 @@
+package org.dromara.eims.domain.bo;
+
+import org.dromara.eims.domain.EimsSpareInoutdt;
+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.*;
+
+/**
+ * 澶囦欢鍑哄叆搴撴槑缁嗕笟鍔″璞� eims_spare_inoutdt
+ *
+ * @author zhuguifei
+ * @date 2025-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = EimsSpareInoutdt.class, reverseConvertGenerate = false)
+public class EimsSpareInoutdtBo extends BaseEntity {
+
+ /**
+ *
+ */
+ @NotNull(message = "涓嶈兘涓虹┖", groups = { EditGroup.class })
+ private Long id;
+
+ /**
+ * 鍑哄簱鍗曟垨鍏ュ簱鍗昳d
+ */
+ @NotNull(message = "鍑哄簱鍗曟垨鍏ュ簱鍗昳d涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long inoutId;
+
+ /**
+ * 澶囦欢id
+ */
+ @NotNull(message = "澶囦欢id涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long spareId;
+
+ /**
+ * 涔嬪墠搴撳瓨
+ */
+ @NotNull(message = "涔嬪墠搴撳瓨涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long beforeStock;
+
+ /**
+ * 瀹為檯搴撳瓨
+ */
+ @NotNull(message = "瀹為檯搴撳瓨涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long actualStock;
+
+ /**
+ * 鏁伴噺
+ */
+ @NotNull(message = "鏁伴噺涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long quantity;
+
+ /**
+ * 鍗曚环
+ */
+ @NotNull(message = "鍗曚环涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long unitPrice;
+
+ /**
+ * 閲戦
+ */
+ @NotNull(message = "閲戦涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long amount;
+
+ /**
+ * 澶囨敞
+ */
+ private String remark;
+
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareInoutVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareInoutVo.java
index 12c8120..226eb4a 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareInoutVo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareInoutVo.java
@@ -11,11 +11,12 @@
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
+import org.dromara.eims.domain.bo.EimsSpareBo;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
-
+import java.util.List;
/**
@@ -87,5 +88,6 @@
@ExcelProperty(value = "澶囨敞")
private String remark;
-
+ //鍑哄叆搴撻�夋嫨鐨勫浠舵槑缁�
+ private List<EimsSpareVo> spareList;
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareInoutdtVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareInoutdtVo.java
new file mode 100644
index 0000000..a4203cf
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareInoutdtVo.java
@@ -0,0 +1,97 @@
+package org.dromara.eims.domain.vo;
+
+import org.dromara.eims.domain.EimsSpareInoutdt;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+
+/**
+ * 澶囦欢鍑哄叆搴撴槑缁嗚鍥惧璞� eims_spare_inoutdt
+ *
+ * @author zhuguifei
+ * @date 2025-04-11
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = EimsSpareInoutdt.class)
+public class EimsSpareInoutdtVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ExcelProperty(value = "")
+ private Long id;
+
+ /**
+ * 鍑哄簱鍗曟垨鍏ュ簱鍗昳d
+ */
+ @ExcelProperty(value = "鍑哄簱鍗曟垨鍏ュ簱鍗昳d")
+ private Long inoutId;
+
+ /**
+ * 澶囦欢id
+ */
+ @ExcelProperty(value = "澶囦欢id")
+ private Long spareId;
+
+ /**
+ * 涔嬪墠搴撳瓨
+ */
+ @ExcelProperty(value = "涔嬪墠搴撳瓨")
+ private Long beforeStock;
+
+ /**
+ * 瀹為檯搴撳瓨
+ */
+ @ExcelProperty(value = "瀹為檯搴撳瓨")
+ private Long actualStock;
+
+ /**
+ * 鏁伴噺
+ */
+ @ExcelProperty(value = "鏁伴噺")
+ private Long quantity;
+
+ /**
+ * 鍗曚环
+ */
+ @ExcelProperty(value = "鍗曚环")
+ private BigDecimal unitPrice;
+
+ /**
+ * 閲戦
+ */
+ @ExcelProperty(value = "閲戦")
+ private BigDecimal amount;
+
+ /**
+ * 澶囨敞
+ */
+ @ExcelProperty(value = "澶囨敞")
+ private String remark;
+
+ //澶囦欢
+ private String spareName;
+ private String spareCode;
+ private String modelNo;
+ //鍑哄叆搴撳崟
+ private String orderCode;
+ private Date orderTime;
+ private String type;
+ private String unit;
+
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareVo.java
index 2a47785..81f9561 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareVo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsSpareVo.java
@@ -142,6 +142,9 @@
*/
@ExcelProperty(value = "澶囨敞")
private String remark;
-
+ /**
+ * 鍑哄簱鍏ュ簱鏁伴噺
+ */
+ private Long quantity;
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareInoutMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareInoutMapper.java
index bffe366..b032996 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareInoutMapper.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareInoutMapper.java
@@ -1,8 +1,15 @@
package org.dromara.eims.mapper;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
import org.dromara.eims.domain.EimsSpareInout;
+import org.dromara.eims.domain.EimsSpareInoutdt;
import org.dromara.eims.domain.vo.EimsSpareInoutVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.eims.domain.vo.EimsSpareInoutdtVo;
/**
* 澶囦欢鍑哄叆搴揗apper鎺ュ彛
@@ -12,4 +19,5 @@
*/
public interface EimsSpareInoutMapper extends BaseMapperPlus<EimsSpareInout, EimsSpareInoutVo> {
+
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareInoutdtMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareInoutdtMapper.java
new file mode 100644
index 0000000..16b0e7e
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareInoutdtMapper.java
@@ -0,0 +1,24 @@
+package org.dromara.eims.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import org.dromara.eims.domain.EimsMaintSt;
+import org.dromara.eims.domain.EimsSpareInoutdt;
+import org.dromara.eims.domain.vo.EimsMaintStVo;
+import org.dromara.eims.domain.vo.EimsSpareInoutdtVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 澶囦欢鍑哄叆搴撴槑缁哅apper鎺ュ彛
+ *
+ * @author zhuguifei
+ * @date 2025-04-11
+ */
+public interface EimsSpareInoutdtMapper extends BaseMapperPlus<EimsSpareInoutdt, EimsSpareInoutdtVo> {
+
+ Page<EimsSpareInoutdtVo> selectSpareInoutdtList(@Param("page") Page<EimsSpareInoutdtVo> page, @Param(Constants.WRAPPER) Wrapper<EimsSpareInoutdt> queryWrapper);
+}
+
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareMapper.java
index 23538f2..fe03121 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareMapper.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsSpareMapper.java
@@ -1,6 +1,13 @@
package org.dromara.eims.mapper;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
import org.dromara.eims.domain.EimsSpare;
+import org.dromara.eims.domain.EimsSpareInout;
+import org.dromara.eims.domain.vo.EimsSpareInoutVo;
+import org.dromara.eims.domain.vo.EimsSpareInoutdtVo;
import org.dromara.eims.domain.vo.EimsSpareVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@@ -11,5 +18,5 @@
* @date 2025-03-20
*/
public interface EimsSpareMapper extends BaseMapperPlus<EimsSpare, EimsSpareVo> {
-
+ Page<EimsSpareInoutdtVo> selectSpareInoutList(@Param("page") Page<EimsSpareInoutdtVo> page, @Param(Constants.WRAPPER) Wrapper<EimsSpare> queryWrapper);
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareInoutService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareInoutService.java
index f16e11a..9dd4ab4 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareInoutService.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareInoutService.java
@@ -65,4 +65,8 @@
* @return 鏄惁鍒犻櫎鎴愬姛
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+
+
+
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareInoutdtService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareInoutdtService.java
new file mode 100644
index 0000000..6b9b36d
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareInoutdtService.java
@@ -0,0 +1,68 @@
+package org.dromara.eims.service;
+
+import org.dromara.eims.domain.vo.EimsSpareInoutdtVo;
+import org.dromara.eims.domain.bo.EimsSpareInoutdtBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 澶囦欢鍑哄叆搴撴槑缁哠ervice鎺ュ彛
+ *
+ * @author zhuguifei
+ * @date 2025-04-11
+ */
+public interface IEimsSpareInoutdtService {
+
+ /**
+ * 鏌ヨ澶囦欢鍑哄叆搴撴槑缁�
+ *
+ * @param id 涓婚敭
+ * @return 澶囦欢鍑哄叆搴撴槑缁�
+ */
+ EimsSpareInoutdtVo queryById(Long id);
+
+ /**
+ * 鍒嗛〉鏌ヨ澶囦欢鍑哄叆搴撴槑缁嗗垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @param pageQuery 鍒嗛〉鍙傛暟
+ * @return 澶囦欢鍑哄叆搴撴槑缁嗗垎椤靛垪琛�
+ */
+ TableDataInfo<EimsSpareInoutdtVo> queryPageList(EimsSpareInoutdtBo bo, PageQuery pageQuery);
+
+ /**
+ * 鏌ヨ绗﹀悎鏉′欢鐨勫浠跺嚭鍏ュ簱鏄庣粏鍒楄〃
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @return 澶囦欢鍑哄叆搴撴槑缁嗗垪琛�
+ */
+ List<EimsSpareInoutdtVo> queryList(EimsSpareInoutdtBo bo);
+
+ /**
+ * 鏂板澶囦欢鍑哄叆搴撴槑缁�
+ *
+ * @param bo 澶囦欢鍑哄叆搴撴槑缁�
+ * @return 鏄惁鏂板鎴愬姛
+ */
+ Boolean insertByBo(EimsSpareInoutdtBo bo);
+
+ /**
+ * 淇敼澶囦欢鍑哄叆搴撴槑缁�
+ *
+ * @param bo 澶囦欢鍑哄叆搴撴槑缁�
+ * @return 鏄惁淇敼鎴愬姛
+ */
+ Boolean updateByBo(EimsSpareInoutdtBo bo);
+
+ /**
+ * 鏍¢獙骞舵壒閲忓垹闄ゅ浠跺嚭鍏ュ簱鏄庣粏淇℃伅
+ *
+ * @param ids 寰呭垹闄ょ殑涓婚敭闆嗗悎
+ * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠�
+ * @return 鏄惁鍒犻櫎鎴愬姛
+ */
+ Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareService.java
index 0569fbf..e61c8db 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareService.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsSpareService.java
@@ -1,5 +1,8 @@
package org.dromara.eims.service;
+import org.dromara.eims.domain.bo.EimsSpareInoutBo;
+import org.dromara.eims.domain.vo.EimsSpareInoutVo;
+import org.dromara.eims.domain.vo.EimsSpareInoutdtVo;
import org.dromara.eims.domain.vo.EimsSpareVo;
import org.dromara.eims.domain.bo.EimsSpareBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -65,4 +68,13 @@
* @return 鏄惁鍒犻櫎鎴愬姛
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+
+ /**
+ * 鏍规嵁澶囦欢鏌ヨ鍑哄叆搴撴槑缁�
+ * @param bo
+ * @param pageQuery
+ * @return
+ */
+ TableDataInfo<EimsSpareInoutdtVo> querySpareInoutList(EimsSpareBo bo, PageQuery pageQuery);
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java
index d58fa5b..334eb44 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java
@@ -1,5 +1,7 @@
package org.dromara.eims.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.dromara.common.core.constant.DictConstants;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -8,16 +10,24 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
+import org.dromara.eims.domain.EimsSpare;
+import org.dromara.eims.domain.EimsSpareInoutdt;
+import org.dromara.eims.domain.bo.EimsSpareBo;
+import org.dromara.eims.domain.vo.EimsSpareInoutdtVo;
+import org.dromara.eims.domain.vo.EimsSpareVo;
+import org.dromara.eims.mapper.EimsSpareInoutdtMapper;
+import org.dromara.eims.mapper.EimsSpareMapper;
import org.springframework.stereotype.Service;
import org.dromara.eims.domain.bo.EimsSpareInoutBo;
import org.dromara.eims.domain.vo.EimsSpareInoutVo;
import org.dromara.eims.domain.EimsSpareInout;
import org.dromara.eims.mapper.EimsSpareInoutMapper;
import org.dromara.eims.service.IEimsSpareInoutService;
+import org.springframework.transaction.annotation.Transactional;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* 澶囦欢鍑哄叆搴揝ervice涓氬姟灞傚鐞�
@@ -30,6 +40,8 @@
public class EimsSpareInoutServiceImpl implements IEimsSpareInoutService {
private final EimsSpareInoutMapper baseMapper;
+ private final EimsSpareInoutdtMapper inoutdtMapper;
+ private final EimsSpareMapper spareMapper;
/**
* 鏌ヨ澶囦欢鍑哄叆搴�
@@ -39,7 +51,33 @@
*/
@Override
public EimsSpareInoutVo queryById(Long id){
- return baseMapper.selectVoById(id);
+ EimsSpareInoutVo eimsSpareInoutVo = baseMapper.selectVoById(id);
+ QueryWrapper<EimsSpareInoutdt> queryWrapper = new QueryWrapper<>();
+ queryWrapper.lambda().eq(EimsSpareInoutdt::getInoutId, id);
+ List<EimsSpareInoutdtVo> dtVos = inoutdtMapper.selectVoList(queryWrapper);
+ if(!dtVos.isEmpty()){
+ Map<Long, Long> map = dtVos.stream()
+ .collect(Collectors.toMap(
+ EimsSpareInoutdtVo::getSpareId,
+ EimsSpareInoutdtVo::getQuantity
+ ));
+ List<Long> spareIdList = dtVos.stream()
+ .map(EimsSpareInoutdtVo::getSpareId) // 鑾峰彇 spareId 瀛楁
+ .toList();
+
+ List<EimsSpareVo> eimsSpareListVos = spareMapper.selectVoBatchIds(spareIdList);
+
+ for (EimsSpareVo spareVo : eimsSpareListVos) {
+ // 鍋囪 quantity 鐨勫�兼槸涓�涓浐瀹氬�硷紙渚嬪 10锛�
+ spareVo.setQuantity(map.get(spareVo.getId()));
+ }
+
+ eimsSpareInoutVo.setSpareList(eimsSpareListVos);
+ }
+
+
+
+ return eimsSpareInoutVo;
}
/**
@@ -55,6 +93,7 @@
Page<EimsSpareInoutVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
+
/**
* 鏌ヨ绗﹀悎鏉′欢鐨勫浠跺嚭鍏ュ簱鍒楄〃
@@ -81,19 +120,73 @@
return lqw;
}
+
/**
* 鏂板澶囦欢鍑哄叆搴�
*
* @param bo 澶囦欢鍑哄叆搴�
* @return 鏄惁鏂板鎴愬姛
*/
+ @Transactional(rollbackFor = Exception.class)
@Override
- public Boolean insertByBo(EimsSpareInoutBo bo) {
+ public synchronized Boolean insertByBo(EimsSpareInoutBo bo) {
EimsSpareInout add = MapstructUtils.convert(bo, EimsSpareInout.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
+ }
+ //鍏ュ簱锛嬪簱瀛� 鍑哄簱-搴撳瓨 锛堥粯璁ゅ叆搴擄級
+ int OperationType;
+
+ //鍑哄簱
+ if(bo.getType().equals(DictConstants.SPARE_INOUT_TYPE_DETAIL.CK)){
+ OperationType = -1;
+ } else {
+ OperationType = 1;
+ }
+
+ List<EimsSpareBo> spareList = Optional.ofNullable(bo.getSpareList()).orElse(new ArrayList<>());
+ // 鎻掑叆鍑哄簱鏄庣粏
+ List<EimsSpareInoutdt> dtList = spareList.stream()
+ .map(eimsSpareBo -> {
+ EimsSpareInoutdt dt = new EimsSpareInoutdt();
+ dt.setInoutId(add.getId());
+ dt.setSpareId(eimsSpareBo.getId());
+ dt.setBeforeStock(eimsSpareBo.getActualStock());
+ // 娉ㄦ剰鍏ュ簱鍑哄簱
+ dt.setActualStock(eimsSpareBo.getActualStock() + (eimsSpareBo.getQuantity() * OperationType));
+ dt.setQuantity(eimsSpareBo.getQuantity());
+
+ // 璁剧疆鍗曚环鍜岄噾棰�
+ Optional.ofNullable(eimsSpareBo.getReferPrice()).ifPresent(referPrice -> {
+ dt.setUnitPrice(referPrice);
+ dt.setAmount(referPrice.multiply(BigDecimal.valueOf(eimsSpareBo.getQuantity())));
+ });
+
+ return dt;
+ })
+ .toList();
+
+ // 鎵归噺鎻掑叆鏁版嵁
+ if (!dtList.isEmpty()) {
+ inoutdtMapper.insertBatch(dtList);
+ }
+
+ // 鏇存柊澶囦欢鐨勫簱瀛�
+ List<EimsSpare> updateSpareList = spareList.stream().map(spareBo -> {
+ EimsSpare spare = new EimsSpare();
+ spare.setId(spareBo.getId());
+ spare.setActualStock(spareBo.getActualStock() + (spareBo.getQuantity() * OperationType));
+ // 璁剧疆鍗曚环鍜岄噾棰�
+ Optional.ofNullable(spareBo.getReferPrice()).ifPresent(referPrice -> {
+ spare.setStockAmount(referPrice.multiply(BigDecimal.valueOf(spare.getActualStock())));
+ });
+ return spare;
+ }).toList();
+
+ if (!updateSpareList.isEmpty()) {
+ spareMapper.updateBatchById(updateSpareList);
}
return flag;
}
@@ -132,4 +225,6 @@
}
return baseMapper.deleteByIds(ids) > 0;
}
+
+
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutdtServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutdtServiceImpl.java
new file mode 100644
index 0000000..a9f1a04
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutdtServiceImpl.java
@@ -0,0 +1,138 @@
+package org.dromara.eims.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.eims.domain.vo.EimsMaintStVo;
+import org.springframework.stereotype.Service;
+import org.dromara.eims.domain.bo.EimsSpareInoutdtBo;
+import org.dromara.eims.domain.vo.EimsSpareInoutdtVo;
+import org.dromara.eims.domain.EimsSpareInoutdt;
+import org.dromara.eims.mapper.EimsSpareInoutdtMapper;
+import org.dromara.eims.service.IEimsSpareInoutdtService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 澶囦欢鍑哄叆搴撴槑缁哠ervice涓氬姟灞傚鐞�
+ *
+ * @author zhuguifei
+ * @date 2025-04-11
+ */
+@RequiredArgsConstructor
+@Service
+public class EimsSpareInoutdtServiceImpl implements IEimsSpareInoutdtService {
+
+ private final EimsSpareInoutdtMapper baseMapper;
+
+ /**
+ * 鏌ヨ澶囦欢鍑哄叆搴撴槑缁�
+ *
+ * @param id 涓婚敭
+ * @return 澶囦欢鍑哄叆搴撴槑缁�
+ */
+ @Override
+ public EimsSpareInoutdtVo queryById(Long id){
+ return baseMapper.selectVoById(id);
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ澶囦欢鍑哄叆搴撴槑缁嗗垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @param pageQuery 鍒嗛〉鍙傛暟
+ * @return 澶囦欢鍑哄叆搴撴槑缁嗗垎椤靛垪琛�
+ */
+ @Override
+ public TableDataInfo<EimsSpareInoutdtVo> queryPageList(EimsSpareInoutdtBo bo, PageQuery pageQuery) {
+ Page<EimsSpareInoutdtVo> result = baseMapper.selectSpareInoutdtList(pageQuery.build(), buildWrapper(bo));
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 鏌ヨ绗﹀悎鏉′欢鐨勫浠跺嚭鍏ュ簱鏄庣粏鍒楄〃
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @return 澶囦欢鍑哄叆搴撴槑缁嗗垪琛�
+ */
+ @Override
+ public List<EimsSpareInoutdtVo> queryList(EimsSpareInoutdtBo bo) {
+ LambdaQueryWrapper<EimsSpareInoutdt> lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper<EimsSpareInoutdt> buildQueryWrapper(EimsSpareInoutdtBo bo) {
+ Map<String, Object> params = bo.getParams();
+ LambdaQueryWrapper<EimsSpareInoutdt> lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getInoutId() != null, EimsSpareInoutdt::getInoutId, bo.getInoutId());
+ lqw.eq(bo.getSpareId() != null, EimsSpareInoutdt::getSpareId, bo.getSpareId());
+ return lqw;
+ }
+
+ private QueryWrapper<EimsSpareInoutdt> buildWrapper(EimsSpareInoutdtBo bo) {
+ Map<String, Object> params = bo.getParams();
+ QueryWrapper<EimsSpareInoutdt> qw = Wrappers.query();
+ qw.eq("io.id",bo.getInoutId());
+ return qw;
+ }
+
+ /**
+ * 鏂板澶囦欢鍑哄叆搴撴槑缁�
+ *
+ * @param bo 澶囦欢鍑哄叆搴撴槑缁�
+ * @return 鏄惁鏂板鎴愬姛
+ */
+ @Override
+ public Boolean insertByBo(EimsSpareInoutdtBo bo) {
+ EimsSpareInoutdt add = MapstructUtils.convert(bo, EimsSpareInoutdt.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ /**
+ * 淇敼澶囦欢鍑哄叆搴撴槑缁�
+ *
+ * @param bo 澶囦欢鍑哄叆搴撴槑缁�
+ * @return 鏄惁淇敼鎴愬姛
+ */
+ @Override
+ public Boolean updateByBo(EimsSpareInoutdtBo bo) {
+ EimsSpareInoutdt update = MapstructUtils.convert(bo, EimsSpareInoutdt.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+ */
+ private void validEntityBeforeSave(EimsSpareInoutdt entity){
+ //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+ }
+
+ /**
+ * 鏍¢獙骞舵壒閲忓垹闄ゅ浠跺嚭鍏ュ簱鏄庣粏淇℃伅
+ *
+ * @param ids 寰呭垹闄ょ殑涓婚敭闆嗗悎
+ * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠�
+ * @return 鏄惁鍒犻櫎鎴愬姛
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+ if(isValid){
+ //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+ }
+ return baseMapper.deleteByIds(ids) > 0;
+ }
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareServiceImpl.java
index 1c8619a..4cdd95b 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareServiceImpl.java
@@ -1,5 +1,6 @@
package org.dromara.eims.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -8,6 +9,10 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
+import org.dromara.eims.domain.EimsSpareInout;
+import org.dromara.eims.domain.bo.EimsSpareInoutBo;
+import org.dromara.eims.domain.vo.EimsSpareInoutVo;
+import org.dromara.eims.domain.vo.EimsSpareInoutdtVo;
import org.springframework.stereotype.Service;
import org.dromara.eims.domain.bo.EimsSpareBo;
import org.dromara.eims.domain.vo.EimsSpareVo;
@@ -56,6 +61,13 @@
return TableDataInfo.build(result);
}
+
+ @Override
+ public TableDataInfo<EimsSpareInoutdtVo> querySpareInoutList(EimsSpareBo bo, PageQuery pageQuery) {
+ Page<EimsSpareInoutdtVo> result = baseMapper.selectSpareInoutList(pageQuery.build(), buildWrapper(bo));
+ return TableDataInfo.build(result);
+ }
+
/**
* 鏌ヨ绗﹀悎鏉′欢鐨勫浠跺彴璐﹀垪琛�
*
@@ -79,6 +91,13 @@
lqw.like(StringUtils.isNotBlank(bo.getSupplier()), EimsSpare::getSupplier, bo.getSupplier());
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), EimsSpare::getUnit, bo.getUnit());
return lqw;
+ }
+
+ private QueryWrapper<EimsSpare> buildWrapper(EimsSpareBo bo) {
+ Map<String, Object> params = bo.getParams();
+ QueryWrapper<EimsSpare> qw = Wrappers.query();
+ qw.eq( "sp.id", bo.getId());
+ return qw;
}
/**
@@ -132,4 +151,6 @@
}
return baseMapper.deleteByIds(ids) > 0;
}
+
+
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsSpareInoutdtMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsSpareInoutdtMapper.xml
new file mode 100644
index 0000000..af3b48d
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsSpareInoutdtMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.eims.mapper.EimsSpareInoutdtMapper">
+ <resultMap type="org.dromara.eims.domain.vo.EimsSpareInoutdtVo" id="SpareInoutdtVoResult">
+ </resultMap>
+ <select id="selectSpareInoutdtList" resultMap="SpareInoutdtVoResult">
+ SELECT dt.*, sp.name spareName, sp.code spareCode, sp.model_no modelNo, sp.unit unit, io.order_code orderCode
+ FROM eims_spare_inoutdt dt
+ LEFT JOIN eims_spare_inout io on dt.inout_id = io.id
+ LEFT JOIN eims_spare sp on dt.spare_id = sp.id
+ ${ew.getCustomSqlSegment}
+ </select>
+</mapper>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsSpareMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsSpareMapper.xml
index 8384ab3..f41d665 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsSpareMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsSpareMapper.xml
@@ -3,5 +3,13 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.eims.mapper.EimsSpareMapper">
-
+ <resultMap type="org.dromara.eims.domain.vo.EimsSpareInoutdtVo" id="SpareInoutdtVoResult">
+ </resultMap>
+ <select id="selectSpareInoutList" resultMap="SpareInoutdtVoResult">
+ SELECT io.*, dt.quantity, dt.actual_stock, dt.unit_price, dt.amount
+ FROM eims_spare_inout io
+ JOIN eims_spare_inoutdt dt on io.id = dt.inout_id
+ JOIN eims_spare sp on dt.spare_id = sp.id
+ ${ew.getCustomSqlSegment}
+ </select>
</mapper>
--
Gitblit v1.9.3