Procházet zdrojové kódy

销售订单问题处理,维多利亚问题处理,增加到货详情

yzc před 2 roky
rodič
revize
8ad895d4d6
19 změnil soubory, kde provedl 260 přidání a 7 odebrání
  1. 1 1
      hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderServiceImpl.java
  2. 8 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/subscribe/SubscribeController.java
  3. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/vo/ArrivalDetailVo.java
  4. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java
  5. 7 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseVo.java
  6. 6 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/po/SubscribeDetail.java
  7. 6 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/arrival/ArrivalDetailMapper.java
  8. 3 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/ArrivalDetailService.java
  9. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalDetailServiceImpl.java
  10. 12 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java
  11. 8 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeService.java
  12. 32 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeServiceImpl.java
  13. 9 0
      hx-purchase/src/main/resources/mapper/arrival/ArrivalDetailMapper.xml
  14. 6 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/deliver/DeliverGoodsController.java
  15. 5 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/deliver/vo/DeliverGoodsDetailsVo.java
  16. 3 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/deliver/DeliverGoodsMapper.java
  17. 7 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/deliver/DeliverGoodsService.java
  18. 104 6
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/deliver/impl/DeliverGoodsServiceImpl.java
  19. 16 0
      hx-victoriatourist/src/main/resources/mapper/deliver/DeliverGoodsMapper.xml

+ 1 - 1
hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderServiceImpl.java

@@ -145,7 +145,7 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
             throw new ServiceException("查询不到产品信息 产品id->" + workOrderDto.getProductId());
         }
         //搜索BOM明细并到冻结库存
-        BomInfo bomInfo = bomInfoService.getOne(q -> q.eq(BomInfo::getProductId, workOrderDto.getProductId()));
+        BomInfo bomInfo = bomInfoService.getOne(q -> q.eq(BomInfo::getProductId, workOrderDto.getProductId()).eq(BomInfo::getCurrentVersion,1));
         if (ObjectUtil.isEmpty(bomInfo)) {
             throw new ServiceException("查询不到产品的BOM信息 产品名称->" + productInfo.getName());
         }

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

@@ -3,6 +3,7 @@ package com.fjhx.purchase.controller.subscribe;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.ruoyi.common.core.domain.entity.SysDept;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
@@ -12,6 +13,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.fjhx.purchase.service.subscribe.SubscribeService;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -77,4 +80,9 @@ public class SubscribeController {
         subscribeService.delete(dto.getId());
     }
 
+    @GetMapping("/getDepts")
+    public List<SysDept> getDepts() {
+        return subscribeService.getDepts();
+    }
+
 }

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/vo/ArrivalDetailVo.java

@@ -80,4 +80,9 @@ public class ArrivalDetailVo extends ArrivalDetail {
      * 质检总数
      */
     private BigDecimal sumQualityCount;
+
+    /**
+     * 发货物流单号
+     */
+    private String logisticsCode;
 }

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java

@@ -1,10 +1,14 @@
 package com.fjhx.purchase.entity.purchase.vo;
 
+import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
+import com.fjhx.purchase.entity.deliver.DeliverGoodsDetailsPo;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 申购单列表查询返回值实体
@@ -49,5 +53,18 @@ public class PurchaseDetailVo extends PurchaseDetail {
      * 产品定义
      */
     private Integer productDefinition;
+    /**
+     * 产品自定义编号
+     */
+    private String productCustomCode;
+
+    private List<QualityDetail> qualityDetailsList;
+
+    /**
+     * 发货数量
+     */
+    private BigDecimal arrivalQuantity;
 
+    List<Object> deliverGoodsDetailList;
+    List<ArrivalDetailVo> arrivalDetailList;
 }

+ 7 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseVo.java

@@ -4,6 +4,8 @@ import com.fjhx.purchase.entity.purchase.po.Purchase;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 采购列表查询返回值实体
  *
@@ -20,4 +22,9 @@ public class PurchaseVo extends Purchase {
      * 到货状态
      */
     private Integer arrivalStatus;
+
+    /**
+     * 采购明细列表
+     */
+    private List<PurchaseDetailVo> purchaseDetailVoList;
 }

