yzc 2 роки тому
батько
коміт
d830461e52

+ 8 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/subscribe/SubscribeDetailController.java

@@ -39,6 +39,14 @@ public class SubscribeDetailController {
     }
 
     /**
+     * 待采购 维多利亚
+     */
+    @PostMapping("/pageByWdly")
+    public Page<SubscribeDetailVo> pageByWdly(@RequestBody SubscribeDetailSelectDto dto) {
+        return subscribeDetailService.getPageByWdly(dto);
+    }
+
+    /**
      * 申购单明细
      */
     @PostMapping("/detail")

+ 8 - 4
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/Purchase.java

@@ -3,20 +3,19 @@ package com.fjhx.purchase.entity.purchase.po;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
-import lombok.Getter;
-import lombok.Setter;
-
 /**
  * <p>
  * 采购
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-06
  */
 @Getter
@@ -88,4 +87,9 @@ public class Purchase extends BasePo {
      */
     @TableField(exist = false)
     private List<PurchaseDetail> purchaseDetailList;
+
+    /**
+     * 维多利亚扩展json
+     */
+    private String victoriatouristJson;
 }

+ 6 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeDetailService.java

@@ -15,7 +15,7 @@ import java.util.List;
  * 申购单 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-03
  */
 public interface SubscribeDetailService extends BaseService<SubscribeDetail> {
@@ -26,6 +26,11 @@ public interface SubscribeDetailService extends BaseService<SubscribeDetail> {
     Page<SubscribeDetailVo> getPage(SubscribeDetailSelectDto dto);
 
     /**
+     * 待采购分页 维多利亚
+     */
+    Page<SubscribeDetailVo> getPageByWdly(SubscribeDetailSelectDto dto);
+
+    /**
      * 申购单明细
      */
     List<SubscribeDetailVo> detail(List<Long> ids);

+ 64 - 27
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java

@@ -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());