From 19b9d7966ba986d788463af7784e274263648aa7 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期三, 23 十月 2024 08:09:46 +0800
Subject: [PATCH] 上传价格计算查询功能与删除功能

---
 north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 108 insertions(+), 0 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
new file mode 100644
index 0000000..784f57f
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java
@@ -0,0 +1,108 @@
+package com.example.erp.service.sd;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.example.erp.entity.sd.GlassPriceBasic;
+import com.example.erp.entity.sd.ProductDetail;
+import com.example.erp.mapper.sd.GlassPriceBasicMapper;
+import com.example.erp.mapper.sd.ProductDetailMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+@Service
+@DS("sd")
+public class GlassPriceBasicService {
+    private final GlassPriceBasicMapper glassPriceBasicMapper;
+    @Autowired
+    private ProductDetailMapper productDetailMapper;
+
+    public GlassPriceBasicService(GlassPriceBasicMapper glassPriceBasicMapper) {
+        this.glassPriceBasicMapper = glassPriceBasicMapper;
+    }
+
+    //淇濆瓨鐜荤拑浠锋牸
+    public Boolean save(Map<String, Object> prams) {
+        GlassPriceBasic glassPriceBasic = new GlassPriceBasic();
+        glassPriceBasic.setThickness(
+                Double.parseDouble(prams.get("thickness").toString().replaceAll("[^0-9\\.]", ""))
+        );
+        glassPriceBasic.setPrice(Double.parseDouble(prams.get("price").toString()));
+        glassPriceBasic.setJson(prams.toString());
+        glassPriceBasic.setType(prams.get("type").toString());
+        String type = prams.get("type").toString();
+        //鍒ゆ柇 鏄摢绉嶇被鍨�
+        if(Objects.equals(type, "glass")) {
+            glassPriceBasic.setName(prams.get("thickness").toString() + prams.get("color").toString());
+        }else if(Objects.equals(type, "hollow")){
+            glassPriceBasic.setName(
+                    prams.get("thickness").toString()
+                            + prams.get("gasType").toString()
+                            + prams.get("types").toString());
+        } else if (Objects.equals(type, "interlayer"))  {
+            glassPriceBasic.setName(
+                    prams.get("thickness").toString()
+                            + prams.get("color").toString()
+                            + prams.get("types").toString());
+        }
+        GlassPriceBasic glassPriceBasic1 = glassPriceBasicMapper.selectOne(new QueryWrapper<GlassPriceBasic>().eq("name", glassPriceBasic.getName()));
+        if(glassPriceBasic1 != null){
+            return false;
+        }
+        return glassPriceBasicMapper.insert(glassPriceBasic)>0;
+    }
+
+    public Double glassPriceComputed(String productId) {
+        List<ProductDetail> productDetails = productDetailMapper
+                .selectList(new QueryWrapper<ProductDetail>().eq("prod_id", productId));
+
+        final Double[] money = {0.0};
+        productDetails.forEach(productDetail -> {
+            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");
+                    break;
+                case "hollow":
+                    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;
+            }
+            money[0] += glassPriceBasic.getPrice();
+        });
+        return money[0];
+    }
+
+    public List<GlassPriceBasic> searchGlassPrice() {
+        return glassPriceBasicMapper.selectList(null);
+    }
+
+    public Boolean updateGlassPriceById(GlassPriceBasic glassPriceBasic) {
+        return glassPriceBasicMapper.update(
+                null,
+                new LambdaUpdateWrapper<>(GlassPriceBasic.class)
+                        .setSql("price = " + glassPriceBasic.getPrice())
+                        .eq(GlassPriceBasic::getId, glassPriceBasic.getId())
+                )>0;
+    }
+
+    public Boolean deleteGlassPriceById(String id) {
+        return glassPriceBasicMapper.deleteById(id)>0;
+    }
+}

--
Gitblit v1.8.0