廖井涛
2025-05-22 8d6b17bfa56fd767c6f9de666eb0dd44c6b032cd
north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java
@@ -3,6 +3,7 @@
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;
@@ -11,6 +12,7 @@
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;
@@ -19,11 +21,11 @@
@DS("sd")
public class GlassPriceBasicService {
    private final GlassPriceBasicMapper glassPriceBasicMapper;
    @Autowired
    private ProductDetailMapper productDetailMapper;
    private final ProductDetailMapper productDetailMapper;
    public GlassPriceBasicService(GlassPriceBasicMapper glassPriceBasicMapper) {
    public GlassPriceBasicService(GlassPriceBasicMapper glassPriceBasicMapper, ProductDetailMapper productDetailMapper) {
        this.glassPriceBasicMapper = glassPriceBasicMapper;
        this.productDetailMapper = productDetailMapper;
    }
    //保存玻璃价格
@@ -49,8 +51,14 @@
                    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()));
        GlassPriceBasic glassPriceBasic1 = glassPriceBasicMapper.selectOne(
                new QueryWrapper<GlassPriceBasic>()
                        .eq("name", glassPriceBasic.getName())
        );
        if(glassPriceBasic1 != null){
            return false;
        }
@@ -62,30 +70,59 @@
                .selectList(new QueryWrapper<ProductDetail>().eq("prod_id", productId));
        final Double[] money = {0.0};
        productDetails.forEach(productDetail -> {
        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");
                    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;
                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;
    }
}