From 5f3c8b3463a652fd8bbdc9632a81383e1800793a Mon Sep 17 00:00:00 2001 From: chenhao Date: Fri, 28 Nov 2025 17:07:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(inventory):=20=E4=BC=98=E5=8C=96=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=E5=B9=B6=E5=A2=9E?= =?UTF-8?q?=E5=BC=BA=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E9=9B=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增PO订单入库和服务入库两个独立的入口按钮 - 区分导出软硬件产品与服务产品的功能按钮 - 重构入库单表单结构,增加产品类型、入库类型等字段展示 - 优化产品信息表格,支持序号显示和行内修改操作 - 引入采购订单选择对话框组件,实现订单数据联动填充 - 增强SN码处理逻辑,支持批量生成连续SN码序列 - 调整添加产品流程,通过弹窗方式输入起始SN码 - 更新系统合作伙伴认证级别校验规则,针对不同等级控制必填项 - 扩展采购订单接口,新增基于订单项的数据查询能力 - 完善采购订单实体类,补充制造商编码等关键属性 - 新增采购订单项DTO用于库存模块数据交互 - 实现采购订单项数据库映射及查询SQL配置 - 提供前端API调用封装以支持新采购订单项列表获取 - 修复原文件上传相关方法位置错乱问题,确保功能正常运行 --- oms_web/oms_vue/src/api/sip/purchaseorder.js | 7 + .../src/views/inventory/inner/index.vue | 402 ++++++++++++------ .../src/views/system/partner/index.vue | 14 +- .../vue/OmsPurchaseOrderController.java | 12 + .../ruoyi/sip/domain/OmsPurchaseOrder.java | 1 + .../inventory/OmsPurchaseOrderItemDto.java | 39 ++ .../sip/mapper/OmsPurchaseOrderMapper.java | 2 + .../sip/service/IOmsPurchaseOrderService.java | 3 + .../impl/OmsPurchaseOrderServiceImpl.java | 6 + .../mapper/sip/OmsPurchaseOrderMapper.xml | 34 ++ 10 files changed, 388 insertions(+), 132 deletions(-) create mode 100644 ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/OmsPurchaseOrderItemDto.java diff --git a/oms_web/oms_vue/src/api/sip/purchaseorder.js b/oms_web/oms_vue/src/api/sip/purchaseorder.js index 161eabbb..7a62075e 100644 --- a/oms_web/oms_vue/src/api/sip/purchaseorder.js +++ b/oms_web/oms_vue/src/api/sip/purchaseorder.js @@ -8,6 +8,13 @@ export function listPurchaseorder(query) { params: query }) } +export function listPurchaseOrderItem(query) { + return request({ + url: '/sip/purchaseorder/item/list', + method: 'get', + params: query + }) +} export function listVendorPurchaseorder(query) { return request({ url: '/sip/purchaseorder/vendor/list', diff --git a/oms_web/oms_vue/src/views/inventory/inner/index.vue b/oms_web/oms_vue/src/views/inventory/inner/index.vue index eb9ae6ed..135ff693 100644 --- a/oms_web/oms_vue/src/views/inventory/inner/index.vue +++ b/oms_web/oms_vue/src/views/inventory/inner/index.vue @@ -31,10 +31,24 @@ - 新增 + + PO订单入库 + - 导出 + + 服务入库 + + + + 导出软硬件产品 + + + + 导出服务产品 + @@ -64,54 +78,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -

入库信息

- - - - - - - - - - - - - - - - - - - - - - - - - - 点击上传 - - - +

入库信息

+ + + + + + + + + + + + + + + + + + + +

产品信息

- 添加 + 添加 + - - + + @@ -148,6 +191,19 @@
+ + + {{ snLabel }}* + + + + + + +
@@ -191,81 +247,89 @@ - - - - - - - 查询 - 重置 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{ snRange }} - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/oms_web/oms_vue/src/views/system/partner/index.vue b/oms_web/oms_vue/src/views/system/partner/index.vue index 7c81ab15..d26eb53c 100644 --- a/oms_web/oms_vue/src/views/system/partner/index.vue +++ b/oms_web/oms_vue/src/views/system/partner/index.vue @@ -297,7 +297,19 @@ export default { { required: true, message: "认证级别不能为空", trigger: "change" } ], systemUserName: [ - { required: true, message: "系统用户不能为空", trigger: "blur" } + { + validator: (rule, value, callback) => { + if (this.form.level === '04') { + callback(); + } else { + if (!value) { + callback(new Error("系统用户不能为空")); + } else { + callback(); + } + } + }, trigger: "blur" + } ], contactEmail: [ { diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java index e9d44037..f6c2ee4d 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java @@ -8,6 +8,7 @@ import com.ruoyi.common.enums.ApproveStatusEnum; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.sip.domain.OmsPurchaseOrder; +import com.ruoyi.sip.dto.inventory.OmsPurchaseOrderItemDto; import com.ruoyi.sip.flowable.domain.Todo; import com.ruoyi.sip.flowable.service.TodoService; import com.ruoyi.sip.service.IOmsPurchaseOrderHistoryService; @@ -55,6 +56,17 @@ public class OmsPurchaseOrderController extends BaseController * 查询采购单主表列表 */ @RequiresPermissions("sip:purchaseorder:list") + @GetMapping("/item/list") + public TableDataInfo listItem(OmsPurchaseOrderItemDto omsPurchaseOrder) + { + startPage(); + List list = omsPurchaseOrderService.listItem(omsPurchaseOrder); + return getDataTable(list); + } + /** + * 查询采购单主表列表 + */ + @RequiresPermissions("sip:purchaseorder:list") @GetMapping("/vendor/list") public TableDataInfo listVendor(OmsPurchaseOrder omsPurchaseOrder) { diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java index 9d818883..861df31f 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java @@ -37,6 +37,7 @@ public class OmsPurchaseOrder extends BaseEntity /** 制造商ID */ private Long vendorId; + private String vendorCode; private String vendorName; private String vendorUser; private String vendorPhone; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/OmsPurchaseOrderItemDto.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/OmsPurchaseOrderItemDto.java new file mode 100644 index 00000000..7e99e12c --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/OmsPurchaseOrderItemDto.java @@ -0,0 +1,39 @@ +package com.ruoyi.sip.dto.inventory; + + +import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.sip.domain.OmsPurchaseOrder; +import lombok.Data; +import lombok.ToString; + +import java.math.BigDecimal; + +/** + * @author : ch + * @version : 1.0 + * @ClassName : OmsPurchaseOrderItemDto + * @Description : + * @DATE : Created in 15:02 2025/11/28 + *
       Copyright: Copyright(c) 2025     
+ *
       Company :   	紫光汇智信息技术有限公司		           
+ * Modification History: + * Date Author Version Discription + * -------------------------------------------------------------------------- + * 2025/11/28 ch 1.0 Why & What is modified: <修改原因描述> * + */ +@Data +@ToString +public class OmsPurchaseOrderItemDto extends OmsPurchaseOrder { + /** 产品CODE */ + private String productCode; + /** 数量 */ + private BigDecimal quantity; + private BigDecimal innerQuantity; + + + /** 单价 */ + private BigDecimal price; + private String productType; + private String productModel; + private String productDesc; +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapper.java index 57e2575b..d209ecac 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapper.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapper.java @@ -3,6 +3,7 @@ package com.ruoyi.sip.mapper; import java.util.List; import com.ruoyi.sip.domain.OmsPurchaseOrder; import com.ruoyi.sip.domain.OmsPurchaseOrderItem; +import com.ruoyi.sip.dto.inventory.OmsPurchaseOrderItemDto; import org.apache.ibatis.annotations.Param; /** @@ -100,4 +101,5 @@ public interface OmsPurchaseOrderMapper List listByCodeList(List businessKeyList); + List listItem(OmsPurchaseOrderItemDto omsPurchaseOrder); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java index b7c1ce8d..34f9a4ab 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java @@ -2,6 +2,7 @@ package com.ruoyi.sip.service; import java.util.List; import com.ruoyi.sip.domain.OmsPurchaseOrder; +import com.ruoyi.sip.dto.inventory.OmsPurchaseOrderItemDto; import com.ruoyi.sip.flowable.domain.Todo; /** @@ -87,4 +88,6 @@ public interface IOmsPurchaseOrderService List listApprove(OmsPurchaseOrder omsPurchaseOrder); List listApproved(OmsPurchaseOrder omsPurchaseOrder); + + List listItem(OmsPurchaseOrderItemDto omsPurchaseOrder); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java index bb09f5b7..be0ee7fd 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java @@ -12,6 +12,7 @@ import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.sip.domain.*; +import com.ruoyi.sip.dto.inventory.OmsPurchaseOrderItemDto; import com.ruoyi.sip.flowable.domain.Todo; import com.ruoyi.sip.flowable.service.DeleteFlowableProcessInstanceCmd; import com.ruoyi.sip.flowable.service.TodoCommonTemplate; @@ -273,6 +274,11 @@ public class OmsPurchaseOrderServiceImpl implements IOmsPurchaseOrderService, To return omsPurchaseOrderMapper.listApprove(omsPurchaseOrder,"bu_todo_completed"); } + @Override + public List listItem(OmsPurchaseOrderItemDto omsPurchaseOrder) { + return omsPurchaseOrderMapper.listItem(omsPurchaseOrder); + } + /** * 新增采购单明细表信息 diff --git a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml index 180aaf5c..939004c8 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml @@ -148,6 +148,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{item} + insert into oms_purchase_order