+ 6 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/po/SubscribeDetail.java

@@ -97,4 +97,10 @@ public class SubscribeDetail extends BasePo {
      */
     @TableField(exist = false)
     private Long deptId;
+
+    /**
+     * 产品定义
+     */
+    @TableField(exist = false)
+    private Integer productDefinition;
 }

+ 6 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/arrival/ArrivalDetailMapper.java

@@ -8,6 +8,7 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 
 /**
@@ -30,4 +31,9 @@ public interface ArrivalDetailMapper extends BaseMapper<ArrivalDetail> {
      * @return
      */
     BigDecimal getSumCount(@Param("purchaseDetailId")Long purchaseDetailId,@Param("businessId")Long businessId);
+
+    /**
+     * 获取到货明细
+     */
+    List<ArrivalDetailVo> getArrivalDetail(@Param("ew") IWrapper<ArrivalDetail> wrapper);
 }

+ 3 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/ArrivalDetailService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
 import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailSelectDto;
 import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -49,8 +50,10 @@ public interface ArrivalDetailService extends BaseService<ArrivalDetail> {
 
     /**
      * 统计到货明细总数
+     *
      * @return
      */
     BigDecimal getSumCount(Long purchaseDetailId, Long businessId);
 
+    List<ArrivalDetailVo> getArrivalDetail(IWrapper<ArrivalDetail> wrapper1);
 }

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalDetailServiceImpl.java

@@ -160,4 +160,9 @@ public class ArrivalDetailServiceImpl extends ServiceImpl<ArrivalDetailMapper, A
         return baseMapper.getSumCount(purchaseDetailId,businessId);
     }
 
+    @Override
+    public List<ArrivalDetailVo> getArrivalDetail(IWrapper<ArrivalDetail> wrapper1) {
+        return baseMapper.getArrivalDetail(wrapper1);
+    }
+
 }

+ 12 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 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.service.product.ProductInfoService;
 import com.fjhx.kd100.entity.company.po.CompanyInfo;
 import com.fjhx.kd100.service.company.CompanyInfoService;
 import com.fjhx.purchase.entity.arrival.dto.ArrivalDto;
@@ -21,6 +22,8 @@ import com.fjhx.purchase.entity.deliver.DeliverGoodsDetailsPo;
 import com.fjhx.purchase.entity.deliver.DeliverGoodsPo;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
 import com.fjhx.purchase.entity.subscribe.po.Subscribe;
 import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
 import com.fjhx.purchase.mapper.arrival.ArrivalMapper;
@@ -32,9 +35,12 @@ import com.fjhx.purchase.service.purchase.PurchaseService;
 import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
 import com.fjhx.purchase.service.subscribe.SubscribeService;
 import com.fjhx.purchase.util.code.CodeEnum;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.fjhx.wms.entity.stock.emums.StockWaitType;
 import com.fjhx.wms.entity.stock.po.StockWait;
 import com.fjhx.wms.entity.stock.po.StockWaitDetails;
+import com.fjhx.wms.entity.stock.vo.StockVo;
 import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.obs.services.internal.ServiceException;
@@ -83,6 +89,10 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
     PurchaseDetailService purchaseDetailService;
     @Autowired
     private CompanyInfoService companyInfoService;
+    @Autowired
+    private SupplierInfoService supplierInfoService;
+    @Autowired
+    private ProductInfoService productInfoService;
 
     @Override
     public Page<ArrivalVo> getPage(ArrivalSelectDto dto) {
@@ -308,4 +318,6 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
         this.removeById(id);
     }
 
+
+
 }

+ 8 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeService.java

@@ -1,12 +1,15 @@
 package com.fjhx.purchase.service.subscribe;
 
 import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
 import com.fjhx.purchase.entity.subscribe.dto.SubscribeSelectDto;
 import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -47,4 +50,9 @@ public interface SubscribeService extends BaseService<Subscribe> {
      */
     void delete(Long id);
 
+    /**
+     * 获取待采购所有产品的部门列表
+     * @return
+     */
+    List<SysDept> getDepts();
 }

+ 32 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeServiceImpl.java

