|
@@ -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导入出库
|
|
|
// */
|