From 25cc3d18fafda8360f3d2416084cf1d8d3c66b5a Mon Sep 17 00:00:00 2001 From: chenhao Date: Tue, 9 Dec 2025 10:43:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(inventory):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=87=87=E8=B4=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在库存出库明细实体类中新增 productType 字段 - 更新对应的 MyBatis Mapper 文件以支持 productType 查询 - 在库存外部服务实现中设置 productType 属性值 - 修改内部库存服务逻辑,针对特定供应商调整订单类型判断条件 - 增加对“新华三”开头供应商名称的特殊处理逻辑 - 路由配置新增采购审批及审批历史相关页面路径 - 审批订单和采购审批页面增加跳转至审批历史按钮 - 新增审批历史页面基础结构与返回功能 - 出库单生成前导入逻辑增加对 vendorName 和 productType 的控制台打印用于调试 --- oms_web/oms_vue/src/router/index.js | 22 +++++++++++++++++++ .../views/approve/approved_order/index.vue | 8 +++++++ .../oms_vue/src/views/approve/order/index.vue | 16 ++++++++++++++ .../views/approve/purchaase/approve/index.vue | 15 +++++++++++++ .../approve/purchaase/approved/index.vue | 11 ++++++++++ .../outer/components/GenerateDeliveryForm.vue | 2 +- .../sip/domain/InventoryOuterDetail.java | 1 + .../impl/InventoryOuterServiceImpl.java | 1 + .../impl/OmsInventoryInnerServiceImpl.java | 2 +- .../ruoyi/sip/vo/OuterDeliveryProductVo.java | 1 + .../inventory/InventoryOuterDetailMapper.xml | 3 ++- 11 files changed, 79 insertions(+), 3 deletions(-) diff --git a/oms_web/oms_vue/src/router/index.js b/oms_web/oms_vue/src/router/index.js index 6f986687..e122847c 100644 --- a/oms_web/oms_vue/src/router/index.js +++ b/oms_web/oms_vue/src/router/index.js @@ -74,6 +74,28 @@ export const constantRoutes = [ } ] }, + { + path: '/purchase', + component: Layout, + children: [ + { + path: 'approved', + component: () => import('@/views/approve/purchaase/approved/index'), + hidden: true + }, + ] + }, + { + path: '/approve', + component: Layout, + children: [ + { + path: 'orderLog', + component: () => import('@/views/approve/approved_order/index'), + hidden: true + }, + ] + }, { path: '/user', component: Layout, diff --git a/oms_web/oms_vue/src/views/approve/approved_order/index.vue b/oms_web/oms_vue/src/views/approve/approved_order/index.vue index 4cb5bb91..12ab63f3 100644 --- a/oms_web/oms_vue/src/views/approve/approved_order/index.vue +++ b/oms_web/oms_vue/src/views/approve/approved_order/index.vue @@ -56,6 +56,14 @@ + + 返回 + diff --git a/oms_web/oms_vue/src/views/approve/order/index.vue b/oms_web/oms_vue/src/views/approve/order/index.vue index 7e35960f..635c5f8d 100644 --- a/oms_web/oms_vue/src/views/approve/order/index.vue +++ b/oms_web/oms_vue/src/views/approve/order/index.vue @@ -58,7 +58,18 @@ + + + 审批历史 + + + @@ -155,6 +166,11 @@ export default { this.getList(); }, methods: { + toApproved(){ + this.$router.push({ + path: '/approve/orderLog', + }); + }, /** 查询订单列表 */ getList() { this.loading = true; diff --git a/oms_web/oms_vue/src/views/approve/purchaase/approve/index.vue b/oms_web/oms_vue/src/views/approve/purchaase/approve/index.vue index 2008e917..34222b36 100644 --- a/oms_web/oms_vue/src/views/approve/purchaase/approve/index.vue +++ b/oms_web/oms_vue/src/views/approve/purchaase/approve/index.vue @@ -29,7 +29,18 @@ 重置 + + + 审批历史 + + + @@ -122,6 +133,7 @@ export default { loading: true, showSearch: true, total: 0, + confirmDialogTitle:'', purchaseorderList: [], queryParams: { pageNum: 1, @@ -168,6 +180,9 @@ export default { }); }, methods: { + toApproved(){ + this.$router.push( '/purchase/approved' ) + }, // 列表页方法 getList() { this.loading = true; diff --git a/oms_web/oms_vue/src/views/approve/purchaase/approved/index.vue b/oms_web/oms_vue/src/views/approve/purchaase/approved/index.vue index fcf92d16..6152af0b 100644 --- a/oms_web/oms_vue/src/views/approve/purchaase/approved/index.vue +++ b/oms_web/oms_vue/src/views/approve/purchaase/approved/index.vue @@ -29,7 +29,18 @@ 重置 + + + 返回 + + + diff --git a/oms_web/oms_vue/src/views/inventory/outer/components/GenerateDeliveryForm.vue b/oms_web/oms_vue/src/views/inventory/outer/components/GenerateDeliveryForm.vue index b618deb5..2b2a0b85 100644 --- a/oms_web/oms_vue/src/views/inventory/outer/components/GenerateDeliveryForm.vue +++ b/oms_web/oms_vue/src/views/inventory/outer/components/GenerateDeliveryForm.vue @@ -177,7 +177,7 @@ export default { }); }, handleSelectPurchaseBeforeImport() { - if ((this.productData.orderType || '1') === '1') { + if (((this.productData.orderType || '1') === '1' ) || !(this.outerData.vendorName.startsWith('新华三') && this.productData.productType==='2')) { this.purchaseOrderSelectVisible = true; }else{ this.handleImport() diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuterDetail.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuterDetail.java index 1a75d210..67a30bbc 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuterDetail.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuterDetail.java @@ -42,5 +42,6 @@ public class InventoryOuterDetail extends BaseEntity private String productCode; private String model; private String productName; + private String productType; } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryOuterServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryOuterServiceImpl.java index e56e4e5c..b7e2934e 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryOuterServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryOuterServiceImpl.java @@ -271,6 +271,7 @@ public class InventoryOuterServiceImpl implements IInventoryOuterService vo.setId(item.getId()); vo.setProductCode(item.getProductCode()); vo.setModel(item.getModel()); + vo.setProductType(item.getProductType()); vo.setQuantity(item.getQuantity()); vo.setWarehouseId(item.getWarehouseId()); vo.setWarehouseName(item.getWarehouseName()); diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java index 1fd14df0..9c1f6e4e 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java @@ -272,7 +272,7 @@ public class OmsInventoryInnerServiceImpl implements IOmsInventoryInnerService { throw new ServiceException("产品编码对应产品未找到"); } Map warehouseInfoMap=Collections.emptyMap(); - if ("2".equalsIgnoreCase(orderType)){ + if ("2".equalsIgnoreCase(orderType)|| ("2".equalsIgnoreCase(productInfos.get(0).getType()) || productInfos.get(0).getVendorName().startsWith("新华三")) ){ List warehouseNameList = inventoryInfoExcelDtoList.stream().map(InventoryInfoExcelDto::getWarehouseName).distinct().collect(Collectors.toList()); if (warehouseNameList.size() > 1){ throw new ServiceException("导入清单只能有一个仓库"); diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/OuterDeliveryProductVo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/OuterDeliveryProductVo.java index 31b07907..cdb7a800 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/OuterDeliveryProductVo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/OuterDeliveryProductVo.java @@ -28,5 +28,6 @@ public class OuterDeliveryProductVo { private String warehouseName; private String orderType; private Long warehouseId; + private String productType; } diff --git a/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterDetailMapper.xml b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterDetailMapper.xml index 1efd2441..a9365aa4 100644 --- a/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterDetailMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterDetailMapper.xml @@ -21,7 +21,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" t2.warehouse_name, t4.product_code, t4.model, - t4.available_count + t4.available_count, + t4.type as product_type from oms_inventory_outer_detail t1 left join oms_warehouse_info t2 on t1.warehouse_id=t2.id left join oms_inventory_outer t3 on t1.outer_code=t3.outer_code From 0b1d0f45ccee84581319553ab43f8db6941366e3 Mon Sep 17 00:00:00 2001 From: chenhao Date: Fri, 12 Dec 2025 10:59:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(inventory):=20=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E5=AF=BC=E5=85=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=8F=8A=E4=BA=A7=E5=93=81=E7=B1=BB=E5=9E=8B=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了采购订单导入前的判断逻辑,确保新华三产品类型正确处理 - 在内部库存查询中增加了产品类型'70'的支持 - 更新了用户个人资料页面的部门显示逻辑 - 移除了控制台调试日志输出 - 新增批量审批订单功能接口与实现 - 优化项目选择回调函数并同步 shipmentAmount 字段 - 修正采购订单详情中的制造商名称显示问题 - 在采购订单明细中增加税率展示列 - 更新用户密码重置接口调用方式和参数结构 - 调整后端获取用户信息接口路径以支持 Vue 页面需求 --- oms_web/oms_vue/src/api/system/user.js | 13 +++++-------- oms_web/oms_vue/src/views/inventory/inner/index.vue | 4 ++-- .../outer/components/GenerateDeliveryForm.vue | 2 +- .../oms_vue/src/views/project/order/OrderDetail.vue | 10 +++++++--- .../components/PurchaseOrderDetail.vue | 4 ++-- .../components/PurchaseOrderDetailView.vue | 5 +++++ .../oms_vue/src/views/system/user/profile/index.vue | 6 +++--- .../src/views/system/user/profile/resetPwd.vue | 9 ++++++++- .../web/controller/system/SysProfileController.java | 8 ++++++++ .../sip/controller/ProjectOrderInfoController.java | 7 +++++++ .../ruoyi/sip/service/IProjectOrderInfoService.java | 2 ++ .../service/impl/OmsInventoryInnerServiceImpl.java | 4 ++-- .../service/impl/ProjectOrderInfoServiceImpl.java | 13 +++++++++++++ 13 files changed, 65 insertions(+), 22 deletions(-) diff --git a/oms_web/oms_vue/src/api/system/user.js b/oms_web/oms_vue/src/api/system/user.js index 020b9f16..8169ac5e 100644 --- a/oms_web/oms_vue/src/api/system/user.js +++ b/oms_web/oms_vue/src/api/system/user.js @@ -79,7 +79,7 @@ export function changeUserStatus(userId, status) { // 查询用户个人信息 export function getUserProfile() { return request({ - url: '/system/user/profile', + url: '/system/user/profile/vue', method: 'get' }) } @@ -94,14 +94,11 @@ export function updateUserProfile(data) { } // 用户密码重置 -export function updateUserPwd(oldPassword, newPassword) { - const data = { - oldPassword, - newPassword - } +export function updateUserPwd(data) { return request({ - url: '/system/user/profile/updatePwd', - method: 'put', + url: '/system/user/profile/resetPwd', + method: 'post', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, data: data }) } 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 01aff739..de141546 100644 --- a/oms_web/oms_vue/src/views/inventory/inner/index.vue +++ b/oms_web/oms_vue/src/views/inventory/inner/index.vue @@ -421,7 +421,7 @@ export default { handleQuery() { this.queryParams.pageNum = 1; if (this.activeTab==='service'){ - this.queryParams.productTypeList = ['11','22']; + this.queryParams.productTypeList = ['11','22','70']; }else{ this.queryParams.productTypeList = ['1','2','99']; } @@ -452,7 +452,7 @@ export default { this.reset(); if (type==='maintenance'){ this.isServiceIn = true; - this.queryProductType=['11','22'] + this.queryProductType=['11','22','70'] }else{ this.isServiceIn = false; this.queryProductType=['1','2','99'] diff --git a/oms_web/oms_vue/src/views/inventory/outer/components/GenerateDeliveryForm.vue b/oms_web/oms_vue/src/views/inventory/outer/components/GenerateDeliveryForm.vue index 2b2a0b85..688a3049 100644 --- a/oms_web/oms_vue/src/views/inventory/outer/components/GenerateDeliveryForm.vue +++ b/oms_web/oms_vue/src/views/inventory/outer/components/GenerateDeliveryForm.vue @@ -177,7 +177,7 @@ export default { }); }, handleSelectPurchaseBeforeImport() { - if (((this.productData.orderType || '1') === '1' ) || !(this.outerData.vendorName.startsWith('新华三') && this.productData.productType==='2')) { + if (((this.productData.orderType || '1') === '1' ) && !(this.outerData.vendorName.startsWith('新华三') && this.productData.productType==='2')) { this.purchaseOrderSelectVisible = true; }else{ this.handleImport() 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 44e3ddc8..77fbb06b 100644 --- a/oms_web/oms_vue/src/views/project/order/OrderDetail.vue +++ b/oms_web/oms_vue/src/views/project/order/OrderDetail.vue @@ -149,7 +149,7 @@ 取 消 - + @@ -400,8 +400,6 @@ export default { ] }); this.activeContractVersionTab = currentVersion; - console.log('11111') - console.log(this.projectId) if (this.projectId) { getProject(this.projectId).then(response => { this.handleProjectSelected(response.data.project); @@ -409,6 +407,11 @@ export default { } } }, + selectProject(projectData){ + getProject(projectData.id).then(response => { + this.handleProjectSelected(response.data.project); + }); + }, handleClose() { this.$emit('update:visible', false); }, @@ -505,6 +508,7 @@ export default { this.form.industryType = projectData.industryType; this.isProjectSelected = true; this.selectProjectVisible = false; + this.form.shipmentAmount = this.totalConfigAmount; }, openSelectPeople() { this.selectUserVisible = true; diff --git a/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetail.vue b/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetail.vue index 2bdd9f20..8e790d98 100644 --- a/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetail.vue +++ b/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetail.vue @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@ - {{ selectedVendor.vendorAddress }} + {{ selectedVendor.vendorName }} diff --git a/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetailView.vue b/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetailView.vue index 448f77b2..6fba255b 100644 --- a/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetailView.vue +++ b/oms_web/oms_vue/src/views/purchaseorder/components/PurchaseOrderDetailView.vue @@ -142,6 +142,11 @@ {{ scope.row.price }} + + +