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