@@ -4,12 +4,14 @@ import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 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.SubscribeDto;
@@ -24,11 +26,14 @@ import com.fjhx.purchase.util.code.CodeEnum;
 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.core.domain.entity.SysDept;
 import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.system.service.ISysDeptService;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -54,6 +59,8 @@ public class SubscribeServiceImpl extends ServiceImpl<SubscribeMapper, Subscribe
 
     @Autowired
     WarehouseService warehouseService;
+    @Autowired
+    ISysDeptService deptService;
 
     @Override
     public Page<SubscribeVo> getPage(SubscribeSelectDto dto) {
@@ -95,6 +102,7 @@ public class SubscribeServiceImpl extends ServiceImpl<SubscribeMapper, Subscribe
                     s.setProductUnit(p.getUnit());
                     s.setProductType(p.getType());
                     s.setProductName(p.getName());
+                    s.setProductDefinition(p.getDefinition());
                 }
             }
         }
@@ -151,4 +159,28 @@ public class SubscribeServiceImpl extends ServiceImpl<SubscribeMapper, Subscribe
         this.removeById(id);
     }
 
+    @Override
+    public List<SysDept> getDepts() {
+        List<Long> deptIds = new ArrayList<>();
+        List<SubscribeDetail> list = subscribeDetailService.list();
+        if(ObjectUtils.isEmpty(list)){
+            return new ArrayList<>();
+        }
+        List<Long> ids = list.stream().map(SubscribeDetail::getBussinessId).collect(Collectors.toList());
+        List<ProductInfo> list1 = productInfoService.listByIds(ids);
+        for (ProductInfo productInfo : list1) {
+            String victoriatouristJson = productInfo.getVictoriatouristJson();
+            JSONObject json = ObjectUtils.isNotEmpty(victoriatouristJson) ? JSONObject.parseObject(victoriatouristJson) : new JSONObject();
+            Long deptId = json.getLong("deptId");
+            deptIds.add(deptId);
+        }
+        if(ObjectUtils.isEmpty(deptIds)){
+            return new ArrayList<>();
+        }
+        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+        List<SysDept> sysDepts = deptService.listByIds(deptIds);
+        DynamicDataSourceContextHolder.poll();
+        return sysDepts;
+    }
+
 }

+ 9 - 0
hx-purchase/src/main/resources/mapper/arrival/ArrivalDetailMapper.xml

@@ -24,4 +24,13 @@
             purchase_detail_id = #{purchaseDetailId}
           AND bussiness_id = #{businessId}
     </select>
+    <select id="getArrivalDetail" resultType="com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo">
+        SELECT
+            a.purchase_id,
+            ad.*
+        FROM
+            arrival a
+                JOIN arrival_detail ad ON ad.arrival_id = a.id
+            ${ew.customSqlSegment}
+    </select>
 </mapper>

+ 6 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/deliver/DeliverGoodsController.java

@@ -1,5 +1,6 @@
 package com.fjhx.victoriatourist.controller.deliver;
 
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
 import com.fjhx.victoriatourist.entity.deliver.po.DeliverGoods;
 import com.fjhx.victoriatourist.entity.deliver.vo.DeliverGoodsDetailsVo;
 import org.springframework.web.bind.annotation.*;
@@ -79,4 +80,9 @@ public class DeliverGoodsController {
         return deliverGoodsService.list(dto.getId());
     }
 
+    @PostMapping("/arrivalDetail")
+    public PurchaseVo arrivalDetail(@RequestBody DeliverGoodsDto dto) {
+        return deliverGoodsService.arrivalDetail(dto.getPurchaseId());
+    }
+
 }

+ 5 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/deliver/vo/DeliverGoodsDetailsVo.java

@@ -56,4 +56,9 @@ public class DeliverGoodsDetailsVo extends DeliverGoodsDetails {
      */
     private BigDecimal transitQuantity;
 
+    /**
+     * 物流单号
+     */
+    private String logisticsCode;
+
 }

+ 3 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/deliver/DeliverGoodsMapper.java

