Browse Source

已采购页面 - 退货窗口增加“本次次品”展示

yzc 1 năm trước cách đây
mục cha
commit
c2fb4638f7

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

@@ -150,4 +150,10 @@ public class PurchaseDetail extends BasePo {
     @TableField(exist = false)
     private Long productDeptId;
 
+    /**
+     * 本次采购次品数
+     */
+    @TableField(exist = false)
+    private BigDecimal purchaseNoQualifiedCount;
+
 }

+ 1 - 2
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java

@@ -1,10 +1,8 @@
 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 com.fjhx.wms.entity.stock.po.StockJournalDetails;
 import com.fjhx.wms.entity.stock.vo.StockJournalDetailsVo;
 import lombok.Getter;
 import lombok.Setter;
@@ -97,4 +95,5 @@ public class PurchaseDetailVo extends PurchaseDetail {
      * 入库列表
      */
     private List<StockJournalDetailsVo> receiptList;
+
 }

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.purchase.entity.purchase.dto.PurchaseDto;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
 import com.fjhx.wms.entity.PurchaseDetailPo;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -61,4 +62,9 @@ public interface PurchaseMapper extends BaseMapper<Purchase> {
      * 获取已采购数量
      */
     List<PurchaseDetailPo> getPurchaseCountList(@Param("ew") IWrapper<Object> wrapper);
+
+    /**
+     * 获取采购次品数量
+     */
+    List<QualityDetail> getPurchaseDisqualificationQuantity(@Param("purchaseId") Long purchaseId);
 }

+ 7 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -35,6 +35,7 @@ import com.fjhx.purchase.entity.purchase.po.PurchasePayRecordDetail;
 import com.fjhx.purchase.entity.purchase.po.PurchaseRefundRecord;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseDocumentaryVo;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
 import com.fjhx.purchase.entity.subscribe.po.Subscribe;
 import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
 import com.fjhx.purchase.mapper.purchase.PurchaseMapper;
@@ -369,6 +370,9 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
             Map<Long, List<ProductInfoVo>> productMap = productInfos.stream().distinct().collect(Collectors.groupingBy(ProductInfoVo::getId));
             //获取所有仓库次品数量
             Map<Long, List<Stock>> stockMap = stockService.mapKGroup(Stock::getProductId, q -> q.in(Stock::getProductId, productIds));
+            List<QualityDetail> purchaseDisqualificationQuantity = baseMapper.getPurchaseDisqualificationQuantity(id);
+            Map<Long, BigDecimal> purchaseNoQuantityMap = purchaseDisqualificationQuantity
+                    .stream().collect(Collectors.toMap(QualityDetail::getBussinessId, QualityDetail::getNoQualifiedCount));
             if (MapUtils.isNotEmpty(productMap)) {
                 for (PurchaseDetail p : purchaseDetailList) {
                     //查询出到货总量
@@ -414,7 +418,9 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
                                 .reduce(BigDecimal.ZERO, BigDecimal::add);
                         p.setPurchaseQuantity(count);
                     }
-
+                    //赋值本次采购次品数
+                    BigDecimal purchaseNoQuantity = purchaseNoQuantityMap.getOrDefault(p.getBussinessId(), BigDecimal.ZERO);
+                    p.setPurchaseNoQualifiedCount(purchaseNoQuantity);
                 }
             }
         }

+ 16 - 0
hx-purchase/src/main/resources/mapper/purchase/PurchaseMapper.xml

@@ -93,5 +93,21 @@
             JOIN purchase p ON pd.purchase_id = p.id
         ${ew.customSqlSegment}
     </select>
+    <select id="getPurchaseDisqualificationQuantity"
+            resultType="com.fjhx.purchase.entity.quality.po.QualityDetail">
+        SELECT
+            qd.product_info_id AS bussinessId,
+            sum( qd.disqualification_quantity ) AS noQualifiedCount
+        FROM
+            purchase p
+                JOIN bytesailing_wms.stock_wait sw ON sw.business_id = p.id and sw.del_flag = 0
+                JOIN bytesailing_wms.arrival_stock_records asr ON asr.stock_wait_id = sw.id and asr.del_flag = 0
+                JOIN bytesailing_victoriatourist.quality_info qi ON qi.bussiness_id = asr.id and qi.del_flag = 0
+                JOIN bytesailing_victoriatourist.quality_details qd ON qd.quality_info_id = qi.id and qd.del_flag = 0
+        WHERE
+            p.id = #{purchaseId}
+        GROUP BY
+            qd.product_info_id
+    </select>
 
 </mapper>

+ 8 - 4
hx-wms/src/main/java/com/fjhx/wms/entity/arrival/po/ArrivalStockRecordsDetails.java

@@ -1,13 +1,12 @@
 package com.fjhx.wms.entity.arrival.po;
 
-import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.math.BigDecimal;
-import java.util.Date;
+import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * <p>
  * 采购到货记录明细 维多利亚
@@ -41,4 +40,9 @@ public class ArrivalStockRecordsDetails extends BasePo {
      */
     private BigDecimal qualityQuantity;
 
+    /**
+     * 业务明细id (待入库明细id)
+     */
+    private Long businessDetailsId;
+
 }

+ 1 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -372,6 +372,7 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
                 arrivalStockRecordsDetails.setProductInfoId(waitDetails.getProductId());
                 arrivalStockRecordsDetails.setQuantity(waitDetails.getQuantity());
                 arrivalStockRecordsDetails.setQualityQuantity(BigDecimal.ZERO);
+                arrivalStockRecordsDetails.setBusinessDetailsId(waitDetails.getId());
                 arrivalStockRecordsDetailsList.add(arrivalStockRecordsDetails);
             }
             arrivalStockRecordsDetailsService.saveBatch(arrivalStockRecordsDetailsList);