|
@@ -9,15 +9,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.fjhx.base.BaseEntity;
|
|
import com.fjhx.base.BaseEntity;
|
|
import com.fjhx.entity.jd.JdBack;
|
|
import com.fjhx.entity.jd.JdBack;
|
|
import com.fjhx.entity.jd.JdBackDetails;
|
|
import com.fjhx.entity.jd.JdBackDetails;
|
|
|
|
+import com.fjhx.entity.product.ProductInfo;
|
|
import com.fjhx.mapper.jd.JdBackMapper;
|
|
import com.fjhx.mapper.jd.JdBackMapper;
|
|
import com.fjhx.params.jd.JdBackEx;
|
|
import com.fjhx.params.jd.JdBackEx;
|
|
import com.fjhx.params.jd.JdBackPageDto;
|
|
import com.fjhx.params.jd.JdBackPageDto;
|
|
import com.fjhx.params.jd.JdBackVo;
|
|
import com.fjhx.params.jd.JdBackVo;
|
|
import com.fjhx.service.jd.JdBackDetailsService;
|
|
import com.fjhx.service.jd.JdBackDetailsService;
|
|
import com.fjhx.service.jd.JdBackService;
|
|
import com.fjhx.service.jd.JdBackService;
|
|
|
|
+import com.fjhx.service.product.ProductInfoService;
|
|
import com.fjhx.service.warehouse.WarehouseService;
|
|
import com.fjhx.service.warehouse.WarehouseService;
|
|
import com.fjhx.utils.PageUtil;
|
|
import com.fjhx.utils.PageUtil;
|
|
import org.springblade.core.excel.util.ExcelUtil;
|
|
import org.springblade.core.excel.util.ExcelUtil;
|
|
|
|
+import org.springblade.core.log.exception.ServiceException;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -26,6 +29,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.StringJoiner;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -45,6 +49,9 @@ public class JdBackServiceImpl extends ServiceImpl<JdBackMapper, JdBack> impleme
|
|
@Autowired
|
|
@Autowired
|
|
private WarehouseService warehouseService;
|
|
private WarehouseService warehouseService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ProductInfoService productInfoService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void add(JdBackVo jdBackVo) {
|
|
public void add(JdBackVo jdBackVo) {
|
|
save(jdBackVo);
|
|
save(jdBackVo);
|
|
@@ -68,6 +75,23 @@ public class JdBackServiceImpl extends ServiceImpl<JdBackMapper, JdBack> impleme
|
|
// 读取excel数据
|
|
// 读取excel数据
|
|
List<JdBackDetails> jdBackDetailsList = ExcelUtil.read(file, JdBackDetails.class);
|
|
List<JdBackDetails> jdBackDetailsList = ExcelUtil.read(file, JdBackDetails.class);
|
|
|
|
|
|
|
|
+ if (jdBackDetailsList.size() == 0) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<String> productCodeString = jdBackDetailsList.stream().map(JdBackDetails::getProductCode).distinct().collect(Collectors.toList());
|
|
|
|
+ List<String> list = productInfoService.listObj(ProductInfo::getCode, q -> q.in(ProductInfo::getCode, productCodeString));
|
|
|
|
+ StringJoiner stringJoiner = new StringJoiner(",");
|
|
|
|
+ if (list.size() < productCodeString.size()) {
|
|
|
|
+ productCodeString.forEach(item -> {
|
|
|
|
+ if (!list.contains(item)) {
|
|
|
|
+ stringJoiner.add(item);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ throw new ServiceException("物流编码不存在:" + stringJoiner);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
// 按运单号分组
|
|
// 按运单号分组
|
|
Map<String, List<JdBackDetails>> byWaybillMap = jdBackDetailsList.stream()
|
|
Map<String, List<JdBackDetails>> byWaybillMap = jdBackDetailsList.stream()
|
|
.collect(Collectors.groupingBy(JdBackDetails::getWaybill));
|
|
.collect(Collectors.groupingBy(JdBackDetails::getWaybill));
|