From 772064bee14a9c93f14fae0c2ff05f6e21f6cc89 Mon Sep 17 00:00:00 2001
From: chenhao <852066789@qq.com>
Date: Fri, 16 May 2025 15:14:32 +0800
Subject: [PATCH] =?UTF-8?q?feat(sip):=20=E6=B7=BB=E5=8A=A0=E5=90=88?=
=?UTF-8?q?=E5=90=8C=E6=B8=85=E5=8D=95=E5=AF=BC=E5=87=BA=E5=AF=BC=E5=85=A5?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 在 IOrderInfoService 接口中添加了 listExport 和 listImportData 方法
- 在 OrderInfoController 中添加了对应的控制器方法
- 在 OrderInfoMapper 中添加了 listExport 方法的 SQL 查询
- 在 OrderInfoServiceImpl 中实现了 listExport 和 listImportData 方法的逻辑
- 修改了 OrderList 类,将 discount 字段标记为 Excel 导出的字段
---
ruoyi-admin/pom.xml | 10 ++---
.../sip/controller/OrderInfoController.java | 21 +++++++++
.../java/com/ruoyi/sip/domain/OrderList.java | 17 +++----
.../com/ruoyi/sip/mapper/OrderInfoMapper.java | 4 ++
.../ruoyi/sip/service/IOrderInfoService.java | 5 +++
.../service/impl/OrderInfoServiceImpl.java | 45 +++++++++++++++++--
.../mapper/manage/OrderInfoMapper.xml | 31 ++++++++++++-
7 files changed, 114 insertions(+), 19 deletions(-)
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 874761c2..c9178ee3 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -24,11 +24,11 @@
-
- org.springframework.boot
- spring-boot-devtools
- true
-
+
+
+
+
+
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java
index cf546a75..1f875f37 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java
@@ -2,6 +2,7 @@ package com.ruoyi.sip.controller;
import java.util.List;
+import com.ruoyi.sip.domain.DeliveryList;
import com.ruoyi.sip.domain.MaintenanceRecordsDto;
import com.ruoyi.sip.domain.OrderList;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -17,6 +18,7 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
/**
* 合同档案Controller
@@ -132,4 +134,23 @@ public class OrderInfoController extends BaseController
{
return AjaxResult.success(orderInfoService.selectOrderInfoByMaintenance(dto));
}
+ @RequiresPermissions("sip:list:export")
+ @Log(title = "发货清单", businessType = BusinessType.EXPORT)
+ @PostMapping("/list/export")
+ @ResponseBody
+ public AjaxResult listExport(OrderList orderList) {
+ List list = orderInfoService.listExport(orderList);
+ ExcelUtil util = new ExcelUtil(OrderList.class);
+ return util.exportExcel(list, "合同清单数据");
+ }
+ @PostMapping("/list/importData")
+ @ResponseBody
+ public AjaxResult listImportData(MultipartFile file, Long orderId) throws Exception
+ {
+ ExcelUtil util = new ExcelUtil(OrderList.class);
+ List orderListList = util.importExcel(file.getInputStream());
+
+
+ return orderInfoService.listImportData(orderListList, orderId);
+ }
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OrderList.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OrderList.java
index 8d4763c7..e90a2a39 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OrderList.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OrderList.java
@@ -26,14 +26,14 @@ public class OrderList extends BaseEntity
private Long id;
/** 关联合同ID */
- @Excel(name = "关联合同ID")
+// @Excel(name = "关联合同ID")
private Long orderId;
/** 产品编码,关联产品编码表 */
@Excel(name = "BOM编码")
private String productCode;
- @Excel(name = "产品名称")
+// @Excel(name = "产品名称")
private String productName;
/** 数量 */
@@ -43,27 +43,28 @@ public class OrderList extends BaseEntity
/** 单价 */
@Excel(name = "单价")
private BigDecimal price;
-
+ /** 优惠 */
+ @Excel(name = "折扣")
+ private BigDecimal discount;
/** 总价 */
@Excel(name = "总价")
private BigDecimal amount;
- /** 优惠 */
- private BigDecimal discount;
+
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
- @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+// @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date createdAt;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
- @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
+// @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date updatedAt;
/** 删除时间,软删除 */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
- @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
+// @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date deletedAt;
private ProductInfo productInfo;
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OrderInfoMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OrderInfoMapper.java
index 27a68609..9b4cfc26 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OrderInfoMapper.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OrderInfoMapper.java
@@ -2,6 +2,7 @@ package com.ruoyi.sip.mapper;
import java.util.List;
+import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.sip.domain.MaintenanceRecordsDto;
import com.ruoyi.sip.domain.OrderInfo;
import com.ruoyi.sip.domain.OrderList;
@@ -105,4 +106,7 @@ public interface OrderInfoMapper
List selectOrderInfoByMaintenance(MaintenanceRecordsDto dto);
List listMaintenanceByOrderIdList(List orderIdList);
+
+ List listExport(OrderList orderList);
+
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOrderInfoService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOrderInfoService.java
index 272102b6..8b16209d 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOrderInfoService.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOrderInfoService.java
@@ -2,6 +2,7 @@ package com.ruoyi.sip.service;
import java.util.List;
+import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.sip.domain.MaintenanceRecordsDto;
import com.ruoyi.sip.domain.OrderInfo;
import com.ruoyi.sip.domain.OrderList;
@@ -73,4 +74,8 @@ public interface IOrderInfoService
* @return
*/
List getOrderInfo(ApiDataQueryDto dto);
+
+ List listExport(OrderList orderList);
+
+ AjaxResult listImportData(List orderListList, Long orderId);
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java
index 650b2ecf..f3144f7e 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java
@@ -1,10 +1,13 @@
package com.ruoyi.sip.service.impl;
-import java.util.Collections;
-import java.util.List;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Dict;
+import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.sip.domain.*;
import com.ruoyi.sip.dto.ApiDataQueryDto;
@@ -13,8 +16,7 @@ import com.ruoyi.sip.service.ICustomerInfoService;
import com.ruoyi.sip.vo.OrderInfoVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.Map;
+
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -186,6 +188,41 @@ public class OrderInfoServiceImpl implements IOrderInfoService
}).collect(Collectors.toList());
}
+ @Override
+ public List listExport(OrderList orderList) {
+ return orderInfoMapper.listExport(orderList);
+ }
+
+ @Override
+ public AjaxResult listImportData(List orderListList, Long orderId) {
+ Assert.notNull(orderId, "合同ID不能为空");
+ List productCodeList = orderListList.stream().map(OrderList::getProductCode).filter(Objects::nonNull).collect(Collectors.toList());
+ if (productCodeList.isEmpty()) {
+ return AjaxResult.error("文件为空或产品编码为空");
+ }
+ for (OrderList orderList : orderListList) {
+ orderList.setOrderId(orderId);
+ if (orderList.getDiscount() != null && (orderList.getDiscount().compareTo(BigDecimal.ONE) > 0 || orderList.getDiscount().compareTo(BigDecimal.ZERO) <= 0)) {
+ return AjaxResult.error("折扣区间需在0-1之间");
+ }
+ if (orderList.getPrice() == null) {
+ return AjaxResult.error("单价不能为空");
+ }
+ if (orderList.getQuantity() == null) {
+ return AjaxResult.error("单价不能为空");
+ }
+
+ BigDecimal amount = orderList.getPrice().multiply(new BigDecimal(orderList.getQuantity()));
+ if (orderList.getDiscount()!=null){
+ amount = amount.multiply(orderList.getDiscount()).setScale(2, RoundingMode.HALF_UP);
+ }
+ orderList.setAmount(amount);
+ }
+ orderInfoMapper.deleteOrderListByOrderId(orderId);
+ orderInfoMapper.batchOrderList(orderListList);
+ return AjaxResult.success("导入成功");
+ }
+
/**
* 查询代表处信息并构建映射
*/
diff --git a/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml
index 0eb31ae5..c36522a8 100644
--- a/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml
+++ b/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml
@@ -128,6 +128,9 @@
t1.version_code,
t1.order_name,
t1.customer_name,
+ t1.customer_code,
+ t1.customer_address,
+ t1.customer_postcode,
t1.customer_contact,
t1.customer_phone,
t1.customer_email,
@@ -207,6 +210,21 @@
#{item}
+
insert into order_info
@@ -216,6 +234,9 @@
version_code,
order_name,
customer_name,
+ customer_code,
+ customer_address,
+ customer_postcode,
customer_contact,
customer_phone,
customer_email,
@@ -233,6 +254,9 @@
#{versionCode},
#{orderName},
#{customerName},
+ #{customerCode},
+ #{customerAddress},
+ #{customerPostcode},
#{customerContact},
#{customerPhone},
#{customerEmail},
@@ -257,6 +281,9 @@
customer_contact = #{customerContact},
customer_phone = #{customerPhone},
customer_email = #{customerEmail},
+ customer_code=#{customerCode},
+ customer_address=#{customerAddress},
+ customer_postcode=#{customerPostcode},
order_type = #{orderType},
order_agent_code = #{orderAgentCode},
order_partner_code = #{orderPartnerCode},
@@ -318,9 +345,9 @@
- insert into order_list( id, order_id, product_code, quantity, price, amount, remark, created_at, updated_at) values
+ insert into order_list(id , order_id, product_code, quantity, price, amount,discount,remark, created_at, updated_at) values
- ( #{item.id}, #{item.orderId}, #{item.productCode}, #{item.quantity}, #{item.price}, #{item.amount},
+ ( #{item.id}, #{item.orderId}, #{item.productCode}, #{item.quantity}, #{item.price}, #{item.amount},#{item.discount},
#{item.remark}, now(),now())