From 26633e17d9e9a612e4744405d214cf513d13bffd Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期四, 26 九月 2024 13:56:34 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java |  127 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 105 insertions(+), 22 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 b4125de..18404fb 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
@@ -25,6 +25,7 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.sql.SQLOutput;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
@@ -106,12 +107,19 @@
         Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
         //鍒ゆ柇浼犲叆id鍙傛暟鏄惁涓虹┖锛屾湭浼犲叆id涓虹┖鎻掑叆璁㈠崟琛紝浼犲叆鏇存柊琛�
         try{
+            Log log = new Log();
+            log.setOperator(order.getCreator());
+            log.setOperatorId(order.getCreatorId());
+            log.setContent(orderMap.toString());
+            log.setFunction("saveOrderTitle淇濆瓨琛ㄥご:"+order.getOrderId());
+
             LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>();
             updateWrapper.eq(Order::getOrderId, order.getOrderId());
             order.setCreateTime(null);
             orderMapper.update(order,updateWrapper);
             //淇敼璁㈠崟涓昏〃闈㈢Н涓庡懆闀夸互鍙婇噸閲�
             orderMapper.updateOrderParameter(order.getOrderId());
+            logService.saveLog(log);
 
         }catch (Exception e){
             TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
@@ -186,30 +194,35 @@
 
     //淇敼璁㈠崟鏁版嵁锛屽苟涓旈噸鏂扮敓鎴愬涓壇琛ㄦ暟鎹�
     public void updateOrder(Order order,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) {
+
         order.setCreateTime(null);
         LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.eq(Order::getOrderId, order.getOrderId());
         orderMapper.update(order,updateWrapper);
-            //鍒犻櫎璁㈠崟鏄庣粏琛�
-            orderDetailMapper.delete(new LambdaQueryWrapper<OrderDetail>().eq(OrderDetail::getOrderId, order.getOrderId()));
-            //鍒犻櫎璁㈠崟灏忕墖琛�
-            orderGlassDetailMapper.delete(new LambdaQueryWrapper<OrderGlassDetail>().eq(OrderGlassDetail::getOrderId, order.getOrderId()));
-            //鍒犻櫎鍏朵粬閲戦鏄庣粏琛�
-            orderOtherMoneyMapper.delete(new LambdaQueryWrapper<OrderOtherMoney>().eq(OrderOtherMoney::getOrderId, order.getOrderId()));
+        //鍒犻櫎璁㈠崟鏄庣粏琛�
+        orderDetailMapper.delete(new LambdaQueryWrapper<OrderDetail>().eq(OrderDetail::getOrderId, order.getOrderId()));
+        //鍒犻櫎璁㈠崟灏忕墖琛�
+        orderGlassDetailMapper.delete(new LambdaQueryWrapper<OrderGlassDetail>().eq(OrderGlassDetail::getOrderId, order.getOrderId()));
+        //鍒犻櫎鍏朵粬閲戦鏄庣粏琛�
+        orderOtherMoneyMapper.delete(new LambdaQueryWrapper<OrderOtherMoney>().eq(OrderOtherMoney::getOrderId, order.getOrderId()));
 
+        //鍒犻櫎璁㈠崟宸ヨ壓琛�
+        // orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId()));
 
-            //鍒犻櫎璁㈠崟宸ヨ壓琛�
-            // orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId()));
-            insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList);
+        insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList);
     }
