From e7bbe2f1caaa23e0417e33860b3456f012f36027 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=BD=97=E6=88=90?= <2847920761@qq.com>
Date: Fri, 1 Aug 2025 21:16:26 +0800
Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E8=B5=84=E4=BE=9B=E5=BA=94=E6=80=BB?=
=?UTF-8?q?=E8=AE=A1=E5=88=92?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/application.yml | 4 +-
.../ruoyi-modules/ruoyi-system/pom.xml | 6 +
.../BusCailiaoshebeiController.java | 155 +++++++++++++-----
.../domain/BusCailiaoshebei.java | 2 +-
.../domain/BusSuppliesprice.java | 8 +-
.../domain/bo/BusCailiaoshebeiAddReq.java | 9 +-
.../domain/bo/BusCailiaoshebeiBo.java | 6 +
.../domain/bo/BusCailiaoshebeiListReq.java | 44 +++++
.../domain/bo/BusCailiaoshebeiPiciAddReq.java | 19 +++
.../bo/BusCailiaoshebeiPiciPcListReq.java | 26 +++
.../domain/dto/BusSuppliespriceDto.java | 59 +++++++
.../vo/BusCailiaoshebeiListPlanRes.java | 8 +
.../domain/vo/BusCailiaoshebeiVo.java | 2 +-
.../vo/BusSuppliespriceAddPlanSonRes.java | 119 ++++++++++++++
.../service/IBusCailiaoshebeiService.java | 9 +
.../impl/BusCailiaoshebeiPiciServiceImpl.java | 4 +-
.../impl/BusCailiaoshebeiServiceImpl.java | 66 +++++---
.../common/utils/BatchNumberGenerator.java | 2 +-
.../contractor/domain/SubContractor.java | 2 +
19 files changed, 480 insertions(+), 70 deletions(-)
create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiListReq.java
create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiPiciAddReq.java
create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiPiciPcListReq.java
create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/dto/BusSuppliespriceDto.java
create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusSuppliespriceAddPlanSonRes.java
diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml
index 7494affb..fd3c19a2 100644
--- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml
+++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml
@@ -255,7 +255,9 @@ springdoc:
packages-to-scan: org.dromara.generator
- group: 16.app模块
packages-to-scan: org.dromara.app
- - group: 17.产值模块
+ - group: 17.材料设备模块
+ packages-to-scan: org.dromara.cailiaoshebei
+ - group: 18.产值模块
packages-to-scan: org.dromara.out
# knife4j的增强配置,不需要增强可以不配
knife4j:
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/pom.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/pom.xml
index d1bb30ee..bb39890a 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/pom.xml
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/pom.xml
@@ -210,6 +210,12 @@
5.15.0
compile
+
+ org.apache.xmlbeans
+ xmlbeans
+ 5.3.0
+ compile
+
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusCailiaoshebeiController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusCailiaoshebeiController.java
index 82c1895c..e46c9e7d 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusCailiaoshebeiController.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusCailiaoshebeiController.java
@@ -1,10 +1,17 @@
package org.dromara.cailiaoshebei.controller;
+import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
+import org.dromara.cailiaoshebei.domain.BusSuppliesprice;
import org.dromara.cailiaoshebei.domain.bo.*;
-import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiListPlanRes;
+import org.dromara.cailiaoshebei.domain.vo.*;
+import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiPiciService;
+import org.dromara.cailiaoshebei.service.IBusSuppliespriceService;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.utils.BatchNumberGenerator;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -15,10 +22,11 @@ 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.cailiaoshebei.domain.vo.BusCailiaoshebeiVo;
import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
+import java.util.List;
+
/**
* 物资-材料设备
*
@@ -32,20 +40,59 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
public class BusCailiaoshebeiController extends BaseController {
private final IBusCailiaoshebeiService busCailiaoshebeiService;
+ private final IBusSuppliespriceService busSuppliespriceService;
+ private final IBusCailiaoshebeiPiciService busCailiaoshebeiPiciService;
+
//===============================设计===============================
/**
- * 查询物资-材料设备列表
+ * 设计-新增批次号
*/
- @SaCheckPermission("cailiaoshebei:cailiaoshebei:list")
- @GetMapping("/list")
- public TableDataInfo list(BusCailiaoshebeiBo bo, PageQuery pageQuery) {
- return busCailiaoshebeiService.queryPageList(bo, pageQuery);
+ @SaCheckPermission("cailiaoshebei:cailiaoshebei:pcAdd")
+ @Log(title = "物资-批次号", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping("/pcAdd")
+ public R pcAdd(@Validated(AddGroup.class) @RequestBody BusCailiaoshebeiPiciAddReq bo) {
+ BusCailiaoshebeiPici busCailiaoshebeiPici = new BusCailiaoshebeiPici().
+ setProjectId(bo.getProjectId()).
+ setBatchNumber(BatchNumberGenerator.generateBatchNumber("PC-"));
+ return toAjax( busCailiaoshebeiPiciService.save(busCailiaoshebeiPici));
}
/**
- * 获取物资-材料设备详细信息
+ * 设计-批次号列表
+ */
+ @SaCheckPermission("cailiaoshebei:cailiaoshebei:pcList")
+ @GetMapping("/pcList")
+ public TableDataInfo pcList(BusCailiaoshebeiPiciPcListReq bo, PageQuery pageQuery) {
+ BusCailiaoshebeiPiciBo busCailiaoshebeiPiciBo = BeanUtil.copyProperties(bo, BusCailiaoshebeiPiciBo.class);
+ return busCailiaoshebeiPiciService.queryPageList(busCailiaoshebeiPiciBo, pageQuery);
+ }
+
+ /**
+ * 设计-新增材料设备
+ */
+ @SaCheckPermission("cailiaoshebei:cailiaoshebei:add")
+ @Log(title = "物资-材料设备", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody BusCailiaoshebeiAddReq req) {
+ return toAjax(busCailiaoshebeiService.insertByBo(req));
+ }
+
+ /**
+ * 设计-材料设备列表
+ */
+ @SaCheckPermission("cailiaoshebei:cailiaoshebei:list")
+ @GetMapping("/list")
+ public TableDataInfo list(BusCailiaoshebeiListReq bo, PageQuery pageQuery) {
+ BusCailiaoshebeiBo busCailiaoshebeiBo = BeanUtil.copyProperties(bo, BusCailiaoshebeiBo.class);
+ return busCailiaoshebeiService.queryPageList(busCailiaoshebeiBo, pageQuery);
+ }
+
+ /**
+ * 设计-材料设备详细信息
*
* @param id 主键
*/
@@ -57,18 +104,7 @@ public class BusCailiaoshebeiController extends BaseController {
}
/**
- * 新增物资-材料设备
- */
- @SaCheckPermission("cailiaoshebei:cailiaoshebei:add")
- @Log(title = "物资-材料设备", businessType = BusinessType.INSERT)
- @RepeatSubmit()
- @PostMapping()
- public R add(@Validated(AddGroup.class) @RequestBody BusCailiaoshebeiAddReq req) {
- return toAjax(busCailiaoshebeiService.insertByBo(req));
- }
-
- /**
- * 修改物资-材料设备-设计部
+ * 设计-修改物资-材料设备
*/
@SaCheckPermission("cailiaoshebei:cailiaoshebei:edit")
@Log(title = "物资-材料设备-设计部", businessType = BusinessType.UPDATE)
@@ -78,7 +114,20 @@ public class BusCailiaoshebeiController extends BaseController {
return toAjax(busCailiaoshebeiService.updateByBo(bo));
}
-// /**
+ /**
+ * 设计-删除物资-材料设备
+ *
+ * @param ids 主键串
+ */
+ @SaCheckPermission("cailiaoshebei:cailiaoshebei:remove")
+ @Log(title = "物资-材料设备", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ids) {
+ return toAjax(busCailiaoshebeiService.deleteWithValidByIds(List.of(ids), true));
+ }
+
+ // /**
// * 导出物资-材料设备列表
// */
// @SaCheckPermission("cailiaoshebei:cailiaoshebei:export")
@@ -89,24 +138,20 @@ public class BusCailiaoshebeiController extends BaseController {
// ExcelUtil.exportExcel(list, "物资-材料设备", BusCailiaoshebeiVo.class, response);
// }
-
-// /**
-// * 删除物资-材料设备
-// *
-// * @param ids 主键串
-// */
-// @SaCheckPermission("cailiaoshebei:cailiaoshebei:remove")
-// @Log(title = "物资-材料设备", businessType = BusinessType.DELETE)
-// @DeleteMapping("/{ids}")
-// public R remove(@NotEmpty(message = "主键不能为空")
-// @PathVariable Long[] ids) {
-// return toAjax(busCailiaoshebeiService.deleteWithValidByIds(List.of(ids), true));
-// }
-
//===============================计划===============================
/**
- * 查询物资-材料设备列表
+ * 计划-批次号列表
+ */
+ @SaCheckPermission("cailiaoshebei:cailiaoshebei:pcPlanList")
+ @GetMapping("/pcPlanList")
+ public TableDataInfo pcPlanList(BusCailiaoshebeiPiciPcListReq bo, PageQuery pageQuery) {
+ BusCailiaoshebeiPiciBo busCailiaoshebeiPiciBo = BeanUtil.copyProperties(bo, BusCailiaoshebeiPiciBo.class);
+ return busCailiaoshebeiPiciService.queryPageList(busCailiaoshebeiPiciBo, pageQuery);
+ }
+
+ /**
+ * 计划-材料设备清单列表
*/
@SaCheckPermission("cailiaoshebei:cailiaoshebei:listPlan")
@GetMapping("/listPlan")
@@ -114,17 +159,49 @@ public class BusCailiaoshebeiController extends BaseController {
return busCailiaoshebeiService.queryPageListPlan(bo, pageQuery);
}
+// /**
+// * 计划-材料设备清单子列表
+// */
+// @SaCheckPermission("cailiaoshebei:cailiaoshebei:listPlanSon")
+// @GetMapping("/listPlanSon")
+// public TableDataInfo listPlanSon(BusSuppliespriceBo bo, PageQuery pageQuery) {
+// return busSuppliespriceService.queryPageList(bo, pageQuery);
+// }
+
+// /**
+// * 计划-新增材料设备清单子数据
+// */
+// @SaCheckPermission("cailiaoshebei:cailiaoshebei:addPlanSon")
+// @Log(title = "物资-物资清单", businessType = BusinessType.INSERT)
+// @RepeatSubmit()
+// @PostMapping("/addPlanSon")
+// public R addPlanSon(@Validated(AddGroup.class) @RequestBody BusSuppliespriceBo bo) {
+// return toAjax(busSuppliespriceService.insertByBo(bo));
+// }
+
/**
- * 修改物资-材料设备-计划部`
+ * 计划-获取物资清单详细信息
+ *
+ * @param id 主键
+ */
+ @SaCheckPermission("cailiaoshebei:cailiaoshebei:getInfoPlanSon")
+ @GetMapping("getInfoPlanSon/{id}")
+ public R getInfoPlanSon(@NotNull(message = "主键不能为空")
+ @PathVariable Long id) {
+ return R.ok(busCailiaoshebeiService.getInfoPlanSon(id));
+ }
+
+
+ /**
+ * 计划-修改物资清单详细信息`
*/
@SaCheckPermission("cailiaoshebei:cailiaoshebei:editPlan")
@Log(title = "物资-材料设备-计划部", businessType = BusinessType.UPDATE)
@RepeatSubmit()
- @PutMapping("/editPlan")
+ @PutMapping("/editPlanSon")
public R editPlan(@Validated(EditGroup.class) @RequestBody BusCailiaoshebeiEditPlanReq bo) {
return toAjax(busCailiaoshebeiService.updateByPlanBo(bo));
}
-
}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusCailiaoshebei.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusCailiaoshebei.java
index 0ed9a856..ea987568 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusCailiaoshebei.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusCailiaoshebei.java
@@ -37,7 +37,7 @@ public class BusCailiaoshebei extends BaseEntity {
/**
* 供货商ID
*/
- private Long supplierId;
+ private String supplierId;
/**
* 项目ID
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusSuppliesprice.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusSuppliesprice.java
index cbd270fd..6afccd53 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusSuppliesprice.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusSuppliesprice.java
@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
+import java.math.BigDecimal;
/**
* 物资-物资清单对象 bus_suppliesprice
@@ -35,7 +36,12 @@ public class BusSuppliesprice extends BaseEntity {
/**
* 单价
*/
- private Long unitPrice;
+ private BigDecimal unitPrice;
+
+ /**
+ * 数量
+ */
+ private int number;
/**
* 合同号
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiAddReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiAddReq.java
index 2d5a68ff..18a3b618 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiAddReq.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiAddReq.java
@@ -13,6 +13,7 @@ import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.util.Date;
+import java.util.List;
/**
* @Author 铁憨憨
@@ -21,7 +22,7 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = BusCailiaoshebei.class, reverseConvertGenerate = false)
+//@AutoMapper(target = BusCailiaoshebei.class, reverseConvertGenerate = false)
@Accessors(chain = true)
public class BusCailiaoshebeiAddReq extends BaseEntity {
/**
@@ -44,13 +45,13 @@ public class BusCailiaoshebeiAddReq extends BaseEntity {
private String batchId;
/**
- * 供货商ID (必填)
+ * 供货商ID (必填,多个逗号分隔)
*/
@NotNull(message = "供货商ID不能为空", groups = { AddGroup.class })
- private Long supplierId;
+ private String supplierId;
/**
- * 供货商 (必填)
+ * 供货商 (必填,多个逗号分隔)
*/
@NotBlank(message = "供货商不能为空", groups = { AddGroup.class })
@Size(max = 64, message = "供货商名称长度不能超过64个字符", groups = {AddGroup.class, EditGroup.class})
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiBo.java
index 445f3c6e..c696c4f6 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiBo.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiBo.java
@@ -28,6 +28,12 @@ public class BusCailiaoshebeiBo extends BaseEntity {
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
+ /**
+ * 项目ID
+ */
+ private Long projectId;
+
+
/**
* 批次ID
*/
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiListReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiListReq.java
new file mode 100644
index 00000000..3f2c05b5
--- /dev/null
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiListReq.java
@@ -0,0 +1,44 @@
+package org.dromara.cailiaoshebei.domain.bo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @Author 铁憨憨
+ * @Date 2025/8/1 20:27
+ * @Version 1.0
+ */
+
+@Data
+@Accessors(chain = true)
+public class BusCailiaoshebeiListReq implements Serializable {
+
+ /**
+ * 项目ID(必填)
+ */
+ private Long projectId;
+
+
+ /**
+ * 批次ID
+ */
+ private String batchId;
+
+ /**
+ * 供货商ID
+ */
+ private Long supplierId;
+
+ /**
+ * 供货来源(字典)
+ */
+ private String supply;
+
+ /**
+ * 物料编码
+ */
+ private String materialCode;
+
+}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiPiciAddReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiPiciAddReq.java
new file mode 100644
index 00000000..73b84cd9
--- /dev/null
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiPiciAddReq.java
@@ -0,0 +1,19 @@
+package org.dromara.cailiaoshebei.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author 铁憨憨
+ * @Date 2025/8/1 19:50
+ * @Version 1.0
+ */
+
+@Data
+public class BusCailiaoshebeiPiciAddReq implements Serializable {
+ /**
+ * 项目ID
+ */
+ private Long projectId;
+}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiPiciPcListReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiPiciPcListReq.java
new file mode 100644
index 00000000..23d71901
--- /dev/null
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusCailiaoshebeiPiciPcListReq.java
@@ -0,0 +1,26 @@
+package org.dromara.cailiaoshebei.domain.bo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @Author 铁憨憨
+ * @Date 2025/8/1 19:59
+ * @Version 1.0
+ */
+
+@Data
+@Accessors(chain = true)
+public class BusCailiaoshebeiPiciPcListReq implements Serializable {
+ /**
+ * 项目ID
+ */
+ private Long projectId;
+
+ /**
+ * 批次号(模糊查询)
+ */
+ private String batchNumber;
+}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/dto/BusSuppliespriceDto.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/dto/BusSuppliespriceDto.java
new file mode 100644
index 00000000..d2c67317
--- /dev/null
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/dto/BusSuppliespriceDto.java
@@ -0,0 +1,59 @@
+package org.dromara.cailiaoshebei.domain.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @Author 铁憨憨
+ * @Date 2025/8/1 17:30
+ * @Version 1.0
+ */
+
+@Data
+@Accessors(chain = true)
+public class BusSuppliespriceDto implements Serializable {
+ /**
+ * ID
+ */
+ @ExcelProperty(value = "ID")
+ private Long id;
+
+ /**
+ * 材料设备ID
+ */
+ @ExcelProperty(value = "材料设备ID")
+ private Long cailiaoshebeiId;
+
+ /**
+ * 单价
+ */
+ @ExcelProperty(value = "单价")
+ private Long unitPrice;
+
+ /**
+ * 合同号
+ */
+ @ExcelProperty(value = "合同号")
+ private String contractNum;
+
+ /**
+ * 预估供应周期
+ */
+ @ExcelProperty(value = "预估供应周期")
+ private Long estimatedCycle;
+
+ /**
+ * 供货公司
+ */
+ @ExcelProperty(value = "供货公司")
+ private String supplierCompany;
+
+ /**
+ * 备注
+ */
+ @ExcelProperty(value = "备注")
+ private String remark;
+}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusCailiaoshebeiListPlanRes.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusCailiaoshebeiListPlanRes.java
index 22e3f629..62ed5d40 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusCailiaoshebeiListPlanRes.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusCailiaoshebeiListPlanRes.java
@@ -3,12 +3,14 @@ package org.dromara.cailiaoshebei.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
+import org.dromara.cailiaoshebei.domain.dto.BusSuppliespriceDto;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
+import java.util.List;
/**
* @Author 铁憨憨
@@ -112,4 +114,10 @@ public class BusCailiaoshebeiListPlanRes implements Serializable {
*/
@ExcelProperty(value = "备注")
private String remark;
+
+ /**
+ * 子列表数据
+ */
+ @ExcelProperty(value = "子列表数据")
+ private List sonList;
}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusCailiaoshebeiVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusCailiaoshebeiVo.java
index 041241e7..87c4a094 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusCailiaoshebeiVo.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusCailiaoshebeiVo.java
@@ -46,7 +46,7 @@ public class BusCailiaoshebeiVo implements Serializable {
* 供货商ID
*/
@ExcelProperty(value = "供货商ID")
- private Long supplierId;
+ private String supplierId;
/**
* 供货商
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusSuppliespriceAddPlanSonRes.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusSuppliespriceAddPlanSonRes.java
new file mode 100644
index 00000000..baecdfc2
--- /dev/null
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusSuppliespriceAddPlanSonRes.java
@@ -0,0 +1,119 @@
+package org.dromara.cailiaoshebei.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.dromara.cailiaoshebei.domain.BusSuppliesprice;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author 铁憨憨
+ * @Date 2025/8/1 18:53
+ * @Version 1.0
+ */
+
+@Data
+@Accessors(chain = true)
+public class BusSuppliespriceAddPlanSonRes implements Serializable {
+
+ /**
+ * 主键ID
+ */
+ @ExcelProperty(value = "主键ID")
+ private Long id;
+
+ /**
+ * 批次ID
+ */
+ @ExcelProperty(value = "批次ID")
+ private String batchId;
+
+ /**
+ * 供货商ID
+ */
+ @ExcelProperty(value = "供货商ID")
+ private String supplierId;
+
+ /**
+ * 供货商
+ */
+ @ExcelProperty(value = "供货商")
+ private String supplier;
+
+ /**
+ * 设备材料名称
+ */
+ @ExcelProperty(value = "设备材料名称")
+ private String name;
+
+ /**
+ * 供货来源(字典)
+ */
+ @ExcelProperty(value = "供货来源(字典)", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "supply")
+ private String supply;
+
+ /**
+ * 规格型号
+ */
+ @ExcelProperty(value = "规格型号")
+ private String specification;
+
+ /**
+ * 特征描述
+ */
+ @ExcelProperty(value = "特征描述")
+ private String signalment;
+
+ /**
+ * 物料编码
+ */
+ @ExcelProperty(value = "物料编码")
+ private String materialCode;
+
+ /**
+ * 计划到场时间
+ */
+ @ExcelProperty(value = "计划到场时间")
+ private Date arrivalTime;
+
+ /**
+ * 计划完成时间
+ */
+ @ExcelProperty(value = "计划完成时间")
+ private Date finishTime;
+
+ /**
+ * 计量单位
+ */
+ @ExcelProperty(value = "计量单位")
+ private String unit;
+
+ /**
+ * 计划数量
+ */
+ @ExcelProperty(value = "计划数量")
+ private Long plan;
+
+ /**
+ * 实际数量
+ */
+ @ExcelProperty(value = "实际数量")
+ private int realQuantity;
+
+ /**
+ * 备注
+ */
+ @ExcelProperty(value = "备注")
+ private String remark;
+
+ /**
+ * 材料设备ID
+ */
+ private List addPlanSonList;
+}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusCailiaoshebeiService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusCailiaoshebeiService.java
index 3521b422..ca2adacd 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusCailiaoshebeiService.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusCailiaoshebeiService.java
@@ -4,6 +4,7 @@ import org.dromara.cailiaoshebei.domain.bo.*;
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiListPlanRes;
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiVo;
import org.dromara.cailiaoshebei.domain.BusCailiaoshebei;
+import org.dromara.cailiaoshebei.domain.vo.BusSuppliespriceAddPlanSonRes;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
@@ -85,4 +86,12 @@ public interface IBusCailiaoshebeiService extends IService{
* @return 是否修改成功
*/
Boolean updateByPlanBo(BusCailiaoshebeiEditPlanReq bo);
+
+ /**
+ * 查询物资-材料设备 获取到主体数据,并且还需要得到物资清单列表
+ *
+ * @param id 主键
+ * @return 物资-材料设备
+ */
+ BusSuppliespriceAddPlanSonRes getInfoPlanSon(Long id);
}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusCailiaoshebeiPiciServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusCailiaoshebeiPiciServiceImpl.java
index 5a75deb1..c0039acb 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusCailiaoshebeiPiciServiceImpl.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusCailiaoshebeiPiciServiceImpl.java
@@ -52,6 +52,7 @@ public class BusCailiaoshebeiPiciServiceImpl extends ServiceImpl queryPageList(BusCailiaoshebeiPiciBo bo, PageQuery pageQuery) {
+ System.out.println("?????? "+bo);
LambdaQueryWrapper lqw = buildQueryWrapper(bo);
Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
@@ -73,10 +74,11 @@ public class BusCailiaoshebeiPiciServiceImpl extends ServiceImpl params = bo.getParams();
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BusCailiaoshebeiPici::getId);
- lqw.eq(StringUtils.isNotBlank(bo.getBatchNumber()), BusCailiaoshebeiPici::getBatchNumber, bo.getBatchNumber());
+ lqw.eq(bo.getProjectId() != null, BusCailiaoshebeiPici::getProjectId, bo.getProjectId());
lqw.eq(StringUtils.isNotBlank(bo.getApprovalDesign()), BusCailiaoshebeiPici::getApprovalDesign, bo.getApprovalDesign());
lqw.eq(StringUtils.isNotBlank(bo.getApprovalPlan()), BusCailiaoshebeiPici::getApprovalPlan, bo.getApprovalPlan());
lqw.eq(StringUtils.isNotBlank(bo.getApprovalProject()), BusCailiaoshebeiPici::getApprovalProject, bo.getApprovalProject());
+ lqw.like(StringUtils.isNotBlank(bo.getBatchNumber()), BusCailiaoshebeiPici::getBatchNumber, bo.getBatchNumber());
return lqw;
}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusCailiaoshebeiServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusCailiaoshebeiServiceImpl.java
index 735ad921..748b18cd 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusCailiaoshebeiServiceImpl.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusCailiaoshebeiServiceImpl.java
@@ -2,12 +2,11 @@ package org.dromara.cailiaoshebei.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
import org.dromara.cailiaoshebei.domain.BusSuppliesprice;
import org.dromara.cailiaoshebei.domain.bo.*;
import org.dromara.cailiaoshebei.domain.dto.BusCailiaoshebeiEditPlanDto;
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiListPlanRes;
-import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiPiciService;
+import org.dromara.cailiaoshebei.domain.vo.BusSuppliespriceAddPlanSonRes;
import org.dromara.cailiaoshebei.service.IBusSuppliespriceService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@@ -25,12 +24,7 @@ import org.dromara.cailiaoshebei.mapper.BusCailiaoshebeiMapper;
import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiService;
import org.springframework.transaction.annotation.Transactional;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -44,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger;
public class BusCailiaoshebeiServiceImpl extends ServiceImpl implements IBusCailiaoshebeiService {
private final BusCailiaoshebeiMapper baseMapper;
- private final IBusCailiaoshebeiPiciService busCailiaoshebeiPiciService;
private final IBusSuppliespriceService busSuppliespriceService;
@@ -70,6 +63,10 @@ public class BusCailiaoshebeiServiceImpl extends ServiceImpl queryPageList(BusCailiaoshebeiBo bo, PageQuery pageQuery) {
LambdaQueryWrapper lqw = buildQueryWrapper(bo);
Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+// //获取到供货商,随后返回对应的供货商名
+// List list = contractorService.list(new LambdaQueryWrapper().eq(SubContractor::getProjectId, bo.getProjectId()));
+//
+
return TableDataInfo.build(result);
}
@@ -91,6 +88,7 @@ public class BusCailiaoshebeiServiceImpl extends ServiceImpl 0;
if (flag) {
@@ -157,16 +146,47 @@ public class BusCailiaoshebeiServiceImpl extends ServiceImpl()
+ .eq(BusSuppliesprice::getCailiaoshebeiId, entity.getId())
+ );
+ //3、为每个供应商确认单价等信息
List listOfMaterialInventory = bo.getListOfMaterialInventory();
List busSuppliesprices = BeanUtil.copyToList(listOfMaterialInventory, BusSuppliesprice.class);
busSuppliesprices.forEach(busSuppliesprice -> {
- assert entity != null;
busSuppliesprice.setCailiaoshebeiId(entity.getId());
});
return busSuppliespriceService.saveBatch(busSuppliesprices);
}
+
+ @Override
+ public BusSuppliespriceAddPlanSonRes getInfoPlanSon(Long id) {
+ //1、获取基础数据
+ BusCailiaoshebeiVo busCailiaoshebeiVo = baseMapper.selectVoById(id);
+ if (busCailiaoshebeiVo == null){
+ return null;
+ }
+ BusSuppliespriceAddPlanSonRes res = BeanUtil.copyProperties(busCailiaoshebeiVo, BusSuppliespriceAddPlanSonRes.class);
+ //2、获取到当前下所有单价数据
+ List list = busSuppliespriceService.list(
+ new LambdaQueryWrapper()
+ .eq(BusSuppliesprice::getCailiaoshebeiId, id)
+ );
+ res.setAddPlanSonList(list);
+ //3、获取到实际数量
+ AtomicInteger num = new AtomicInteger();
+ list.forEach(
+ busSuppliesprice -> {
+ num.addAndGet(busSuppliesprice.getNumber());
+ }
+ );
+ res.setRealQuantity(num.get());
+ return res;
+ }
+
/**
* 保存前的数据校验
*/
@@ -212,4 +232,8 @@ public class BusCailiaoshebeiServiceImpl extends ServiceImpl