From b4984e6e4b9047016febcb4e34b9b6e0c0699975 Mon Sep 17 00:00:00 2001 From: chenhao Date: Mon, 8 Dec 2025 17:40:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(inventory):=20=E5=A2=9E=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在出库相关组件和接口中新增 orderType 字段传递与处理逻辑 - 调整导入功能根据订单类型决定是否弹出采购单选择框 - 更新出库表单提交时携带订单类型参数 - 后端实体类 InventoryOuter 和 ProjectOrderInfo 新增 orderType 属性 - 数据库映射文件同步增加 order_type 字段查询与插入支持 - 优化税率计算逻辑,防止空指针异常 - 调整页面布局以容纳订单类型下拉选择框 - 修复前端字典加载及日期格式显示问题 --- .../outer/components/GenerateDeliveryForm.vue | 9 ++++++++- .../src/views/project/order/components/OrderInfo.vue | 10 +++++++++- .../main/java/com/ruoyi/sip/domain/InventoryOuter.java | 1 + .../java/com/ruoyi/sip/domain/OmsInventoryInner.java | 2 +- .../java/com/ruoyi/sip/domain/ProjectOrderInfo.java | 1 + .../sip/service/impl/InventoryOuterServiceImpl.java | 1 + .../sip/service/impl/OmsInventoryInnerServiceImpl.java | 3 ++- .../java/com/ruoyi/sip/vo/OuterDeliveryProductVo.java | 1 + .../mapper/inventory/InventoryOuterMapper.xml | 1 + .../resources/mapper/sip/ProjectOrderInfoMapper.xml | 9 +++++++-- 10 files changed, 32 insertions(+), 6 deletions(-) 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 c88f401e..b618deb5 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 @@ -84,6 +84,7 @@ import { addDelivery, listProductSn } from '@/api/inventory/delivery'; import {importSnData,exportDownloadTemplate} from '@/api/inventory/outer' import PurchaseOrderSelectDialog from '../../../purchaseorder/components/PurchaseOrderSelectDialog.vue'; +import {handleTree} from "@/utils/ruoyi"; export default { name: "GenerateDeliveryForm", @@ -176,7 +177,12 @@ export default { }); }, handleSelectPurchaseBeforeImport() { - this.purchaseOrderSelectVisible = true; + if ((this.productData.orderType || '1') === '1') { + this.purchaseOrderSelectVisible = true; + }else{ + this.handleImport() + } + }, handlePurchaseOrderSelect(order) { this.warehouseId = order.warehouseId; @@ -198,6 +204,7 @@ export default { formData.append('file', file); formData.append('productCode', this.productData.productCode); formData.append('quantity', this.queryParams.pageSize); + formData.append('orderType', this.productData.orderType); importSnData(formData).then(response => { this.$message.success('导入成功'); diff --git a/oms_web/oms_vue/src/views/project/order/components/OrderInfo.vue b/oms_web/oms_vue/src/views/project/order/components/OrderInfo.vue index c8396f32..bdd55bcb 100644 --- a/oms_web/oms_vue/src/views/project/order/components/OrderInfo.vue +++ b/oms_web/oms_vue/src/views/project/order/components/OrderInfo.vue @@ -61,11 +61,18 @@ - + + + + + + + + @@ -227,6 +234,7 @@ export default { default: false } }, + dicts:['delivery_order_type'], data() { return { localOrderData: {}, diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuter.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuter.java index 09676c5b..6cdff1e2 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuter.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuter.java @@ -50,6 +50,7 @@ public class InventoryOuter extends BaseEntity @Excel(name = "产品型号") private String model; private String vendorName; + private String orderType; private List productCodeList; /** 数量 */ diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsInventoryInner.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsInventoryInner.java index c5b65940..b1cd121b 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsInventoryInner.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsInventoryInner.java @@ -67,7 +67,7 @@ public class OmsInventoryInner extends BaseEntity { private String warehouseType; @Excel(name = "经办人") private String createByName; - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "入库时间",dateFormat="yyyy-MM-dd HH:mm:ss") private Date createTime; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java index ca7501f7..a5b63600 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java @@ -61,6 +61,7 @@ public class ProjectOrderInfo extends BaseEntity { private String customerCode; private String customerPhone; private String customerUserName; + private String orderType; /** * 出货金额 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 155d4677..e56e4e5c 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 @@ -278,6 +278,7 @@ public class InventoryOuterServiceImpl implements IInventoryOuterService vo.setQuantity(item.getQuantity()); vo.setDeliveryGenerateQuantity(0L); vo.setDeliveryConfirmQuantity(0L); + vo.setOrderType(inventoryOuter.getOrderType()); List tempDeliveryList = deliveryListMap.get(vo.getWarehouseId()); if (CollUtil.isNotEmpty(tempDeliveryList)){ for (InventoryDelivery inventoryDelivery : tempDeliveryList) { 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 1d94bec7..1fd14df0 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 @@ -246,7 +246,8 @@ public class OmsInventoryInnerServiceImpl implements IOmsInventoryInnerService { // omsInventoryInner.setTaxTotal(inventoryInfoList.stream().map(item-> // item.getInnerPrice().divide(BigDecimal.ONE.add(item.getTaxRate()),2, RoundingMode.HALF_UP) // ).reduce(BigDecimal.ZERO, BigDecimal::add)); - BigDecimal divide = omsInventoryInner.getTotalAmount().divide(BigDecimal.ONE.add(omsInventoryInner.getTaxRate()), 2, RoundingMode.HALF_UP); + BigDecimal taxRate = omsInventoryInner.getTaxRate()==null?new BigDecimal("0.13"):omsInventoryInner.getTaxRate(); + BigDecimal divide = omsInventoryInner.getTotalAmount().divide(BigDecimal.ONE.add(taxRate), 2, RoundingMode.HALF_UP); omsInventoryInner.setTaxTotal(omsInventoryInner.getTotalAmount().subtract(divide)); 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 5942fb15..31b07907 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 @@ -26,6 +26,7 @@ public class OuterDeliveryProductVo { private Long deliveryConfirmQuantity; private Long availableCount; private String warehouseName; + private String orderType; private Long warehouseId; } diff --git a/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterMapper.xml b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterMapper.xml index de1ce0d7..83025681 100644 --- a/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterMapper.xml @@ -125,6 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" t1.update_time, t2.model, t3.vendor_name, + t4.order_type, t5.project_name, t5.project_code from oms_inventory_outer t1 diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml index 562ccabc..19ad8259 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml @@ -44,13 +44,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" shipment_amount, actual_purchase_amount, order_end_time, delivery_time, company_delivery, notifier,finance_status, notifier_email, notifier_phone, duty, duty_email, duty_phone, order_channel, partner_code, supplier,notifier_address, remark, order_status, create_by, create_time, update_by, update_time,version_code,process_type,process_template,discount_fold, - delivery_status,sign_status,outer_status,approve_time,payment_method,payment_ratio,payment_description + delivery_status,sign_status,outer_status,approve_time,payment_method,payment_ratio,payment_description,order_type from project_order_info t1 select t1.id, t1.project_id,t1.province, t1.city, t1.business_person, t1.business_email, t1.business_phone, t1.order_code, t1.currencyType, - t1.shipment_amount, t1.actual_purchase_amount, t1.order_end_time, t1.delivery_time, t1.company_delivery, t1.notifier, + t1.shipment_amount, t1.actual_purchase_amount, t1.order_end_time, t1.delivery_time, t1.company_delivery, t1.notifier,t1.order_tpye, t1.notifier_email, t1.notifier_phone, t1.duty, t1.duty_email, t1.duty_phone, t1.order_channel, t1.partner_code, t1.supplier, t1.remark, t1.order_status, t1.create_by, t1.create_time, t1.update_by, t1.update_time,t1.partner_user_name,t1.partner_email ,t1.partner_phone,t1.version_code,t1.process_type,t1.process_template,t1.discount_fold,t1.notifier_address,t1.finance_status, @@ -491,6 +491,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" notifier_phone, notifier_address, duty, + order_type, duty_email, duty_phone, order_channel, @@ -532,6 +533,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{notifierPhone}, #{notifierAddress}, #{duty}, + #{orderType}, #{dutyEmail}, #{dutyPhone}, #{orderChannel}, @@ -595,6 +597,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time, process_type, process_template, + order_type, discount_fold) select id, project_id, @@ -636,6 +639,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time, process_type, process_template, + order_type, discount_fold from project_order_info where order_code = #{orderCode} @@ -647,6 +651,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" project_id = #{projectId}, province = #{province}, city = #{city}, + order_type=#{orderType}, business_person = #{businessPerson}, business_email = #{businessEmail}, business_phone = #{businessPhone},