@@ -1,5 +1,6 @@
 package com.fjhx.victoriatourist.mapper.deliver;
 
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
 import com.fjhx.victoriatourist.entity.deliver.po.DeliverGoods;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -28,4 +29,6 @@ public interface DeliverGoodsMapper extends BaseMapper<DeliverGoods> {
 
     List<DeliverGoodsDetailsVo> listDeliverGoodsDetails(@Param("ew") IWrapper<DeliverGoods> wrapper);
 
+    List<QualityDetail> getQualityInfoByPurchaseId(@Param("id") Long id);
+
 }

+ 7 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/deliver/DeliverGoodsService.java

@@ -1,5 +1,6 @@
 package com.fjhx.victoriatourist.service.deliver;
 
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
 import com.fjhx.victoriatourist.entity.deliver.po.DeliverGoods;
 import com.fjhx.victoriatourist.entity.deliver.vo.DeliverGoodsDetailsVo;
 import com.ruoyi.common.core.service.BaseService;
@@ -53,4 +54,10 @@ public interface DeliverGoodsService extends BaseService<DeliverGoods> {
      */
     List<DeliverGoods> list(Long id);
 
+    /**
+     * 维多利亚到货明细
+     *
+     * @return
+     */
+    PurchaseVo arrivalDetail(Long purchaseId);
 }

+ 104 - 6
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/deliver/impl/DeliverGoodsServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fjhx.victoriatourist.service.deliver.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
@@ -9,10 +10,18 @@ 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.service.product.ProductInfoService;
+import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
+import com.fjhx.purchase.service.arrival.ArrivalDetailService;
 import com.fjhx.purchase.service.purchase.PurchaseDetailService;
 import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.fjhx.victoriatourist.entity.deliver.dto.DeliverGoodsDto;
 import com.fjhx.victoriatourist.entity.deliver.dto.DeliverGoodsSelectDto;
 import com.fjhx.victoriatourist.entity.deliver.po.DeliverGoods;
@@ -29,10 +38,10 @@ import com.fjhx.victoriatourist.service.logistics.LogisticsInfosService;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -62,6 +71,10 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
     LogisticsDetailsService logisticsDetailsService;
     @Autowired
     PurchaseService purchaseService;
