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