From 6ef02b9d71b3f6af9bec3355c1f06f3782f1a142 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期三, 19 六月 2024 15:46:34 +0800
Subject: [PATCH] 加工单打印和导出功能

---
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java |  121 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 113 insertions(+), 8 deletions(-)

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 83830b8..181cfc4 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
@@ -9,6 +9,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.example.erp.common.Constants;
+import com.example.erp.dto.sd.OrderDTO;
 import com.example.erp.entity.sd.*;
 import com.example.erp.entity.userInfo.SysError;
 import com.example.erp.exception.ServiceException;
@@ -47,6 +48,7 @@
         Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class);
         List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("detail")), OrderDetail.class);
         List<OrderOtherMoney> orderOtherMoneyList = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("otherMoney")), OrderOtherMoney.class);
+
         boolean saveState = true;
         //璁剧疆鍥炴粴鐐�
         Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
@@ -99,6 +101,7 @@
         //鍒犻櫎鍏朵粬閲戦鏄庣粏琛�
         orderOtherMoneyMapper.delete(new LambdaQueryWrapper<OrderOtherMoney>().eq(OrderOtherMoney::getOrderId, order.getOrderId()));
 
+
         //鍒犻櫎璁㈠崟宸ヨ壓琛�
        // orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId()));
         insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList);
@@ -107,6 +110,7 @@
 
     //鎻掑叆鍏朵粬鍓〃鏁版嵁锛岃鍏朵粬鏂规硶寮曠敤
     public void insertOtherDetail(String orderId,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) {
+
         //鍏堟妸鍏朵粬閲戦鍓〃鐨勯噾棰濅笌鏁伴噺缃�0
         orderOtherMoneyList.forEach(orderOtherMoney -> {
             orderOtherMoney.setQuantity(0.0);
@@ -118,16 +122,26 @@
             OrderDetails.get(i).setOrderId(orderId);
             OrderDetails.get(i).setPerimeter(OrderDetails.get(i).getWidth()*OrderDetails.get(i).getHeight()*2/1000);
             OrderDetails.get(i).setWeight(1.0);
-            Map<String,Double> otherColumns = JSON.parseObject(OrderDetails.get(i).getOtherColumns(), new TypeReference<Map<String, Double>>(){});
-            int finalI = i;
+            if(OrderDetails.get(i).getBendRadius()!=null && OrderDetails.get(i).getBendRadius()!=0){
+                //鑾峰彇寮挗寮у害
+                Double bendRadius = OrderDetails.get(i).getBendRadius();
+                //鑾峰彇瀹�
+                Double width = OrderDetails.get(i).getWidth();
+                //鑾峰彇鎷遍珮
+                String archRiseS =  String.format("%.1f",bendRadius-(bendRadius*Math.cos(width/2/bendRadius)));
+                Double archRise = Double.parseDouble(archRiseS);
+                OrderDetails.get(i).setArchRise(archRise);
+            }
 
+            Map<String,Object> otherColumns = JSON.parseObject(OrderDetails.get(i).getOtherColumns(), new TypeReference<Map<String, Object>>(){});
+            int finalI = i;
 
             if(otherColumns!=null){
                 otherColumns.forEach((key, value) ->{
-                    if(value!=null) {
+                    if(value!=null && key.contains("M")) {
                         orderOtherMoneyList.forEach(orderOtherMoney -> {
                             if (orderOtherMoney.getColumn().equals(key)) {
-                                orderOtherMoney.setQuantity(orderOtherMoney.getQuantity()+(value * OrderDetails.get(finalI).getQuantity()));
+                                orderOtherMoney.setQuantity(orderOtherMoney.getQuantity()+(Double.parseDouble((String) value)  * OrderDetails.get(finalI).getQuantity()));
                             }
                         });
                     }
@@ -221,12 +235,12 @@
         return map;
     }
     //璁㈠崟瀹℃牳
-    public boolean reviewOrderById(String id,Integer status) {
+    public boolean reviewOrderById(String id, Integer status, String userId, String userName) {
         Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",id));
         if(order.getProcessReview()!=2){
             throw  new ServiceException(Constants.Code_600,"璇ヨ鍗曡繕鏈鏍�");
         }
-        return orderMapper.reviewOrderById(id,status);
+        return orderMapper.reviewOrderById(id,status,userId,userName);
     }
     //宸ヨ壓瀹℃牳鐣岄潰瀹℃牳鏇存柊鏁版嵁
     public boolean reviewProcessById(String id, Integer status,List<OrderGlassDetail> orderGlassDetails) {
@@ -311,8 +325,8 @@
         return map;
     }
 
-    public List<Order> exportOrderReport() {
-        return orderDetailMapper.exportOrderReport();
+    public List<OrderDTO> exportOrderReport(List<LocalDate> dates) {
+        return orderDetailMapper.exportOrderReport(dates);
     }
 
     public Map<String,Object> getOrderProductSummary(Integer pageNum, Integer pageSize, List<String> selectDate, OrderDetail orderDetail) {
@@ -338,4 +352,95 @@
 //        map.put("total",orderMapper.getPageTotal(offset, pageSize, startDate, endDate, orderDetail));
         return map;
     }
+
+    public List<OrderDTO> exportOrderProductSummary(List<LocalDate> dates) {
+        return orderDetailMapper.exportOrderProductSummary(dates);
+    }
+
+    public Map<String,String> getOrderProductDetailTag(String orderId) {
+        return orderDetailMapper.getOrderProductDetailTag(orderId);
+    }
+
+    public List<OrderDetail> getOrderDetailById(String id) {
+        return orderDetailMapper.selectList(new QueryWrapper<OrderDetail>().eq("order_id",id));
+    }
+
+    public List<OrderGlassDetail> getOrderCraftDetailById(String id) {
+         return orderGlassDetailMapper.selectOrderGlassDetailByOrderId(id);
+    }
+
+    public Object printOrderProductDetail(String orderId) {
+        List<Map<String,Object>> 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)));
+
+        List<Map<String,Object>> 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()))
+                );
+
+                List<OrderGlassDetail> orderGlassDetails =
+                        orderGlassDetailMapper.selectList(
+                                new QueryWrapper<OrderGlassDetail>().
+                                        eq("order_id",orderId).
+                                        eq("order_number",orderDetail.getOrderNumber())
+                        );
+                orderDetail.setOrderGlassDetails(orderGlassDetails);
+            });
+
+            orderProductDetailMap.put("productDetail",orderDetails);
+            orderProductDetail.add(orderProductDetailMap);
+        });
+        returns.put("orderDetail",orderProductDetail);
+
+
+
+
+
+
+
+        return returns;
+
+
+
+    }
 }

--
Gitblit v1.8.0