From d775904dc337dfa8da323732e59f1dd1f9cf1cd3 Mon Sep 17 00:00:00 2001 From: chenhao Date: Fri, 28 Nov 2025 11:29:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(purchaseorder):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E7=A1=AE=E8=AE=A4=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=8F=8A=E7=9B=B8=E5=85=B3=E9=A1=B5=E9=9D=A2=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增供应商确认状态枚举及流程类型枚举 - 新增供应商采购单列表查询接口 - 新增供应商确认操作相关API方法 - 新建供应商确认页面vendorConfirm.vue - 实现采购单供应商确认状态管理 - 更新OrderInfoDisplay组件引用路径 - 修复mapper中applyTime判断逻辑错误 - 添加页面初始化时路由参数打印调试信息 - 实现线上/线下流程类型选择功能 - 增加采购单详情查看和历史版本查看功能 - 实现供应商确认和驳回操作功能 - 添加确认状态和流程类型的查询条件 - 优化采购单列表展示和筛选功能 - 实现供应商确认状态标签显示 - 增加采购单发起日期和负责人信息展示 - 修复审批状态判断逻辑用于控制详情查看权限 - 实现采购单撤回功能及相关提示确认 - 添加含税总金额字段展示 - 增加联系人及联系电话信息展示列 --- oms_web/oms_vue/src/api/sip/purchaseorder.js | 7 + .../src/views/approve/order/Approve.vue | 2 +- .../src/views/inventory/execution/edit.vue | 2 +- .../src/views/project/order/OrderDetail.vue | 2 +- .../views/project/order/OrderDetailDrawer.vue | 2 +- .../project/order/components}/OrderInfo.vue | 0 .../order/components}/OrderInfoDisplay.vue | 0 .../oms_vue/src/views/purchaseorder/index.vue | 1 + .../src/views/purchaseorder/vendorConfirm.vue | 472 ++++++++++++++++++ .../vue/OmsPurchaseOrderController.java | 16 + .../ruoyi/sip/domain/OmsPurchaseOrder.java | 35 ++ .../mapper/sip/OmsPurchaseOrderMapper.xml | 16 +- 12 files changed, 546 insertions(+), 9 deletions(-) rename oms_web/oms_vue/src/{components/order => views/project/order/components}/OrderInfo.vue (100%) rename oms_web/oms_vue/src/{components/order => views/project/order/components}/OrderInfoDisplay.vue (100%) create mode 100644 oms_web/oms_vue/src/views/purchaseorder/vendorConfirm.vue diff --git a/oms_web/oms_vue/src/api/sip/purchaseorder.js b/oms_web/oms_vue/src/api/sip/purchaseorder.js index 7ba33668..161eabbb 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 listVendorPurchaseorder(query) { + return request({ + url: '/sip/purchaseorder/vendor/list', + method: 'get', + params: query + }) +} // 查询待审批采购单主表列表 export function listApprovePurchaseorder(query) { diff --git a/oms_web/oms_vue/src/views/approve/order/Approve.vue b/oms_web/oms_vue/src/views/approve/order/Approve.vue index f32ab927..c622cfe2 100644 --- a/oms_web/oms_vue/src/views/approve/order/Approve.vue +++ b/oms_web/oms_vue/src/views/approve/order/Approve.vue @@ -138,7 +138,7 @@ import ApproveLayout from '@/views/approve/ApproveLayout.vue'; import html2canvas from 'html2canvas'; import jsPDF from 'jspdf'; -import OrderInfoDisplay from '@/components/order/OrderInfoDisplay.vue'; +import OrderInfoDisplay from '@/views/project/order/components/OrderInfoDisplay.vue'; export default { name: "Approve", diff --git a/oms_web/oms_vue/src/views/inventory/execution/edit.vue b/oms_web/oms_vue/src/views/inventory/execution/edit.vue index f8d03db9..0d901e8e 100644 --- a/oms_web/oms_vue/src/views/inventory/execution/edit.vue +++ b/oms_web/oms_vue/src/views/inventory/execution/edit.vue @@ -88,7 +88,7 @@ import { getDicts } from "@/api/system/dict/data"; import CheckoutDialog from './CheckoutDialog.vue'; import OuterDetailDialog from './OuterDetailDialog.vue'; import OrderDetailDrawer from "@/views/project/order/OrderDetailDrawer.vue"; -import OrderInfo from "@/components/order/OrderInfoDisplay.vue"; +import OrderInfo from "@/views/project/order/components/OrderInfoDisplay.vue"; export default { name: "ExecutionEdit", diff --git a/oms_web/oms_vue/src/views/project/order/OrderDetail.vue b/oms_web/oms_vue/src/views/project/order/OrderDetail.vue index cd971bd9..6a7875f2 100644 --- a/oms_web/oms_vue/src/views/project/order/OrderDetail.vue +++ b/oms_web/oms_vue/src/views/project/order/OrderDetail.vue @@ -167,7 +167,7 @@ import { getOrder, addOrder, updateOrder, delContractFile, uploadContractFile, getProject } from "@/api/project/order"; import ProductConfig from '@/views/project/info/ProductConfig.vue'; import SelectCommitType from "./SelectCommitType.vue"; -import OrderInfo from '@/components/order/OrderInfo.vue'; +import OrderInfo from '@/views/project/order/components/OrderInfo.vue'; import SelectProject from "@/views/project/info/SelectProject"; import SelectUser from "@/views/system/user/selectUser"; import SelectPartner from "@/views/system/partner/selectPartner"; diff --git a/oms_web/oms_vue/src/views/project/order/OrderDetailDrawer.vue b/oms_web/oms_vue/src/views/project/order/OrderDetailDrawer.vue index 2423672a..d7b31f26 100644 --- a/oms_web/oms_vue/src/views/project/order/OrderDetailDrawer.vue +++ b/oms_web/oms_vue/src/views/project/order/OrderDetailDrawer.vue @@ -134,7 +134,7 @@ 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 d37e27b8..e9d44037 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 @@ -4,6 +4,7 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; +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; @@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; import java.util.List; /** @@ -49,6 +51,20 @@ public class OmsPurchaseOrderController extends BaseController todoService.fillPurchaseOrderApproveNode(list); return getDataTable(list); } + /** + * 查询采购单主表列表 + */ + @RequiresPermissions("sip:purchaseorder:list") + @GetMapping("/vendor/list") + public TableDataInfo listVendor(OmsPurchaseOrder omsPurchaseOrder) + { + + omsPurchaseOrder.setApproveStatus(ApproveStatusEnum.APPROVE_COMPLETE.getCode()); + omsPurchaseOrder.setFlowType(OmsPurchaseOrder.FlowTypeEnum.ONLINE.getCode()); + startPage(); + List list = omsPurchaseOrderService.selectOmsPurchaseOrderList(omsPurchaseOrder); + return getDataTable(list); + } /** * 查询待审批采购单主表列表 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 6acf4278..9d818883 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 @@ -5,6 +5,7 @@ import java.util.Date; import java.util.List; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; +import lombok.Getter; import lombok.ToString; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -104,5 +105,39 @@ public class OmsPurchaseOrder extends BaseEntity /** 采购单明细表信息 */ private List omsPurchaseOrderItemList; + @Getter + public enum ConfirmStatusEnum { + WAIT_CONFIRM("0", "待确认"), + CONFIRM("1", "已确认"), + REJECT("2", "已驳回"), + + ; + + private final String value; + private final String code; + + ConfirmStatusEnum(String code, String value) { + this.code = code; + this.value = value; + } + + } + @Getter + public enum FlowTypeEnum { + ONLINE("online", "线上"), + OFFLINE("offline", "线下"), + + + ; + + private final String value; + private final String code; + + FlowTypeEnum(String code, String value) { + this.code = code; + this.value = value; + } + + } } diff --git a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml index cc138f49..180aaf5c 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml @@ -77,10 +77,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -116,7 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t3.approve_user = #{entity.approveUser} - + and t3.apply_time between date_format(#{entity.params.applyTimeStart}, '%Y-%m-%d 00:00:00') and date_format(#{entity.params.applyTimeEnd}, '%Y-%m-%d 23:59:59')