package com.ruoyi.web.controller.scm; import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.scm.domain.AfterSaleInfo; import com.ruoyi.scm.domain.ProductInfo; import com.ruoyi.scm.domain.SupplierInfo; import com.ruoyi.scm.service.IAfterSaleInfoService; import com.ruoyi.scm.service.IProductInfoService; import com.ruoyi.scm.service.ISupplierInfoService; import com.ruoyi.web.controller.demo.domain.PrductionReqVo; import com.ruoyi.web.controller.demo.domain.ProReqVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; import java.util.Map; /** * @Author : wangming * @CreateTime : 2022-10-13 * @Desc : TODO */ @Controller @RequestMapping("/pro/operation") @Slf4j public class ZSproducController { @Autowired private IProductInfoService productInfoService; @Autowired private IAfterSaleInfoService afterSaleInfoService; @Autowired private ISupplierInfoService supplierInfoService; /** * @desc : 商品入库接口 * @author : wangming * @createTime : 2022/10/13 14:01 * @param : * @return : */ @PostMapping("/saveProduction") @ResponseBody public AjaxResult saveProduction(@RequestBody PrductionReqVo prductionReqVo){ log.info("商品入库参数" + prductionReqVo); //校验token //校验参数,现阶段先不校验 ProductInfo productInfo = new ProductInfo(); ProReqVo product = prductionReqVo.getProduct(); productInfo.setSupplierId(prductionReqVo.getSupplierCode()); productInfo = paddingProductionInfo(product, productInfo); productInfoService.insertProductInfo(productInfo); //在组装售后服务信息 // AfterSaleInfo afterSaleInfo = product.getAfterSaleInfo(); // afterSaleInfoService.insertAfterSaleInfo(afterSaleInfo); return AjaxResult.success(); } /** * @desc : 商品属性转移 * @author : wangming * @createTime : 2022/10/13 15:41 * @param : * @return : */ private ProductInfo paddingProductionInfo(ProReqVo product, ProductInfo productInfo){ LambdaQueryWrapper queryWrapper = new QueryWrapper().lambda(); queryWrapper.eq(SupplierInfo::getSupplierCode, productInfo.getSupplierId()); SupplierInfo supplierInfo = supplierInfoService.getOne(queryWrapper); // SupplierInfo supplierInfo = supplierInfoService.selectSupplierInfoById(productInfo.getSupplierId()); BeanUtils.copyProperties(product, productInfo); productInfo.setId(UUID.randomUUID().toString().replaceAll("-", "")); List> saleAttributes = product.getSaleAttributes(); productInfo.setSaleAttributes(JSON.toJSONString(saleAttributes).toString()); productInfo.setSupplierName(supplierInfo.getSupplierName()); productInfo.setSellPrice(StringUtils.isEmpty(product.getSellPrice() + "") ? "" : String.valueOf(product.getSellPrice())); productInfo.setMarketPrice(StringUtils.isEmpty(product.getMarketPrice() + "") ? "" : String.valueOf(product.getMarketPrice())); if (product.isEnergySav()){ productInfo.setIsEnergySav("1"); } else { productInfo.setIsEnergySav("0"); } if (product.isEnvironmental()){ productInfo.setIsEnvironmental("1"); } else { productInfo.setIsEnvironmental("0"); } productInfo.setTaxRate(StringUtils.isEmpty(product.getTaxRate()+"") ? "" : String.valueOf(product.getTaxRate())); productInfo.setSaleUnit(StringUtils.isEmpty(product.getSaleUnit()+"") ? "" : String.valueOf(product.getSaleUnit())); productInfo.setWeight(StringUtils.isEmpty(product.getWeight()+"") ? "" : String.valueOf(product.getWeight())); productInfo.setWeightUnit(StringUtils.isEmpty(product.getWeightUnit()+"") ? "" : String.valueOf(product.getWeightUnit())); productInfo.setLength(StringUtils.isEmpty(product.getLength()+"") ? "" : String.valueOf(product.getLength())); productInfo.setWidth(StringUtils.isEmpty(product.getWidth()+"") ? "" : String.valueOf(product.getWidth())); productInfo.setHeight(StringUtils.isEmpty(product.getHeight()+"") ? "" : String.valueOf(product.getHeight())); productInfo.setModelCode(StringUtils.isEmpty(product.getModelCode()+"") ? "" : String.valueOf(product.getModelCode())); return productInfo; } /** * @desc : 售后属性转移 * @author : wangming * @createTime : 2022/10/13 16:04 * @param : * @return : */ private AfterSaleInfo paddingAfterSaleInfo(){ return null; } }