From 926a1e8b90381c7aa085d5462d78de9d2cc6034d Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 27 二月 2024 08:58: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/ProductService.java |   91 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 89 insertions(+), 2 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java
index 15f2563..b048dae 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java
@@ -1,20 +1,36 @@
 package com.example.erp.service.sd;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.example.erp.entity.sd.Product;
+import com.example.erp.entity.sd.ProductDetail;
+import com.example.erp.mapper.sd.ProductDetailMapper;
 import com.example.erp.mapper.sd.ProductMapper;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.text.DecimalFormat;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 @Service
 @DS("sd")
+@Transactional
 public class ProductService {
-    @Autowired
+    private final
     ProductMapper productMapper;
+    private final
+    ProductDetailMapper productDetailMapper;
+
+    public ProductService(ProductMapper productMapper, ProductDetailMapper productDetailMapper) {
+        this.productMapper = productMapper;
+        this.productDetailMapper = productDetailMapper;
+    }
+//浜у搧鏌ヨ鏂规硶
     public Map<String,Object> defaultDateProduct(Integer pageNum, Integer pageSize, List<String> glassType, Product product) {
         Integer offset = (pageNum-1)*pageSize;
         String glassTypeId = null;
@@ -27,5 +43,76 @@
         return map;
     }
 
+//浜у搧淇濆瓨鏂规硶
+    public boolean saveProduct(Map<String,Object>  productObject) {
+        //鎶婁紶鍏ヤ富闄勮〃鐨刼bject绫诲瀷杞崲鎴愬疄浣撶被绫诲瀷
+        JSONObject productJson = new JSONObject(productObject);
+        Product product = JSONObject.parseObject(JSONObject.toJSONString(productJson.get("title")), Product.class);
+        List<ProductDetail> productDetails = JSONArray.parseArray(JSONObject.toJSONString(productJson.get("detail")), ProductDetail.class);
 
+        //瀹屽杽涓婚檮琛ㄤ俊鎭苟杩斿洖
+        Map<String,Object> getProductJson = updateProduct(productDetails,product);
+        Product getProduct = JSONObject.parseObject(JSONObject.toJSONString(getProductJson.get("title")), Product.class);
+        List<ProductDetail> getProductDetails = JSONArray.parseArray(JSONObject.toJSONString(getProductJson.get("detail")), ProductDetail.class);
+
+        //鎻掑叆涓昏〃鏁版嵁
+        productMapper.insert(getProduct);
+        //缁欏壇琛ㄦ坊鍔犱骇鍝乮d
+        for (ProductDetail getProductDetail : getProductDetails) {
+            getProductDetail.setProdId(getProduct.getId());
+        }
+        //鎻掑叆鍓〃
+        productDetailMapper.insertList(getProductDetails);
+
+        return false;
+
+    }
+
+    private Map<String,Object> updateProduct(List<ProductDetail> productDetailList,Product product) {
+        Map<String,Object> map = new HashMap<>();
+        //瀹氫箟浜у搧鐜荤拑鍘氬害绱姞
+        double thickness1 = 0;
+        //瀹氫箟浜у搧鎬诲帤搴︾疮鍔�
+        double totalThickness = 0;
+        //瀹氫箟蹇�熸煡璇�
+        StringBuilder query = new StringBuilder();
+
+        //瀹氫箟鍓〃鐜荤拑涓庨棿闅旂墿鎺掑簭
+        int sortNum = 0;
+        //瀹氫箟鍓〃鐜荤拑鎺掑簭
+        int glassSort = 0;
+        //瀹氫箟鍓〃涓┖鍒嗙粍
+        int glassGroup = 1;
+
+        for (ProductDetail productDetail : productDetailList) {
+            sortNum+=1;
+            productDetail.setSortNum(sortNum);
+
+            JSONObject separation = JSONObject.parseObject( productDetail.getSeparation());
+            String  getThickness = (String) separation.get("thickness");
+            double thicknessDetail = Double.parseDouble(getThickness.replace("mm",""));
+            totalThickness += thicknessDetail;
+
+            if(Objects.equals(productDetail.getDetailType(), "glass")){
+                glassSort+=1;
+                productDetail.setGlassSort(glassSort);
+                productDetail.setGlassGroup(glassGroup);
+                thickness1 += thicknessDetail;
+                DecimalFormat decimalFormat = new DecimalFormat("###");
+                query.append(decimalFormat.format(thicknessDetail));
+            }
+            else if (Objects.equals(productDetail.getDetailType(), "Interlayer")) {
+                query.append("+");
+            }else if(Objects.equals(productDetail.getDetailType(), "hollow")){
+                glassGroup+=1;
+                query.append("*");
+            }
+        }
+        product.setThickness(thickness1);
+        product.setTotalThickness(totalThickness);
+        product.setQuery(String.valueOf(query));
+        map.put("title",product);
+        map.put("detail",productDetailList);
+        return map;
+    }
 }

--
Gitblit v1.8.0