+
 
 
     //鎻掑叆鍏朵粬鍓〃鏁版嵁锛岃鍏朵粬鏂规硶寮曠敤
     public void insertOtherDetail(String orderId,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) {
         //鍏堟妸鍏朵粬閲戦鍓〃鐨勯噾棰濅笌鏁伴噺缃�0
-        orderOtherMoneyList.forEach(orderOtherMoney -> {
-            orderOtherMoney.setQuantity(0.0);
-        });
+        if(orderOtherMoneyList!=null){
+            orderOtherMoneyList.forEach(orderOtherMoney -> {
+                orderOtherMoney.setQuantity(0.0);
+            });
+        }
+
 
         //寰幆缁欒鍗曟槑缁嗚〃瀛楁娣诲姞搴忓彿鍜屽懆闀�
         for (int i = 0; i < OrderDetails.size(); i++) {
@@ -232,8 +245,10 @@
 
             Map<String,Object> otherColumns = JSON.parseObject(OrderDetails.get(i).getOtherColumns(), new TypeReference<Map<String, Object>>(){});
             int finalI = i;
-
             if(otherColumns!=null){
+                otherColumns.values().removeIf(value -> value == null || value.equals(""));
+                OrderDetails.get(i).setOtherColumns(JSON.toJSONString(otherColumns));
+
                 otherColumns.forEach((key, value) ->{
 
                     if(value!=null && !value.equals("") && key.contains("M")) {
@@ -246,9 +261,10 @@
                     }
 
                 });
-            }else if(OrderDetails.get(i).getOtherColumns()==null){
+            }else{
                 OrderDetails.get(i).setOtherColumns("{}");
             }
+
         }
 
 
@@ -258,14 +274,17 @@
         orderDetailMapper.insertBatch(OrderDetails);
         //寰�灏忕墖琛ㄤ紶鍏ヤ骇鍝佹暟鎹�
         orderGlassDetailMapper.insertOrderGlassDetail(orderId);
-        orderOtherMoneyList.forEach(orderOtherMoney ->{
-            orderOtherMoney.setId(null);
-            orderOtherMoney.setOrderId(orderId);
-            if(orderOtherMoney.getQuantity()!=null && orderOtherMoney.getPrice()!=null){
-                orderOtherMoney.setMoney((orderOtherMoney.getQuantity()*orderOtherMoney.getPrice()));
-            }
-            orderOtherMoneyMapper.insert(orderOtherMoney);
-        });
+        if(orderOtherMoneyList!=null){
+            orderOtherMoneyList.forEach(orderOtherMoney ->{
+                orderOtherMoney.setId(null);
+                orderOtherMoney.setOrderId(orderId);
+                if(orderOtherMoney.getQuantity()!=null && orderOtherMoney.getPrice()!=null){
+                    orderOtherMoney.setMoney((orderOtherMoney.getQuantity()*orderOtherMoney.getPrice()));
+                }
+                orderOtherMoneyMapper.insert(orderOtherMoney);
+            });
+        }
+
         //淇敼璁㈠崟涓昏〃闈㈢Н涓庡懆闀夸互鍙婇噸閲�
         orderMapper.updateOrderParameter(orderId);
 
@@ -384,6 +403,11 @@
             BigDecimal getGrossAmount= BigDecimal.valueOf(orderDetail.getGrossAmount());
             money+=getGrossAmount.doubleValue();
         }
+        Log log = new Log();
+        log.setOperator(order.getCreator());
+        log.setOperatorId(order.getCreatorId());
+        log.setContent(jsonObject.toString());
+        log.setFunction("updateOrderMoney閲戦閲嶇疆:"+order.getOrderId());
 
         orderOtherMoneyList.forEach(orderOtherMoney -> {
             if(orderOtherMoney.getQuantity()!=null && orderOtherMoney.getPrice()!=null){
@@ -397,6 +421,7 @@
         order.setOtherMoney(orderOtherMoneyMapper.selectGrossAmount(order.getOrderId()));
         orderMapper.updateMoney(order);
         orderDetailMapper.updateOrderMoney(OrderDetails);
+        logService.saveLog(log);
         return false;
     }
 
@@ -663,4 +688,62 @@
     public boolean updateOrderPrintNumber(String orderId) {
         return orderMapper.updateOrderPrintNumber(orderId);
     }
+
+    public String updateOrderId(Map<String, Object> map) {
+        String saveState = "true";
+        JSONObject orderJson = new JSONObject(map);
+        String oldOrderId = orderJson.getString("oldOrderId");
+        String newOrderId = orderJson.getString("newOrderId");
+        String orderIdType = orderJson.getString("orderIdType");
+
+        Log log = new Log();
+        log.setContent(map.toString());
+        log.setFunction("updateOrderId淇敼璁㈠崟鍙�");
+        log.setOperator(orderJson.getString("creator"));
+
+
+        if(!Objects.equals(newOrderId, oldOrderId)){
+            if(newOrderId.length()!=10){
+                return "false4";
+            }
+            if(!newOrderId.substring(2, 10).matches("\\d+")){
+                return "false5";
+            }
+            if(Objects.equals(orderIdType, "day")){
+                if(orderMapper.selectOrderIdDay(oldOrderId)==1){
+                    return "false6";
+                }
+            }else if(Objects.equals(orderIdType, "month")){
+                if(orderMapper.selectOrderIdMonth(oldOrderId)==1){
+                    return "false6";
+                }
+            }else if(Objects.equals(orderIdType, "year")){
+                if(orderMapper.selectOrderIdYear(oldOrderId)==1){
+                    return "false6";
+                }
+            }
+            String substring = newOrderId.substring(1, 3);
+            Integer substringInt = Integer.parseInt(newOrderId.substring(2, 10));
+            if(!substring.equals("NG")){
+                substring="NG";
+            }
+            //澶т簬杈撳叆璁㈠崟鍙风殑鏁伴噺
+            Integer count1 = orderMapper.selectOrderIdMin(substringInt);
+            //杈撳叆璁㈠崟鍙峰瓨鍦ㄧ殑鏁伴噺
+            Integer count2 = orderMapper.selectOrderIdIs(substringInt);
+            if(count1>0 && count2==0){
+                orderMapper.updateOrderId(oldOrderId,newOrderId);
+                saveState= "true";
+                logService.saveLog(log);
+            }else if(count1==0){
+                saveState= "false1";
+                ;
+            }else if(count2>0){
+                saveState= "false2";
+            }
+        }else{
+            saveState= "false3";
+        }
+        return saveState;
+    }
 }

--
Gitblit v1.8.0