From b573243ff526f948a499c8557b49ee97e94f035d Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 25 十月 2024 16:51:15 +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/GlassPriceBasicService.java |   36 ++++++++++++++++++++++++++++--------
 1 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java
index 784f57f..80e510d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java
@@ -12,6 +12,7 @@
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -20,11 +21,11 @@
 @DS("sd")
 public class GlassPriceBasicService {
     private final GlassPriceBasicMapper glassPriceBasicMapper;
-    @Autowired
-    private ProductDetailMapper productDetailMapper;
+    private final ProductDetailMapper productDetailMapper;
 
-    public GlassPriceBasicService(GlassPriceBasicMapper glassPriceBasicMapper) {
+    public GlassPriceBasicService(GlassPriceBasicMapper glassPriceBasicMapper, ProductDetailMapper productDetailMapper) {
         this.glassPriceBasicMapper = glassPriceBasicMapper;
+        this.productDetailMapper = productDetailMapper;
     }
 
     //淇濆瓨鐜荤拑浠锋牸
@@ -50,8 +51,14 @@
                     prams.get("thickness").toString()
                             + prams.get("color").toString()
                             + prams.get("types").toString());
+        } else if (Objects.equals(type, "process")) {
+            glassPriceBasic.setName(prams.get("thickness").toString() + prams.get("color").toString()+prams.get("process").toString());
+            glassPriceBasic.setProcess(prams.get("process").toString());
         }
-        GlassPriceBasic glassPriceBasic1 = glassPriceBasicMapper.selectOne(new QueryWrapper<GlassPriceBasic>().eq("name", glassPriceBasic.getName()));
+        GlassPriceBasic glassPriceBasic1 = glassPriceBasicMapper.selectOne(
+                new QueryWrapper<GlassPriceBasic>()
+                        .eq("name", glassPriceBasic.getName())
+        );
         if(glassPriceBasic1 != null){
             return false;
         }
@@ -63,29 +70,42 @@
                 .selectList(new QueryWrapper<ProductDetail>().eq("prod_id", productId));
 
         final Double[] money = {0.0};
-        productDetails.forEach(productDetail -> {
+        for (ProductDetail productDetail : productDetails){
             Map<String,String> separation =  JSON.parseObject(
                     productDetail.getSeparation(), new TypeReference<Map<String, String>>(){});
             String name = "";
             switch (productDetail.getDetailType()) {
                 case "glass":
                     name = separation.get("thickness") + separation.get("color");
+                    String[] process = productDetail.getProcess().split("->");
+                    for (String s : process) {
+                        GlassPriceBasic glassPriceBasic = glassPriceBasicMapper.selectOne(
+                                new QueryWrapper<GlassPriceBasic>()
+                                        .eq("name", name+s));
+                        if(glassPriceBasic == null) {
+                            return 0.0;
+                        }else{
+                            money[0] += glassPriceBasic.getPrice();
+                        }
+
+                    }
                     break;
                 case "hollow":
-                    name = separation.get("thickness") + separation.get("gasType") + separation.get("type");
+                    name = separation.get("thickness") + separation.get("gasType") + separation.get("Type");
                     break;
                 case "interlayer":
                     name = separation.get("thickness") + separation.get("color") + separation.get("type");
                     break;
             }
+
             GlassPriceBasic glassPriceBasic = glassPriceBasicMapper
                     .selectOne(new QueryWrapper<GlassPriceBasic>().eq("name", name));
             if(glassPriceBasic == null) {
                 money[0]= 0.0;
-                return;
+                return money[0];
             }
             money[0] += glassPriceBasic.getPrice();
-        });
+        }
         return money[0];
     }
 

--
Gitblit v1.8.0