瀏覽代碼

到货质检页面增加“质检详情”展示

yzc 1 年之前
父節點
當前提交
c7dcbf4e5f

+ 14 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/WmsServiceImpl.java

@@ -6,14 +6,19 @@ import com.fjhx.area.utils.CustomizeAreaUtil;
 import com.fjhx.victoriatourist.entity.abnormal.po.AbnormalInfo;
 import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBack;
 import com.fjhx.victoriatourist.entity.purchase.vo.PurchaseBackVo;
+import com.fjhx.victoriatourist.entity.quality.po.QualityDetails;
 import com.fjhx.victoriatourist.service.abnormal.AbnormalInfoService;
 import com.fjhx.victoriatourist.service.order.OrderInfoService;
 import com.fjhx.victoriatourist.service.purchase.PurchaseBackService;
+import com.fjhx.victoriatourist.service.quality.QualityDetailsService;
+import com.fjhx.wms.entity.QualityDetailsPo;
 import com.fjhx.wms.entity.stock.dto.StockWaitDto;
 import com.fjhx.wms.service.WmsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class WmsServiceImpl implements WmsService {
     @Autowired
@@ -22,6 +27,8 @@ public class WmsServiceImpl implements WmsService {
     private AbnormalInfoService abnormalInfoService;
     @Autowired
     private PurchaseBackService purchaseBackService;
+    @Autowired
+    private QualityDetailsService qualityDetailsService;
 
 //    /**
 //     * 销售订单出库
@@ -57,4 +64,11 @@ public class WmsServiceImpl implements WmsService {
         CustomizeAreaUtil.setAreaName(purchaseBackVo);
         return purchaseBackVo;
     }
+
+    @Override
+    public List<QualityDetailsPo> getQualityDetailsList(List<Long> arrivalStockRecordsDetailsIds) {
+        List<QualityDetails> list = qualityDetailsService.list(q -> q.in(QualityDetails::getArrivalStockRecordsDetailsId, arrivalStockRecordsDetailsIds));
+        List<QualityDetailsPo> qualityDetailsPos = BeanUtil.copyToList(list, QualityDetailsPo.class);
+        return qualityDetailsPos;
+    }
 }

+ 53 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/QualityDetailsPo.java

@@ -0,0 +1,53 @@
+package com.fjhx.wms.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 质检明细
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-26
+ */
+@Getter
+@Setter
+@TableName("quality_details")
+public class QualityDetailsPo extends BasePo {
+
+    /**
+     * 质检id
+     */
+    private Long qualityInfoId;
+
+    /**
+     * 产品id
+     */
+    private Long productInfoId;
+
+    /**
+     * 需要质检数量
+     */
+    private BigDecimal totalQuantity;
+
+    /**
+     * 合格数量
+     */
+    private BigDecimal qualifiedQuantity;
+
+    /**
+     * 不合格数量
+     */
+    private BigDecimal disqualificationQuantity;
+
+    /**
+     * 到货入库明细id
+     */
+    private Long arrivalStockRecordsDetailsId;
+
+}

+ 16 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/arrival/vo/ArrivalStockRecordsDetailsVo.java

@@ -4,6 +4,8 @@ import com.fjhx.wms.entity.arrival.po.ArrivalStockRecordsDetails;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 采购到货记录明细 维多利亚列表查询返回值实体
  *
@@ -50,4 +52,18 @@ public class ArrivalStockRecordsDetailsVo extends ArrivalStockRecordsDetails {
      */
     private String productCustomCode;
 
+    /**
+     * 已质检数量
+     */
+    BigDecimal totalQuantity;
+    /**
+     * 质检合格数量
+     */
+    BigDecimal qualifiedQuantity;
+    /**
+     * 质检不合格数量
+     */
+    BigDecimal disqualificationQuantity;
+
+
 }

+ 8 - 0
hx-wms/src/main/java/com/fjhx/wms/service/WmsService.java

@@ -1,7 +1,10 @@
 package com.fjhx.wms.service;
 
+import com.fjhx.wms.entity.QualityDetailsPo;
 import com.fjhx.wms.entity.stock.dto.StockWaitDto;
 
+import java.util.List;
+
 public interface WmsService {
 
     /**
@@ -23,4 +26,9 @@ public interface WmsService {
      * 获取采购退货信息
      */
     Object getPurchaseBackInfo(Long id);
+
+    /**
+     * 根据到货id获取质检明细
+     */
+    List<QualityDetailsPo> getQualityDetailsList(List<Long> arrivalStockRecordsDetailsIds);
 }

+ 38 - 3
hx-wms/src/main/java/com/fjhx/wms/service/arrival/impl/ArrivalStockRecordsServiceImpl.java

@@ -1,9 +1,11 @@
 package com.fjhx.wms.service.arrival.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.wms.entity.QualityDetailsPo;
 import com.fjhx.wms.entity.arrival.dto.ArrivalStockRecordsDto;
 import com.fjhx.wms.entity.arrival.dto.ArrivalStockRecordsSelectDto;
 import com.fjhx.wms.entity.arrival.po.ArrivalStockRecords;
@@ -11,13 +13,18 @@ import com.fjhx.wms.entity.arrival.po.ArrivalStockRecordsDetails;
 import com.fjhx.wms.entity.arrival.vo.ArrivalStockRecordsDetailsVo;
 import com.fjhx.wms.entity.arrival.vo.ArrivalStockRecordsVo;
 import com.fjhx.wms.mapper.arrival.ArrivalStockRecordsMapper;
+import com.fjhx.wms.service.WmsService;
 import com.fjhx.wms.service.arrival.ArrivalStockRecordsDetailsService;
 import com.fjhx.wms.service.arrival.ArrivalStockRecordsService;
+import com.googlecode.aviator.utils.ArrayHashMap;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
@@ -25,7 +32,7 @@ import java.util.List;
  * 采购到货入库记录 维多利亚 服务实现类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-26
  */
 @Service
@@ -35,6 +42,8 @@ public class ArrivalStockRecordsServiceImpl extends ServiceImpl<ArrivalStockReco
     ArrivalStockRecordsDetailsService arrivalStockRecordsDetailsService;
     @Autowired
     ProductInfoService productInfoService;
+    @Autowired
+    private WmsService wmsService;
 
     @Override
     public Page<ArrivalStockRecordsVo> getPage(ArrivalStockRecordsSelectDto dto) {
@@ -48,8 +57,34 @@ public class ArrivalStockRecordsServiceImpl extends ServiceImpl<ArrivalStockReco
     public ArrivalStockRecordsVo detail(Long id) {
         ArrivalStockRecords ArrivalStockRecords = this.getById(id);
         ArrivalStockRecordsVo result = BeanUtil.toBean(ArrivalStockRecords, ArrivalStockRecordsVo.class);
-                List<ArrivalStockRecordsDetails> qualityDetailsList = arrivalStockRecordsDetailsService.list(q -> q.eq(ArrivalStockRecordsDetails::getArrivalStockRecordsId, result.getId()));
-        List<ArrivalStockRecordsDetailsVo> arrivalStockRecordsDetailsVos = BeanUtil.copyToList(qualityDetailsList, ArrivalStockRecordsDetailsVo.class);
+
+        List<ArrivalStockRecordsDetails> arrivalStockRecordsDetails = arrivalStockRecordsDetailsService.list(q -> q.eq(ArrivalStockRecordsDetails::getArrivalStockRecordsId, result.getId()));
+        List<ArrivalStockRecordsDetailsVo> arrivalStockRecordsDetailsVos = BeanUtil.copyToList(arrivalStockRecordsDetails, ArrivalStockRecordsDetailsVo.class);
+
+        //获取已质检信息
+        List<Long> ids = arrivalStockRecordsDetailsVos.stream().map(ArrivalStockRecordsDetails::getId).distinct().collect(Collectors.toList());
+        List<QualityDetailsPo> qualityDetailsList = wmsService.getQualityDetailsList(ids);
+        Map<Long, List<QualityDetailsPo>> qualityDetailsMap = new ArrayHashMap<>();
+        if (ObjectUtil.isNotEmpty(qualityDetailsList)) {
+            qualityDetailsMap = qualityDetailsList.stream().collect(Collectors.groupingBy(QualityDetailsPo::getArrivalStockRecordsDetailsId));
+        }
+        for (ArrivalStockRecordsDetailsVo arrivalStockRecordsDetailsVo : arrivalStockRecordsDetailsVos) {
+            List<QualityDetailsPo> qualityDetailsPos = qualityDetailsMap.get(arrivalStockRecordsDetailsVo);
+            if (ObjectUtil.isEmpty(qualityDetailsPos)) {
+                arrivalStockRecordsDetailsVo.setTotalQuantity(BigDecimal.ZERO);
+                arrivalStockRecordsDetailsVo.setQualifiedQuantity(BigDecimal.ZERO);
+                arrivalStockRecordsDetailsVo.setDisqualificationQuantity(BigDecimal.ZERO);
+                continue;
+            }
+            BigDecimal totalQuantity = qualityDetailsPos.stream().map(QualityDetailsPo::getTotalQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal qualifiedQuantity = qualityDetailsPos.stream().map(QualityDetailsPo::getQualifiedQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal disqualificationQuantity = qualityDetailsPos.stream().map(QualityDetailsPo::getDisqualificationQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            arrivalStockRecordsDetailsVo.setTotalQuantity(totalQuantity);
+            arrivalStockRecordsDetailsVo.setQualifiedQuantity(qualifiedQuantity);
+            arrivalStockRecordsDetailsVo.setDisqualificationQuantity(disqualificationQuantity);
+        }
+
         //赋值产品信息
         productInfoService.attributeAssign(arrivalStockRecordsDetailsVos, ArrivalStockRecordsDetailsVo::getProductInfoId, (item, productInfo) -> {
             item.setProductName(productInfo.getName());