From d5bb894f9be2e0a3b62d475b60b44f2ab138528c Mon Sep 17 00:00:00 2001 From: guoyujie <guoyujie@ng.com> Date: 星期四, 12 六月 2025 16:48:35 +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