yzc 1 жил өмнө
parent
commit
c1c0ea4e37

+ 1 - 1
hx-wms/src/main/java/com/fjhx/wms/controller/stock/StockWaitController.java

@@ -124,7 +124,7 @@ public class StockWaitController {
      */
     @PostMapping("/issueExcelImport")
     public List<IssueImportExcelBo> issueExcelImport(@RequestParam("file") MultipartFile file) {
-        return productInfoService.issueImportExcel(file);
+        return stockWaitService.issueImportExcel(file);
     }
 
 }

+ 7 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/StockWaitService.java

@@ -1,6 +1,7 @@
 package com.fjhx.wms.service.stock;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.item.entity.product.IssueImportExcelBo;
 import com.fjhx.wms.entity.stock.dto.StockWaitDetailsDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitSelectDto;
@@ -9,6 +10,7 @@ import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
 import com.fjhx.wms.entity.stock.vo.StockWaitVo;
 import com.ruoyi.common.core.service.BaseService;
 import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
@@ -80,4 +82,9 @@ public interface StockWaitService extends BaseService<StockWait> {
      * 待入库导出excel
      */
     void inStockWaitExportExcel(HttpServletResponse httpServletResponse, List<Long> ids);
+
+    /**
+     * 产品快速导入
+     */
+    List<IssueImportExcelBo> issueImportExcel(MultipartFile file);
 }

+ 44 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.utils.Assert;
+import com.fjhx.item.entity.product.IssueImportExcelBo;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.item.util.excel.util.ExcelUtil;
@@ -43,6 +44,7 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
@@ -505,6 +507,48 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         ExcelUtil.export(httpServletResponse, stockWaitList, InStockWaitExportExcel.class);
     }
 
+    @Override
+    public List<IssueImportExcelBo> issueImportExcel(MultipartFile file) {
+        List<IssueImportExcelBo> excelBoList = ExcelUtil.read(file, IssueImportExcelBo.class);
+        if (ObjectUtil.isEmpty(excelBoList)) {
+            return excelBoList;
+        }
+
+        //相同产品合并
+        Map<String, IssueImportExcelBo> collect = excelBoList.stream().collect(Collectors.groupingBy(IssueImportExcelBo::getProductCustomCode,
+                Collectors.collectingAndThen(Collectors.toList(), value -> {
+                    BigDecimal count = value.stream().map(IssueImportExcelBo::getCount).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+                    IssueImportExcelBo issueImportExcelBo = value.get(0);
+                    issueImportExcelBo.setCount(count);
+                    return issueImportExcelBo;
+                }))
+        );
+        excelBoList = collect.values().stream().collect(Collectors.toList());
+
+        List<String> productCodes = excelBoList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getProductCustomCode())).distinct().map(IssueImportExcelBo::getProductCustomCode).collect(Collectors.toList());
+        if (ObjectUtil.isNotEmpty(productCodes)) {
+            //赋值产品信息
+            Map<String, ProductInfo> productInfoMap = productInfoService.mapKEntity(ProductInfo::getCustomCode, q -> q.in(ProductInfo::getCustomCode, productCodes));
+            for (IssueImportExcelBo subscribeDetailExcelBo : excelBoList) {
+                ProductInfo productInfo = productInfoMap.get(subscribeDetailExcelBo.getProductCustomCode());
+                if (ObjectUtil.isEmpty(productInfo)) {
+                    continue;
+                }
+                subscribeDetailExcelBo.setBussinessId(productInfo.getId());
+                subscribeDetailExcelBo.setProductId(productInfo.getId());
+                subscribeDetailExcelBo.setProductDefinition(productInfo.getDefinition());
+                subscribeDetailExcelBo.setProductName(productInfo.getName());
+                subscribeDetailExcelBo.setProductSpec(productInfo.getSpec());
+                subscribeDetailExcelBo.setProductUnit(productInfo.getUnit());
+            }
+
+            //名称升序
+            Collections.sort(excelBoList, Comparator.comparing(IssueImportExcelBo::getProductName));
+        }
+        return excelBoList;
+    }
+
 //    /**
 //     * 待出库 excel导入出库
 //     */