Browse Source

问题处理

yzc 1 year ago
parent
commit
573e629e2b

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

@@ -16,6 +16,7 @@ import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.AvailableStockBo;
 import com.fjhx.common.service.file.FtpFileService;
 import com.fjhx.common.service.file.impl.FtpFileServiceImpl;
+import com.fjhx.common.utils.Assert;
 import com.fjhx.file.entity.FileInfoVo;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.item.entity.product.ProcessesBo;
@@ -23,12 +24,14 @@ import com.fjhx.item.entity.product.bo.ProductAnalysisBo;
 import com.fjhx.item.entity.product.bo.ProductExcelExportBo;
 import com.fjhx.item.entity.product.dto.ProductInfoDto;
 import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
+import com.fjhx.item.entity.product.po.ProductBomDetail;
 import com.fjhx.item.entity.product.po.ProductClassify;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.entity.product.po.ProductStockInfo;
 import com.fjhx.item.entity.product.vo.ProductInfoVo;
 import com.fjhx.item.enums.ProductAvailableRecordType;
 import com.fjhx.item.mapper.product.ProductInfoMapper;
+import com.fjhx.item.service.product.ProductBomDetailService;
 import com.fjhx.item.service.product.ProductClassifyService;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.item.service.product.ProductStockInfoService;
@@ -86,6 +89,8 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
     private ISysDeptService sysDeptService;
     @Autowired
     private ProductStockInfoService productStockInfoService;
+    @Autowired
+    private ProductBomDetailService productBomDetailService;
 
 
     @Override
@@ -271,6 +276,9 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         this.save(productInfoDto);
         ObsFileUtil.saveFile(productInfoDto.getFileList(), productInfoDto.getId());
         ObsFileUtil.saveFile(productInfoDto.getProdFileList(), productInfoDto.getId(), 2);
+
+        //保存原材料信息
+        saveOrEditRawMaterial(productInfoDto);
     }
 
     @DSTransactional
@@ -308,6 +316,36 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         this.updateById(productInfoDto);
         ObsFileUtil.editFile(productInfoDto.getFileList(), productInfoDto.getId());
         ObsFileUtil.editFile(productInfoDto.getProdFileList(), productInfoDto.getId(), 2);
+
+        //修改原材料
+        saveOrEditRawMaterial(productInfoDto);
+    }
+
+    /**
+     * 保存修改原材料
+     */
+    private void saveOrEditRawMaterial(ProductInfoDto productInfoDto) {
+        Long rawMaterialId = productInfoDto.getRawMaterialId();
+
+        //非产品跳过
+        if (ObjectUtil.notEqual(productInfoDto.getDefinition(), 1)) {
+            return;
+        }
+        Assert.notEmpty(rawMaterialId, "原材料ID不能为空!");
+
+        //保存原材料信息
+        ProductBomDetail productBomDetail = productBomDetailService.getOne(q -> q
+                .eq(ProductBomDetail::getProductId, productInfoDto.getId())
+                .eq(ProductBomDetail::getType, 1)
+        );
+        if (ObjectUtil.isEmpty(productBomDetail)) {
+            productBomDetail = new ProductBomDetail();
+            productBomDetail.setProductId(productInfoDto.getId());
+            productBomDetail.setType(1);
+            productBomDetail.setQuantity(BigDecimal.ONE);
+            productBomDetail.setMaterialId(rawMaterialId);
+        }
+        productBomDetailService.saveOrUpdate(productBomDetail);
     }
 
     @DSTransactional