From a6e5c0dc4945125eea36c4c291ad12705fd96a38 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 23 二月 2024 17:13:09 +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