Procházet zdrojové kódy

修改产品 修改价格还原

yzc před 1 rokem
rodič
revize
ab82ad6a1c

+ 4 - 4
hx-item/src/main/java/com/fjhx/item/controller/product/ProductBomInfoController.java

@@ -103,10 +103,10 @@ public class ProductBomInfoController {
 
         productBomDetailService.editLinked(productBomDetailList, ProductBomDetail::getProductId, dto.getId());
 
-        //重新计算产品价格
-        ProductInfo productInfo = productInfoService.getById(dto.getId());
-        ProductInfo productPrice = productInfoService.getProductPrice(productInfo);
-        productInfoService.updateById(productPrice);
+//        //重新计算产品价格
+//        ProductInfo productInfo = productInfoService.getById(dto.getId());
+//        ProductInfo productPrice = productInfoService.getProductPrice(productInfo);
+//        productInfoService.updateById(productPrice);
     }
 
 }

+ 9 - 10
hx-item/src/main/java/com/fjhx/item/controller/product/ProductInfoController.java

@@ -3,7 +3,6 @@ package com.fjhx.item.controller.product;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.item.entity.product.dto.ProductInfoDto;
 import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
-import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.entity.product.vo.ProductInfoVo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.ruoyi.common.core.domain.BaseSelectDto;
@@ -63,15 +62,15 @@ public class ProductInfoController {
         productInfoService.add(productInfoDto);
     }
 
-    /**
-     * 计算产品价格
-     *
-     * @return
-     */
-    @PostMapping("/getProductPrice")
-    public ProductInfo getProductPrice(@RequestBody ProductInfoDto productInfoDto) {
-        return productInfoService.getProductPrice(productInfoDto);
-    }
+//    /**
+//     * 计算产品价格
+//     *
+//     * @return
+//     */
+//    @PostMapping("/getProductPrice")
+//    public ProductInfo getProductPrice(@RequestBody ProductInfoDto productInfoDto) {
+//        return productInfoService.getProductPrice(productInfoDto);
+//    }
 
 
     /**

+ 4 - 4
hx-item/src/main/java/com/fjhx/item/service/product/ProductInfoService.java

@@ -37,10 +37,10 @@ public interface ProductInfoService extends BaseService<ProductInfo> {
      */
     void add(ProductInfoDto productInfoDto);
 
