From e8ba2a1bec7ffbd78cb941521b31d000890e66de Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 27 二月 2024 14:04:16 +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 |   65 ++++++++++++++++++++++++++------
 1 files changed, 52 insertions(+), 13 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 b048dae..d6b3f07 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,21 +1,22 @@
 package com.example.erp.service.sd;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.example.erp.common.Constants;
 import com.example.erp.entity.sd.Product;
 import com.example.erp.entity.sd.ProductDetail;
+import com.example.erp.exception.ServiceException;
 import com.example.erp.mapper.sd.ProductDetailMapper;
 import com.example.erp.mapper.sd.ProductMapper;
 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;
+import java.util.*;
 
 @Service
 @DS("sd")
@@ -30,7 +31,7 @@
         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;
@@ -43,18 +44,37 @@
         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);
-
+        System.out.println(product);
         //瀹屽杽涓婚檮琛ㄤ俊鎭苟杩斿洖
         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);
 
+        if(getProduct.getId()==null ){
+            insertProduct(getProduct,getProductDetails);
+        }else{
+            updateProductData(getProductDetails,getProduct);
+        }
+        return true;
+
+    }
+
+    private void updateProductData(List<ProductDetail> getProductDetails, Product getProduct) {
+        productMapper.update(getProduct,new UpdateWrapper<Product>().eq("id",getProduct.getId()));
+        productDetailMapper.delete(new QueryWrapper<ProductDetail>().eq("prod_id",getProduct.getId()));
+        for (ProductDetail getProductDetail : getProductDetails) {
+            getProductDetail.setProdId(getProduct.getId());
+        }
+        productDetailMapper.insertList(getProductDetails);
+    }
+
+    private void insertProduct(Product getProduct, List<ProductDetail> getProductDetails) {
         //鎻掑叆涓昏〃鏁版嵁
         productMapper.insert(getProduct);
         //缁欏壇琛ㄦ坊鍔犱骇鍝乮d
@@ -63,9 +83,6 @@
         }
         //鎻掑叆鍓〃
         productDetailMapper.insertList(getProductDetails);
-
-        return false;
-
     }
 
     private Map<String,Object> updateProduct(List<ProductDetail> productDetailList,Product product) {
@@ -87,8 +104,7 @@
         for (ProductDetail productDetail : productDetailList) {
             sortNum+=1;
             productDetail.setSortNum(sortNum);
-
-            JSONObject separation = JSONObject.parseObject( productDetail.getSeparation());
+            JSONObject separation = JSONObject.parseObject(productDetail.getSeparation(), Feature.OrderedField);
             String  getThickness = (String) separation.get("thickness");
             double thicknessDetail = Double.parseDouble(getThickness.replace("mm",""));
             totalThickness += thicknessDetail;
@@ -115,4 +131,27 @@
         map.put("detail",productDetailList);
         return map;
     }
+
+    public boolean deleteProductById(Integer id) {
+        Product product = productMapper.selectById(id);
+        if(product.getState()==1){
+            throw new ServiceException(Constants.Code_600,"浜у搧宸插鏍�,鏃犳硶鍒犻櫎");
+        }
+        productMapper.deleteById(id);
+        return true;
+    }
+
+    public boolean updateProductStateById(Integer id,Integer state) {
+       return productMapper.updateProductStateById(id,state);
+    }
+
+    public Map<String,Object> selectProductById(Integer id) {
+        Product product = productMapper.selectById(id);
+        List<ProductDetail> productDetailList = productDetailMapper.selectList(
+                new QueryWrapper<ProductDetail>().eq("prod_id", id));
+        Map<String,Object> map = new HashMap<>();
+        map.put("title",product);
+        map.put("detail",productDetailList);
+        return map;
+    }
 }

--
Gitblit v1.8.0