From 9cc5c64fee605df8e36897d5811a7b1f894b15f6 Mon Sep 17 00:00:00 2001 From: kangwenjing <1138819403@qq.com> Date: Sun, 20 Sep 2026 17:52:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E5=8F=91=E8=B4=A7?= =?UTF-8?q?=E6=92=A4=E5=9B=9E=E4=BC=98=E5=8C=96=E3=80=81=E8=B4=A2=E5=8A=A1?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E6=B8=85=E7=90=86=E4=B8=8E=E5=A4=9A=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 本次提交完成了一系列核心功能优化与修复: 1. **发货流程优化**:实现发货撤回校验、发货状态展示与控制,限制一次性发满剩余应发数量,新增通过出库单号反查库存明细的方法 2. **财务单据优化**:新增多级财务单据级联删除方法,修复应收/应付单搜索模糊匹配问题,实现红冲单负数金额高亮展示 3. **前端页面优化**:新增发货状态标签、应收/应付单商品明细展示,修复产品表单预装系统类型显示逻辑,优化文件上传非必填校验 4. **性能优化**:为高频查询表添加二级索引优化撤回操作性能 5. **工具类新增**:新增商品明细组装工具类,支持冲红单明细金额缩放适配 6. **业务逻辑修复**:修复订单撤单时的应收应付处理逻辑,移除冗余的权限默认过滤,新增重复撤回拦截校验 --- .DS_Store | Bin 10244 -> 10244 bytes oms_web/oms_vue/src/api/inventory/delivery.js | 8 + .../src/views/finance/payable/index.vue | 34 +- .../payment/components/ReceiptDialog.vue | 891 ++++++++++++------ .../receivable/components/EditForm.vue | 21 + .../src/views/finance/receivable/index.vue | 27 +- .../receive/components/ApplyPaymentDialog.vue | 198 ++-- .../src/views/finance/receive/index.vue | 2 +- .../src/views/inventory/delivery/index.vue | 18 +- .../src/views/inventory/execution/edit.vue | 3 +- .../outer/components/GenerateDeliveryForm.vue | 10 + .../inventory/outer/components/OuterForm.vue | 180 ++-- .../src/views/inventory/outer/index.vue | 6 +- .../src/views/system/product/index.vue | 9 +- .../src/main/resources/application-dev.yml | 2 +- .../controller/OmsReceiptBillController.java | 2 +- .../controller/vue/VueDeliveryController.java | 42 +- .../vue/VueInventoryOuterController.java | 2 +- .../ruoyi/sip/domain/OmsReceivableBill.java | 3 + .../sip/domain/dto/PayableGoodsDetailDto.java | 2 +- .../sip/mapper/InventoryDeliveryMapper.java | 39 + .../ruoyi/sip/mapper/InventoryInfoMapper.java | 9 + .../mapper/OmsPayablePaymentDetailMapper.java | 8 + .../mapper/OmsPayableTicketDetailMapper.java | 8 + .../mapper/OmsPayableTicketPlanMapper.java | 8 + .../OmsReceivableInvoiceDetailMapper.java | 8 + .../OmsReceivableInvoicePlanMapper.java | 8 + .../OmsReceivableReceiptDetailMapper.java | 8 + .../service/IInventoryDeliveryService.java | 28 +- .../impl/ExecutionTrackServiceImpl.java | 56 +- .../impl/InventoryDeliveryServiceImpl.java | 700 ++++++++++++-- .../impl/InventoryOuterServiceImpl.java | 15 + .../impl/OmsInvoiceBillServiceImpl.java | 14 +- .../impl/OmsPayableBillServiceImpl.java | 80 +- .../impl/OmsPaymentBillServiceImpl.java | 19 +- .../impl/OmsReceiptBillServiceImpl.java | 28 +- .../impl/OmsReceivableBillServiceImpl.java | 67 ++ .../service/impl/ProjectInfoServiceImpl.java | 14 +- .../impl/ProjectOrderInfoServiceImpl.java | 55 +- .../service/impl/QuotationServiceImpl.java | 25 +- .../com/ruoyi/sip/utils/GoodsDetailUtils.java | 116 +++ .../mapper/finance/OmsPayableBillMapper.xml | 4 +- .../finance/OmsPayablePaymentDetailMapper.xml | 5 + .../inventory/InventoryDeliveryMapper.xml | 113 ++- .../mapper/inventory/InventoryInfoMapper.xml | 10 + .../mapper/inventory/InventoryOuterMapper.xml | 1 + .../sip/OmsPayableTicketDetailMapper.xml | 5 + .../mapper/sip/OmsPayableTicketPlanMapper.xml | 5 + .../mapper/sip/OmsReceivableBillMapper.xml | 2 +- .../sip/OmsReceivableInvoiceDetailMapper.xml | 5 + .../sip/OmsReceivableInvoicePlanMapper.xml | 4 + .../sip/OmsReceivableReceiptDetailMapper.xml | 5 + sql/202090918update.sql | 31 + 53 files changed, 2159 insertions(+), 804 deletions(-) create mode 100644 ruoyi-sip/src/main/java/com/ruoyi/sip/utils/GoodsDetailUtils.java create mode 100644 sql/202090918update.sql diff --git a/.DS_Store b/.DS_Store index 3e708b8b8f9674b22fc793a2e51685250de52364..f0764fdf0def66a48874ba68c25ff5f5c365ba94 100644 GIT binary patch delta 14 VcmZn(XbITBC&b9GnP2FuC;%ec1Xut7 delta 14 VcmZn(XbITBC&b9OnP2FuC;%ei1X%z8 diff --git a/oms_web/oms_vue/src/api/inventory/delivery.js b/oms_web/oms_vue/src/api/inventory/delivery.js index 34323822..0550cba4 100644 --- a/oms_web/oms_vue/src/api/inventory/delivery.js +++ b/oms_web/oms_vue/src/api/inventory/delivery.js @@ -61,6 +61,14 @@ export function recallApply(id, reason, amountChanged) { }) } +// 按发货记录 id 检查关联财务单据的审批状态(撤回/作废按钮前置校验) +export function checkRecallByDelivery(deliveryId) { + return request({ + url: '/inventory/delivery/vue/recall/check-by-delivery/' + deliveryId, + method: 'get' + }) +} + // 导出采购合同 export function exportDelivery(query) { return request({ diff --git a/oms_web/oms_vue/src/views/finance/payable/index.vue b/oms_web/oms_vue/src/views/finance/payable/index.vue index 22aeeca3..3b167f6c 100644 --- a/oms_web/oms_vue/src/views/finance/payable/index.vue +++ b/oms_web/oms_vue/src/views/finance/payable/index.vue @@ -41,14 +41,14 @@ - - - - - - - - + + + - + @@ -467,6 +467,15 @@ export default { } return {}; }, + /** 金额列负数(红冲单)时加红色样式类 */ + amountCellClassName({ row, column }) { + const amountProps = ['planAmount', 'totalPriceWithTax', 'unpaidPaymentAmount', 'unreceivedTicketAmount']; + const cellValue = row[column.property]; + if (amountProps.includes(column.property) && Number(cellValue) < 0) { + return 'amount-negative'; + } + return ''; + }, /** 时间处理 */ timeProcessing(value) { if (value === null || value === undefined || value === '') return ''; @@ -476,8 +485,13 @@ export default { }; - diff --git a/oms_web/oms_vue/src/views/finance/payment/components/ReceiptDialog.vue b/oms_web/oms_vue/src/views/finance/payment/components/ReceiptDialog.vue index ce4419b1..9ec89bb8 100644 --- a/oms_web/oms_vue/src/views/finance/payment/components/ReceiptDialog.vue +++ b/oms_web/oms_vue/src/views/finance/payment/components/ReceiptDialog.vue @@ -1,112 +1,71 @@ diff --git a/oms_web/oms_vue/src/views/finance/receivable/components/EditForm.vue b/oms_web/oms_vue/src/views/finance/receivable/components/EditForm.vue index 285c32b7..34c67ba9 100644 --- a/oms_web/oms_vue/src/views/finance/receivable/components/EditForm.vue +++ b/oms_web/oms_vue/src/views/finance/receivable/components/EditForm.vue @@ -92,6 +92,27 @@
+ 商品明细 + + + + + + + + + + + + + + + + 销售-收款单 diff --git a/oms_web/oms_vue/src/views/finance/receivable/index.vue b/oms_web/oms_vue/src/views/finance/receivable/index.vue index 0545c042..e3763524 100644 --- a/oms_web/oms_vue/src/views/finance/receivable/index.vue +++ b/oms_web/oms_vue/src/views/finance/receivable/index.vue @@ -33,6 +33,14 @@ @keyup.enter.native="handleQuery" /> + + + - + @@ -204,6 +212,7 @@ export default { projectName: null, receivableBillCode: null, partnerName: null, + inventoryCode: null, productType: null, collectionStatus: null, createTimeStart: null, @@ -329,6 +338,15 @@ export default { this.getList(); // Refresh the list }); }, + /** 金额列负数(红冲单)时加红色样式类 */ + amountCellClassName({ row, column }) { + const amountProps = ['planAmount', 'totalPriceWithTax', 'unreceivedAmount', 'uninvoicedAmount']; + const cellValue = row[column.property]; + if (amountProps.includes(column.property) && Number(cellValue) < 0) { + return 'amount-negative'; + } + return ''; + }, /** 时间处理 */ timeProcessing(value) { if (value === null || value === undefined || value === '') return ''; @@ -338,8 +356,13 @@ export default { }; - diff --git a/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue b/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue index fc2d3aa0..4aead149 100644 --- a/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue +++ b/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue @@ -1,9 +1,9 @@