|
@@ -14,7 +14,9 @@ import com.fjhx.common.constant.SourceConstant;
|
|
|
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.fjhx.item.util.excel.util.ExcelUtil;
|
|
|
import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
|
|
|
+import com.fjhx.purchase.entity.subscribe.SubscribeDetailExcelBo;
|
|
|
import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailDto;
|
|
|
import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailSelectDto;
|
|
|
import com.fjhx.purchase.entity.subscribe.po.Subscribe;
|
|
@@ -28,7 +30,7 @@ import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
|
|
|
import com.fjhx.tenant.service.dict.DictTenantDataService;
|
|
|
import com.fjhx.wms.entity.warehouse.po.Warehouse;
|
|
|
import com.fjhx.wms.service.warehouse.WarehouseService;
|
|
|
-import com.obs.services.internal.ServiceException;
|
|
|
+import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import com.ruoyi.common.utils.wrapper.SqlField;
|
|
@@ -36,6 +38,7 @@ import com.ruoyi.system.service.ISysRoleService;
|
|
|
import org.apache.commons.collections4.MapUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
@@ -334,4 +337,37 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
|
|
|
return dictTenantDataService.getList(dto);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 申购明细Excel导入
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<SubscribeDetailExcelBo> excelImport(MultipartFile file) {
|
|
|
+ List<SubscribeDetailExcelBo> excelBoList = ExcelUtil.read(file, SubscribeDetailExcelBo.class);
|
|
|
+ if (ObjectUtil.isEmpty(excelBoList)) {
|
|
|
+ return excelBoList;
|
|
|
+ }
|
|
|
+ List<String> productCodes = excelBoList.stream().map(SubscribeDetailExcelBo::getProductCustomCode).collect(Collectors.toList());
|
|
|
+ if (ObjectUtil.isNotEmpty(productCodes)) {
|
|
|
+ List<String> notArr = new ArrayList<>();
|
|
|
+ //赋值产品信息
|
|
|
+ Map<String, ProductInfo> productInfoMap = productInfoService.mapKEntity(ProductInfo::getCustomCode, q -> q.in(ProductInfo::getCustomCode, productCodes));
|
|
|
+ for (SubscribeDetailExcelBo subscribeDetailExcelBo : excelBoList) {
|
|
|
+ ProductInfo productInfo = productInfoMap.get(subscribeDetailExcelBo.getProductCustomCode());
|
|
|
+ if (ObjectUtil.isEmpty(productInfo)) {
|
|
|
+ notArr.add(subscribeDetailExcelBo.getProductCustomCode());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ subscribeDetailExcelBo.setBussinessId(productInfo.getId());
|
|
|
+ subscribeDetailExcelBo.setProductDefinition(productInfo.getDefinition());
|
|
|
+ subscribeDetailExcelBo.setProductName(productInfo.getName());
|
|
|
+ subscribeDetailExcelBo.setProductSpec(productInfo.getSpec());
|
|
|
+ subscribeDetailExcelBo.setProductUnit(productInfo.getUnit());
|
|
|
+ }
|
|
|
+ if (notArr.size() != 0) {
|
|
|
+ throw new ServiceException("以下产品不存在:" + notArr.stream().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return excelBoList;
|
|
|
+ }
|
|
|
+
|
|
|
}
|