+    @Autowired
+    private SupplierInfoService supplierInfoService;
+    @Autowired
+    private ArrivalDetailService arrivalDetailService;
 
     @Override
     public Page<DeliverGoodsVo> getPage(DeliverGoodsSelectDto dto) {
@@ -81,7 +94,7 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
         //获取采购明细列表
         //赋值产品信息
         List<Long> pdids = deliverGoodsDetailsVos.stream().map(DeliverGoodsDetails::getPurchaseDetailId).collect(Collectors.toList());
-        if(ObjectUtil.isEmpty(pdids)){
+        if (ObjectUtil.isEmpty(pdids)) {
             return deliverGoodsDetailsVos;
         }
         List<PurchaseDetail> purchaseDetailList = purchaseDetailService.listByIds(pdids);
@@ -90,7 +103,7 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
         List<ProductInfo> productInfos = productInfoService.listByIds(goodids);
         Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.toMap(ProductInfo::getId, Function.identity()));
         //获取采购明细信息
-        Map<Long, PurchaseDetail> purchaseDetailMap = purchaseDetailList.stream().collect(Collectors.toMap(PurchaseDetail::getId,Function.identity()));
+        Map<Long, PurchaseDetail> purchaseDetailMap = purchaseDetailList.stream().collect(Collectors.toMap(PurchaseDetail::getId, Function.identity()));
 
         for (DeliverGoodsDetailsVo deliverGoodsDetailsVo : deliverGoodsDetailsVos) {
             //赋值产品信息
@@ -110,8 +123,8 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
             deliverGoodsDetailsVo.setCount(purchaseDetail.getCount());
             //赋值在途数量
             IWrapper<DeliverGoods> wrapper1 = IWrapper.getWrapper();
-            wrapper1.eq("dgd",DeliverGoodsDetails::getPurchaseDetailId, deliverGoodsDetailsVo.getPurchaseDetailId());
-            wrapper1.eq("dg.status",0);
+            wrapper1.eq("dgd", DeliverGoodsDetails::getPurchaseDetailId, deliverGoodsDetailsVo.getPurchaseDetailId());
+            wrapper1.eq("dg.status", 0);
             List<DeliverGoodsDetailsVo> list = baseMapper.listDeliverGoodsDetails(wrapper1);
             BigDecimal count = list.stream()
                     .map(DeliverGoodsDetails::getDeliverGoodsQuantity)
@@ -135,7 +148,7 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
         logisticsInfos.setBusinessId(deliverGoodsDto.getId());//设置业务id为发货id
 //        logisticsInfos.setBusinessCode(purchase.getCode());//设置采购单号为业务单号
         String victoriatouristJson2 = purchase.getVictoriatouristJson();
-        JSONObject json2 = ObjectUtil.isNotEmpty(victoriatouristJson2) ? JSONObject.parseObject(victoriatouristJson2):new JSONObject();
+        JSONObject json2 = ObjectUtil.isNotEmpty(victoriatouristJson2) ? JSONObject.parseObject(victoriatouristJson2) : new JSONObject();
         logisticsInfos.setBusinessCode(json2.getString("contractCode"));
         logisticsInfos.setBusinessType(1);//采购到货
         logisticsInfos.setStatus(0);
@@ -180,4 +193,89 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
         return list;
     }
 
+    @Override
+    public PurchaseVo arrivalDetail(Long purchaseId) {
+        Purchase purchase = purchaseService.getById(purchaseId);
+        PurchaseVo result = BeanUtil.toBean(purchase, PurchaseVo.class);
+        //赋值供应商信息
+        SupplierInfo supplierInfo = supplierInfoService.getById(purchase.getSupplyId());
+        if (ObjectUtil.isNotEmpty(supplierInfo)) {
+            result.setSupplyName(supplierInfo.getName());
+        }
+        //赋值采购明细
+        List<PurchaseDetail> purchaseDetailList = purchaseDetailService.list(q -> q.eq(PurchaseDetail::getPurchaseId, purchase.getId()));
+        List<PurchaseDetailVo> purchaseDetailVoList = BeanUtil.copyToList(purchaseDetailList, PurchaseDetailVo.class);
+        //赋值产品信息
+        productInfoService.attributeAssign(purchaseDetailVoList, PurchaseDetailVo::getBussinessId, (item, productInfo) -> {
+            item.setProductCode(productInfo.getCode());
+            item.setProductName(productInfo.getName());
+            item.setProductCustomCode(productInfo.getCustomCode());
+        });
+        //赋值质检信息
+        List<QualityDetail> qualityInfoByPurchaseId = baseMapper.getQualityInfoByPurchaseId(purchase.getId());
+        if (ObjectUtil.isNotEmpty(qualityInfoByPurchaseId)) {
+            Map<Long, QualityDetail> qualityDetailsMap = qualityInfoByPurchaseId.stream().collect(Collectors.toMap(QualityDetail::getBussinessId, Function.identity()));
+            for (PurchaseDetailVo purchaseDetailVo : purchaseDetailVoList) {
+                QualityDetail qualityDetails = qualityDetailsMap.get(purchaseDetailVo.getBussinessId());
+                if(ObjectUtil.isEmpty(qualityDetails)){
+                    purchaseDetailVo.setQualifiedCount(BigDecimal.ZERO);
+                    purchaseDetailVo.setNoQualifiedCount(BigDecimal.ZERO);
+                    continue;
+                }
+                purchaseDetailVo.setQualifiedCount(qualityDetails.getQualifiedCount());
+                purchaseDetailVo.setNoQualifiedCount(qualityDetails.getNoQualifiedCount());
+            }
+        }
+        //赋值发货信息
+        IWrapper<DeliverGoods> wrapper = getWrapper();
+        wrapper.eq("dg", DeliverGoods::getPurchaseId, purchaseId);
+        List<DeliverGoodsDetailsVo> list = baseMapper.listDeliverGoodsDetails(wrapper);
+        if (ObjectUtil.isNotEmpty(list)) {
+            Map<Long, List<DeliverGoodsDetailsVo>> collect = list.stream().collect(Collectors.groupingBy(DeliverGoodsDetailsVo::getPurchaseDetailId));
+            for (PurchaseDetailVo purchaseDetailVo : purchaseDetailVoList) {
+                List<DeliverGoodsDetailsVo> list1 = collect.get(purchaseDetailVo.getId());
+                if(ObjectUtil.isEmpty(list1)){
+                    purchaseDetailVo.setDeliverGoodsQuantity(BigDecimal.ZERO);
+                    continue;
+                }
+                //发货数量求和
+                BigDecimal dgdCount = list1.stream()
+                        .map(DeliverGoodsDetailsVo::getDeliverGoodsQuantity)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+                purchaseDetailVo.setDeliverGoodsQuantity(dgdCount);
+                purchaseDetailVo.setDeliverGoodsDetailList(Collections.singletonList(list1));
+            }
+        }
+        //赋值到货信息
+        IWrapper<ArrivalDetail> wrapper1 = arrivalDetailService.getWrapper();
+        wrapper1.eq("a.purchase_id", purchaseId);
+        List<ArrivalDetailVo> arrivalDetail = arrivalDetailService.getArrivalDetail(wrapper1);
+        if (ObjectUtil.isNotEmpty(arrivalDetail)) {
+            Map<Long, List<ArrivalDetailVo>> collect = arrivalDetail.stream().collect(Collectors.groupingBy(ArrivalDetailVo::getBussinessId));
+
+            Map<Long, String> dgdMap = list.stream().collect(Collectors.toMap(DeliverGoodsDetailsVo::getId, DeliverGoodsDetailsVo::getLogisticsCode));
+            for (PurchaseDetailVo purchaseDetailVo : purchaseDetailVoList) {
+                List<ArrivalDetailVo> list1 = collect.get(purchaseDetailVo.getBussinessId());
+                if(ObjectUtil.isEmpty(list1)){
+                    purchaseDetailVo.setArrivalQuantity(BigDecimal.ZERO);
+                    continue;
+                }
+
+                //赋值发货单号
+                for (ArrivalDetailVo arrivalDetailVo : list1) {
+                    arrivalDetailVo.setLogisticsCode(dgdMap.get(arrivalDetailVo.getDeliverGoodsDetailsId()));
+                }
+
+                //到货数量求和
+                BigDecimal arrCount = list1.stream()
+                        .map(ArrivalDetailVo::getCount)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+                purchaseDetailVo.setArrivalQuantity(arrCount);
+                purchaseDetailVo.setArrivalDetailList(list1);
+            }
+        }
+        result.setPurchaseDetailVoList(purchaseDetailVoList);
+        return result;
+    }
+
 }

