From 6644ee666dc099e0d808b03a5c91de51ddf37e62 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期四, 04 七月 2024 13:21:06 +0800
Subject: [PATCH] 提交

---
 north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml               |   11 +++++++++++
 north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java |    7 +++++++
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java   |    2 ++
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java       |   35 +++++++++++++++++++++++++++++++++++
 4 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
index 9ff23e8..4138b9b 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -185,5 +185,12 @@
         return   Result.seccess(orderService.printOrderProductGlassDetail(orderId));
     }
 
+    @ApiOperation("璁㈠崟鍔犲伐鍗曟墦鍗�-鎴愬搧2")
+    @GetMapping ("/printOrderProductDetail/{orderId}/{productId}")
+    public Result printOrderProductDetail(@PathVariable String orderId,@PathVariable String productId)  {
+
+        return   Result.seccess(orderService.printOrderProductDetails(orderId,productId));
+    }
+
 
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
index 77d76c8..28407b3 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
@@ -33,6 +33,8 @@
 
     List<Map<String,Object>> getOrderProductDistinctById(String orderId);
 
+    List<Map<String,Object>> getOrderProductDistinctByIds(String orderId,String productId);
+
     List<OrderDetail> getOrderProductByProductId(Object productId, String orderId);
 
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
index 46d7340..d0bb39e 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -449,6 +449,41 @@
         return returns;
     }
 
+    public Object printOrderProductDetails(String orderId,String productId) {
+        List<Map<String,Object>> orderProductDistinct;
+        if (productId!=""){
+             orderProductDistinct = orderDetailMapper.getOrderProductDistinctByIds(orderId,productId);
+        }else{
+             orderProductDistinct = orderDetailMapper.getOrderProductDistinctById(orderId);
+        }
+
+        List<Map<String,Object>> orderProductDetail = new ArrayList<>();
+        orderProductDistinct.forEach(map->{
+            Map<String,Object> orderProductDetailMap = new HashMap<>();
+            orderProductDetailMap.put("productId",map.get("productId"));
+            orderProductDetailMap.put("productName",map.get("productName"));
+            List<OrderDetail> orderDetails = orderDetailMapper.getOrderProductByProductId(map.get("productId"),orderId);
+            orderDetails.forEach(orderDetail->{
+
+                orderDetail.setGrossArea(
+                        Double.parseDouble(String.format("%.3f",Double.parseDouble(
+                                String.format("%.3f",
+                                        orderDetail.getWidth()*orderDetail.getHeight()/1000000)
+                        ) * orderDetail.getQuantity()))
+                );
+            });
+
+            orderProductDetailMap.put("productDetail",orderDetails);
+            orderProductDetail.add(orderProductDetailMap);
+        });
+
+        Map<String,Object> returns = new HashMap<>();
+
+        returns.put("orderProductDetail",orderProductDetail);
+        returns.put("order",orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",orderId)));
+        return returns;
+    }
+
     public Object printOrderProductGlassDetail(String orderId) {
         Map<String,Object> returns = new HashMap<>();
         returns.put("order",orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",orderId)));
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
index e9bfbc6..c189f67 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -775,6 +775,17 @@
         group by a.product_id
     </select>
 
+    <select id="getOrderProductDistinctByIds">
+        select
+
+            (a.product_id) as 'productId',
+            a.product_name as 'productName',
+            a.order_number as 'orderNumber'
+        from order_detail as a
+        where a.order_id = #{orderId} and a.product_id regexp #{productId}
+        group by a.product_id
+    </select>
+
     <select id="getOrderProductByProductId">
         select
             *

--
Gitblit v1.8.0