-    /**
-     * 获取产品价格
-     */
-    ProductInfo getProductPrice(ProductInfo productInfo);
+//    /**
+//     * 获取产品价格
+//     */
+//    ProductInfo getProductPrice(ProductInfo productInfo);
 
     /**
      * 产品库编辑

+ 46 - 46
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java

@@ -282,52 +282,52 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         saveOrEditRawMaterial(productInfoDto);
     }
 
-    /**
-     * 获取产品价格
-     */
-    @Override
-    public ProductInfo getProductPrice(ProductInfo productInfo) {
-        Long id = productInfo.getId();
-        BigDecimal length = productInfo.getLength();
-        BigDecimal width = productInfo.getWidth();
-        Long technologyId = productInfo.getTechnologyId();
-        Assert.notEmpty(length, "产品长度不能为空!");
-        Assert.notEmpty(width, "产品宽度不能为空!");
-        Assert.notEmpty(technologyId, "工艺id不能为空");
-
-        //获取物料价格
-        BigDecimal materialPrice = BigDecimal.ZERO;
-        List<ProductBomDetail> productBomDetailList = new ArrayList<>();
-        if (ObjectUtil.isNotEmpty(id)) {
-            productBomDetailList = productBomDetailService.list(q -> q.eq(ProductBomDetail::getProductId, id));
-        } else {
-            ProductBomDetail productBomDetail = new ProductBomDetail();
-            productBomDetail.setMaterialId(productInfo.getRawMaterialId());
-            productBomDetail.setType(1);
-            productBomDetail.setQuantity(BigDecimal.ONE);
-            productBomDetailList.add(productBomDetail);
-        }
-
-        for (ProductBomDetail productBomDetail : productBomDetailList) {
-            ProductInfo materialInfo = this.getById(productBomDetail.getMaterialId());
-            if (ObjectUtil.equals(productBomDetail.getType(), 1)) {
-                //原材料 产品长 * 产品宽 * 原材料单价
-                BigDecimal multiply = length.multiply(width).multiply(materialInfo.getPrice());
-                materialPrice = materialPrice.add(multiply);
-            } else {
-                //普通物料 产品库BOM该物料数量 * 物料单价
-                BigDecimal multiply = productBomDetail.getQuantity().multiply(materialInfo.getPrice());
-                materialPrice = materialPrice.add(multiply);
-            }
-        }
-
-        //获取工序价格
-        List<ProcessesBo> processesList = baseMapper.getProcessesByTechnologyId(productInfo.getTechnologyId());
-        BigDecimal processesPrice = processesList.stream().map(ProcessesBo::getCostPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-
-        productInfo.setPrice(materialPrice.add(processesPrice));
-        return productInfo;
-    }
+//    /**
+//     * 获取产品价格
+//     */
+//    @Override
+//    public ProductInfo getProductPrice(ProductInfo productInfo) {
+//        Long id = productInfo.getId();
+//        BigDecimal length = productInfo.getLength();
+//        BigDecimal width = productInfo.getWidth();
+//        Long technologyId = productInfo.getTechnologyId();
+//        Assert.notEmpty(length, "产品长度不能为空!");
+//        Assert.notEmpty(width, "产品宽度不能为空!");
+//        Assert.notEmpty(technologyId, "工艺id不能为空");
+//
+//        //获取物料价格
+//        BigDecimal materialPrice = BigDecimal.ZERO;
+//        List<ProductBomDetail> productBomDetailList = new ArrayList<>();
+//        if (ObjectUtil.isNotEmpty(id)) {
+//            productBomDetailList = productBomDetailService.list(q -> q.eq(ProductBomDetail::getProductId, id));
+//        } else {
+//            ProductBomDetail productBomDetail = new ProductBomDetail();
+//            productBomDetail.setMaterialId(productInfo.getRawMaterialId());
+//            productBomDetail.setType(1);
+//            productBomDetail.setQuantity(BigDecimal.ONE);
+//            productBomDetailList.add(productBomDetail);
+//        }
+//
+//        for (ProductBomDetail productBomDetail : productBomDetailList) {
+//            ProductInfo materialInfo = this.getById(productBomDetail.getMaterialId());
+//            if (ObjectUtil.equals(productBomDetail.getType(), 1)) {
+//                //原材料 产品长 * 产品宽 * 原材料单价
+//                BigDecimal multiply = length.multiply(width).multiply(materialInfo.getPrice());
+//                materialPrice = materialPrice.add(multiply);
+//            } else {
+//                //普通物料 产品库BOM该物料数量 * 物料单价
+//                BigDecimal multiply = productBomDetail.getQuantity().multiply(materialInfo.getPrice());
+//                materialPrice = materialPrice.add(multiply);
+//            }
+//        }
+//
+//        //获取工序价格
+//        List<ProcessesBo> processesList = baseMapper.getProcessesByTechnologyId(productInfo.getTechnologyId());
+//        BigDecimal processesPrice = processesList.stream().map(ProcessesBo::getCostPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+//
+//        productInfo.setPrice(materialPrice.add(processesPrice));
+//        return productInfo;
+//    }
 
     @DSTransactional
     @Override

+ 22 - 27
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionProcessesServiceImpl.java

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.file.entity.ObsFile;
 import com.fjhx.file.utils.ObsFileUtil;
-import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
 import com.fjhx.mes.entity.production.dto.ProductionProcessesDto;
@@ -22,15 +21,11 @@ import com.fjhx.mes.service.applicable.ApplicableProductsService;
 import com.fjhx.mes.service.production.ProductionProcessesService;
 import com.fjhx.mes.service.technology.TechnologyProcessLineService;
 import com.fjhx.mes.service.technology.TechnologyService;
-import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
-import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -91,28 +86,28 @@ public class ProductionProcessesServiceImpl extends ServiceImpl<ProductionProces
     @Override
     public void edit(ProductionProcessesDto productionProcessesDto) {
         ProductionProcesses productionProcesses = this.getById(productionProcessesDto.getId());
-        //修改对应产品价格
-        List<Long> technologyIds = technologyProcessLineService.listObject(TechnologyProcessLine::getTechnologyId, q -> q
-                .eq(TechnologyProcessLine::getTargetProcessesId, productionProcessesDto.getId())
-        );
-        if (ObjectUtil.isNotEmpty(technologyIds)) {
-            List<Long> pIds = productInfoService.listObject(ProductInfo::getId, q -> q.in(ProductInfo::getTechnologyId, technologyIds));
-            if (ObjectUtil.isNotEmpty(pIds)) {
-                BigDecimal costPrice = productionProcesses.getCostPrice();
-                BigDecimal newCostPrice = productionProcessesDto.getCostPrice();
-                costPrice = costPrice == null ? BigDecimal.ZERO : costPrice;
-                newCostPrice = newCostPrice == null ? BigDecimal.ZERO : newCostPrice;
-
-                BigDecimal subtract = newCostPrice.subtract(costPrice);
-
-                productInfoService.update(q -> q
-                        .in(ProductInfo::getId, pIds)
-                        .setSql("price = price + " + subtract)
-                        .set(BasePo::getUpdateTime, new Date())
-                        .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
-                );
-            }
-        }
+//        //修改对应产品价格
+//        List<Long> technologyIds = technologyProcessLineService.listObject(TechnologyProcessLine::getTechnologyId, q -> q
+//                .eq(TechnologyProcessLine::getTargetProcessesId, productionProcessesDto.getId())
+//        );
+//        if (ObjectUtil.isNotEmpty(technologyIds)) {
+//            List<Long> pIds = productInfoService.listObject(ProductInfo::getId, q -> q.in(ProductInfo::getTechnologyId, technologyIds));
+//            if (ObjectUtil.isNotEmpty(pIds)) {
+//                BigDecimal costPrice = productionProcesses.getCostPrice();
+//                BigDecimal newCostPrice = productionProcessesDto.getCostPrice();
+//                costPrice = costPrice == null ? BigDecimal.ZERO : costPrice;
+//                newCostPrice = newCostPrice == null ? BigDecimal.ZERO : newCostPrice;
+//
+//                BigDecimal subtract = newCostPrice.subtract(costPrice);
+//
+//                productInfoService.update(q -> q
+//                        .in(ProductInfo::getId, pIds)
+//                        .setSql("price = price + " + subtract)
+//                        .set(BasePo::getUpdateTime, new Date())
+//                        .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+//                );
+//            }
+//        }
 
 
         List<ObsFile> fileList = productionProcessesDto.getFileList();

+ 24 - 27
hx-mes/src/main/java/com/fjhx/mes/service/technology/impl/TechnologyServiceImpl.java

@@ -22,14 +22,11 @@ import com.fjhx.mes.service.applicable.ApplicableProductsService;
 import com.fjhx.mes.service.production.ProductionProcessesService;
 import com.fjhx.mes.service.technology.TechnologyProcessLineService;
 import com.fjhx.mes.service.technology.TechnologyService;
-import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -166,30 +163,30 @@ public class TechnologyServiceImpl extends ServiceImpl<TechnologyMapper, Technol
     @DSTransactional
     @Override
     public void edit(TechnologyDto technologyDto) {
-        Technology oldTechnology = this.getById(technologyDto.getId());
-        //修改产品价格
-        List<Long> pIds = productInfoService.listObject(ProductInfo::getId, q -> q.eq(ProductInfo::getTechnologyId, technologyDto.getId()));
-        if (ObjectUtil.isNotEmpty(pIds)) {
-            BigDecimal oldPrice = BigDecimal.ZERO;
-            BigDecimal newPrice = BigDecimal.ZERO;
-            String[] oldProcessRoute = oldTechnology.getProcessRoute().split(",");
-            if (ObjectUtil.isNotEmpty(oldProcessRoute)) {
-                List<ProductionProcesses> oldPList = productionProcessesService.list(q -> q.in(ProductionProcesses::getId, oldProcessRoute));
-                oldPrice = oldPList.stream().map(ProductionProcesses::getCostPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-            }
-            String[] newProcessRoute = technologyDto.getProcessRoute().split(",");
-            if (ObjectUtil.isNotEmpty(newProcessRoute)) {
-                List<ProductionProcesses> newPList = productionProcessesService.list(q -> q.in(ProductionProcesses::getId, newProcessRoute));
-                newPrice = newPList.stream().map(ProductionProcesses::getCostPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-            }
-            BigDecimal subtract = newPrice.subtract(oldPrice);
-            productInfoService.update(q -> q
-                    .in(ProductInfo::getId, pIds)
-                    .setSql("price = price + " + subtract)
-                    .set(BasePo::getUpdateTime, new Date())
-                    .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
-            );
-        }
+//        Technology oldTechnology = this.getById(technologyDto.getId());
+//        //修改产品价格
+//        List<Long> pIds = productInfoService.listObject(ProductInfo::getId, q -> q.eq(ProductInfo::getTechnologyId, technologyDto.getId()));
+//        if (ObjectUtil.isNotEmpty(pIds)) {
+//            BigDecimal oldPrice = BigDecimal.ZERO;
+//            BigDecimal newPrice = BigDecimal.ZERO;
+//            String[] oldProcessRoute = oldTechnology.getProcessRoute().split(",");
+//            if (ObjectUtil.isNotEmpty(oldProcessRoute)) {
+//                List<ProductionProcesses> oldPList = productionProcessesService.list(q -> q.in(ProductionProcesses::getId, oldProcessRoute));
+//                oldPrice = oldPList.stream().map(ProductionProcesses::getCostPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+//            }
+//            String[] newProcessRoute = technologyDto.getProcessRoute().split(",");
+//            if (ObjectUtil.isNotEmpty(newProcessRoute)) {
+//                List<ProductionProcesses> newPList = productionProcessesService.list(q -> q.in(ProductionProcesses::getId, newProcessRoute));
+//                newPrice = newPList.stream().map(ProductionProcesses::getCostPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+//            }
+//            BigDecimal subtract = newPrice.subtract(oldPrice);
+//            productInfoService.update(q -> q
+//                    .in(ProductInfo::getId, pIds)
+//                    .setSql("price = price + " + subtract)
+//                    .set(BasePo::getUpdateTime, new Date())
+//                    .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+//            );
+//        }
 
         this.updateById(technologyDto);