|
@@ -1,29 +1,32 @@
|
|
|
package com.fjhx.purchase.service.subscribe.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+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.item.entity.product.po.ProductInfo;
|
|
|
import com.fjhx.item.entity.product.vo.ProductInfoVo;
|
|
|
import com.fjhx.item.service.product.ProductInfoService;
|
|
|
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailDto;
|
|
|
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailSelectDto;
|
|
|
import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
|
|
|
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeDetailVo;
|
|
|
import com.fjhx.purchase.mapper.subscribe.SubscribeDetailMapper;
|
|
|
import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+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.wrapper.IWrapper;
|
|
|
import org.apache.commons.collections4.MapUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.fjhx.purchase.entity.subscribe.vo.SubscribeDetailVo;
|
|
|
-import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailSelectDto;
|
|
|
-import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
-import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailDto;
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -32,7 +35,7 @@ import java.util.stream.Collectors;
|
|
|
* 申购单 服务实现类
|
|
|
* </p>
|
|
|
*
|
|
|
- * @author
|
|
|
+ * @author
|
|
|
* @since 2023-04-03
|
|
|
*/
|
|
|
@DS(SourceConstant.PURCHASE)
|
|
@@ -41,43 +44,46 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
|
|
|
|
|
|
@Autowired
|
|
|
private ProductInfoService productInfoService;
|
|
|
+ @Autowired
|
|
|
+ WarehouseService warehouseService;
|
|
|
|
|
|
/**
|
|
|
* 分页
|
|
|
+ *
|
|
|
* @param dto
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
public Page<SubscribeDetailVo> getPage(SubscribeDetailSelectDto dto) {
|
|
|
- Map<Long,List<ProductInfoVo>> productMap;
|
|
|
+ Map<Long, List<ProductInfoVo>> productMap;
|
|
|
List<Long> productIds = new ArrayList<>();
|
|
|
IWrapper<SubscribeDetail> wrapper = getWrapper();
|
|
|
//搜索条件-----当产品数据量多得情况下会影响查询得速度。超过1000条mybatisplus在in查询得时候会报错
|
|
|
- if(ObjectUtil.isNotEmpty(dto.getProductType())){//如果类型存在带入类型查询
|
|
|
+ if (ObjectUtil.isNotEmpty(dto.getProductType())) {//如果类型存在带入类型查询
|
|
|
List<ProductInfoVo> productList = productInfoService.getListByProductType(dto.getProductType());
|
|
|
- if(CollectionUtils.isEmpty(productList)){
|
|
|
+ if (CollectionUtils.isEmpty(productList)) {
|
|
|
return new Page<>();
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
productMap = productList.stream().distinct().collect(Collectors.groupingBy(ProductInfoVo::getId));
|
|
|
productIds = productList.stream().map(ProductInfoVo::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
- }else{//不存在查所有
|
|
|
+ } 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 (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 (CollectionUtils.isNotEmpty(productIds)) {
|
|
|
+ wrapper.in("t1", SubscribeDetail::getBussinessId, productIds);
|
|
|
}
|
|
|
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){
|
|
|
+ if (CollectionUtils.isNotEmpty(list) && MapUtils.isNotEmpty(productMap)) {
|
|
|
+ for (SubscribeDetailVo s : list) {
|
|
|
List<ProductInfoVo> productInfos = productMap.getOrDefault(s.getBussinessId(), null);
|
|
|
- if(ObjectUtil.isNotEmpty(productInfos)){
|
|
|
+ if (ObjectUtil.isNotEmpty(productInfos)) {
|
|
|
ProductInfoVo vo = productInfos.get(0);
|
|
|
s.setProductCode(vo.getCode());
|
|
|
s.setProductName(vo.getName());
|
|
@@ -90,24 +96,55 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Page<SubscribeDetailVo> getPageByWdly(SubscribeDetailSelectDto dto) {
|
|
|
+ Page<SubscribeDetailVo> page = getPage(dto);
|
|
|
+ List<SubscribeDetailVo> records = page.getRecords();
|
|
|
+
|
|
|
+ //获取到货仓库id列表
|
|
|
+ List<Long> wids = new ArrayList<>();
|
|
|
+ for (SubscribeDetailVo subscribeDetailVo : records) {
|
|
|
+ String victoriatouristJson = subscribeDetailVo.getVictoriatouristJson();
|
|
|
+ if (ObjectUtil.isNotEmpty(victoriatouristJson)) {
|
|
|
+ JSONObject json = JSONObject.parseObject(victoriatouristJson);
|
|
|
+ wids.add(json.getLong("receiptWarehouseId"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //赋值到货仓库名称
|
|
|
+ if (ObjectUtil.isNotEmpty(wids)) {
|
|
|
+ List<Warehouse> warehouses = warehouseService.listByIds(wids);
|
|
|
+ Map<Long, String> warehousesMap = warehouses.stream().collect(Collectors.toMap(Warehouse::getId, Warehouse::getName));
|
|
|
+ for (SubscribeDetailVo subscribeDetailVo : records) {
|
|
|
+ String victoriatouristJson = subscribeDetailVo.getVictoriatouristJson();
|
|
|
+ if (ObjectUtil.isNotEmpty(victoriatouristJson)) {
|
|
|
+ JSONObject json = JSONObject.parseObject(victoriatouristJson);
|
|
|
+ json.put("receiptWarehouseName", warehousesMap.get(json.getLong("receiptWarehouseId")));
|
|
|
+ subscribeDetailVo.setVictoriatouristJson(json.toJSONString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 根据IDS获取明细
|
|
|
+ *
|
|
|
* @param ids
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
public List<SubscribeDetailVo> detail(List<Long> ids) {
|
|
|
- if(CollectionUtils.isEmpty(ids)){
|
|
|
+ if (CollectionUtils.isEmpty(ids)) {
|
|
|
throw new ServiceException("参数异常");
|
|
|
}
|
|
|
List<SubscribeDetailVo> list = baseMapper.getDetail(ids);
|
|
|
- if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
//根据申购businessId取出所有产品
|
|
|
List<Long> productIds = list.stream().map(SubscribeDetail::getBussinessId).collect(Collectors.toList());
|
|
|
List<ProductInfoVo> productInfoVos = productInfoService.getListByProductIds(productIds);
|
|
|
Map<Long, List<ProductInfoVo>> productMap = productInfoVos.stream().collect(Collectors.groupingBy(ProductInfoVo::getId));
|
|
|
- for(SubscribeDetail s:list){
|
|
|
- if(MapUtils.isNotEmpty(productMap)){
|
|
|
+ for (SubscribeDetail s : list) {
|
|
|
+ if (MapUtils.isNotEmpty(productMap)) {
|
|
|
ProductInfoVo p = productMap.get(s.getBussinessId()).get(0);
|
|
|
s.setProductCategory(p.getClassifyName());
|
|
|
s.setProductCode(p.getCode());
|