From 3d66a05e01b17a57f80a422b19fbbff92a69c080 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期三, 19 二月 2025 16:15:03 +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/GlassPriceBasicService.java | 128 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 128 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..80e510d
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java
@@ -0,0 +1,128 @@
+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.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+@Service
+@DS("sd")
+public class GlassPriceBasicService {
+ private final GlassPriceBasicMapper glassPriceBasicMapper;
+ private final ProductDetailMapper productDetailMapper;
+
+ public GlassPriceBasicService(GlassPriceBasicMapper glassPriceBasicMapper, ProductDetailMapper productDetailMapper) {
+ this.glassPriceBasicMapper = glassPriceBasicMapper;
+ this.productDetailMapper = productDetailMapper;
+ }
+
+ //淇濆瓨鐜荤拑浠锋牸
+ 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());
+ } else if (Objects.equals(type, "process")) {
+ glassPriceBasic.setName(prams.get("thickness").toString() + prams.get("color").toString()+prams.get("process").toString());
+ glassPriceBasic.setProcess(prams.get("process").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};
+ for (ProductDetail productDetail : productDetails){
+ 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");
+ String[] process = productDetail.getProcess().split("->");
+ for (String s : process) {
+ GlassPriceBasic glassPriceBasic = glassPriceBasicMapper.selectOne(
+ new QueryWrapper<GlassPriceBasic>()
+ .eq("name", name+s));
+ if(glassPriceBasic == null) {
+ return 0.0;
+ }else{
+ money[0] += glassPriceBasic.getPrice();
+ }
+
+ }
+ 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];
+ }
+ 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