|
@@ -21,7 +21,6 @@ import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
|
|
|
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.utils.StringUtils;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import org.apache.commons.collections4.MapUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -32,6 +31,7 @@ import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -62,50 +62,42 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
|
|
|
*/
|
|
|
@Override
|
|
|
public Page<SubscribeDetailVo> getPage(SubscribeDetailSelectDto dto) {
|
|
|
- Map<Long, List<ProductInfoVo>> productMap;
|
|
|
- List<Long> productIds = new ArrayList<>();
|
|
|
IWrapper<SubscribeDetail> wrapper = getWrapper();
|
|
|
- //搜索条件-----当产品数据量多得情况下会影响查询得速度。超过1000条mybatisplus在in查询得时候会报错
|
|
|
- if (ObjectUtil.isNotEmpty(dto.getProductType())) {//如果类型存在带入类型查询
|
|
|
- List<ProductInfoVo> productList = productInfoService.getListByProductType(dto.getProductType());
|
|
|
- if (CollectionUtils.isEmpty(productList)) {
|
|
|
- return new Page<>();
|
|
|
- } else {
|
|
|
- productMap = productList.stream().distinct().collect(Collectors.groupingBy(ProductInfoVo::getId));
|
|
|
- productIds = productList.stream().map(ProductInfoVo::getId).collect(Collectors.toList());
|
|
|
- }
|
|
|
- } else {//不存在查所有
|
|
|
- List<ProductInfoVo> productList = productInfoService.getListByProductType(null);
|
|
|
- productMap = productList.stream().distinct().collect(Collectors.groupingBy(ProductInfoVo::getId));
|
|
|
- }
|
|
|
if (ObjectUtil.isNotEmpty(dto.getStatus())) {
|
|
|
wrapper.in("t1", SubscribeDetail::getStatus, Arrays.asList(dto.getStatus().split(",")));
|
|
|
}
|
|
|
- if (CollectionUtils.isNotEmpty(productIds)) {
|
|
|
- wrapper.in("t1", SubscribeDetail::getBussinessId, productIds);
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(dto.getKeyword())) {
|
|
|
- wrapper.like("t2", Subscribe::getCode, dto.getKeyword());
|
|
|
+
|
|
|
+ // 如果类型存在带入类型查询
|
|
|
+ List<ProductInfoVo> productList = productInfoService.getListByProductType(dto.getProductType(), dto.getDefinition());
|
|
|
+ if (ObjectUtil.isEmpty(productList)) {
|
|
|
+ return new Page<>();
|
|
|
}
|
|
|
- //维多利亚扩展根据到货仓库id过滤
|
|
|
+ List<Long> productIds = productList.stream().map(ProductInfoVo::getId).collect(Collectors.toList());
|
|
|
+ wrapper.in("t1", SubscribeDetail::getBussinessId, productIds);
|
|
|
+ wrapper.like("t2", Subscribe::getCode, dto.getKeyword());
|
|
|
+
|
|
|
+ // 维多利亚扩展根据到货仓库id过滤
|
|
|
wrapper.eq("json_unquote(t2.victoriatourist_json -> '$.receiptWarehouseId')", dto.getReceiptWarehouseId());
|
|
|
wrapper.orderByDesc("t1", SubscribeDetail::getCreateTime);
|
|
|
+
|
|
|
Page<SubscribeDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
List<SubscribeDetailVo> list = page.getRecords();
|
|
|
- if (CollectionUtils.isNotEmpty(list) && MapUtils.isNotEmpty(productMap)) {
|
|
|
- for (SubscribeDetailVo s : list) {
|
|
|
- List<ProductInfoVo> productInfos = productMap.getOrDefault(s.getBussinessId(), null);
|
|
|
- if (ObjectUtil.isNotEmpty(productInfos)) {
|
|
|
- ProductInfoVo vo = productInfos.get(0);
|
|
|
- s.setProductCode(vo.getCode());
|
|
|
- s.setProductName(vo.getName());
|
|
|
- s.setProductType(vo.getType());
|
|
|
- s.setProductCategory(vo.getClassifyName());
|
|
|
- s.setProductUnit(vo.getUnit());
|
|
|
- s.setProductDefinition(vo.getDefinition());
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+ if (list.size() == 0) {
|
|
|
+ return page;
|
|
|
}
|
|
|
+
|
|
|
+ for (SubscribeDetailVo s : list) {
|
|
|
+ Map<Long, ProductInfoVo> productMap = productList.stream().collect(Collectors.toMap(ProductInfoVo::getId, Function.identity()));
|
|
|
+ ProductInfoVo productInfo = productMap.get(s.getBussinessId());
|
|
|
+ s.setProductCode(productInfo.getCode());
|
|
|
+ s.setProductName(productInfo.getName());
|
|
|
+ s.setProductType(productInfo.getType());
|
|
|
+ s.setProductCategory(productInfo.getClassifyName());
|
|
|
+ s.setProductUnit(productInfo.getUnit());
|
|
|
+ s.setProductDefinition(productInfo.getDefinition());
|
|
|
+ }
|
|
|
+
|
|
|
return page;
|
|
|
}
|
|
|
|