+ 16 - 0
hx-victoriatourist/src/main/resources/mapper/deliver/DeliverGoodsMapper.xml

@@ -18,11 +18,27 @@
     <select id="listDeliverGoodsDetails"
             resultType="com.fjhx.victoriatourist.entity.deliver.vo.DeliverGoodsDetailsVo">
         SELECT
+            dg.code logisticsCode,
             dgd.*
         FROM
             deliver_goods dg
                 JOIN deliver_goods_details dgd ON dgd.deliver_goods_id = dg.id
             ${ew.customSqlSegment}
     </select>
+    <select id="getQualityInfoByPurchaseId" resultType="com.fjhx.purchase.entity.quality.po.QualityDetail">
+        SELECT
+            qd.product_info_id bussiness_id,
+            sum( qd.qualified_quantity ) qualifiedCount,
+            sum( qd.disqualification_quantity ) noQualifiedCount
+        FROM
+            bytesailing_wms.stock_wait sw
+                JOIN bytesailing_wms.arrival_stock_records asr ON asr.stock_wait_id = sw.id
+                JOIN bytesailing_wms.arrival_stock_records_details asrd ON asrd.arrival_stock_records_id = asr.id
+                JOIN bytesailing_victoriatourist.quality_details qd ON qd.arrival_stock_records_details_id = asrd.id
+        WHERE
+            sw.business_id = #{id}
+        ORDER BY
+            qd.product_info_id
+    </select>
 
 </mapper>