Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

caozj 2 rokov pred
rodič
commit
d76e7ae00d
26 zmenil súbory, kde vykonal 589 pridanie a 8 odobranie
  1. 3 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/PurchaseDetail.java
  2. 21 2
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java
  3. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseVo.java
  4. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailSelectDto.java
  5. 19 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java
  6. 5 1
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java
  7. 52 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/purchase/PurchaseBackController.java
  8. 19 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/purchase/PurchaseBackDetailsController.java
  9. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/dto/PurchaseBackDetailsDto.java
  10. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/dto/PurchaseBackDetailsSelectDto.java
  11. 25 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/dto/PurchaseBackDto.java
  12. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/dto/PurchaseBackSelectDto.java
  13. 57 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/po/PurchaseBack.java
  14. 45 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/po/PurchaseBackDetails.java
  15. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/vo/PurchaseBackDetailsVo.java
  16. 23 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/vo/PurchaseBackVo.java
  17. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/purchase/PurchaseBackDetailsMapper.java
  18. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/purchase/PurchaseBackMapper.java
  19. 35 4
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/deliver/impl/DeliverGoodsServiceImpl.java
  20. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/PurchaseBackDetailsService.java
  21. 36 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/PurchaseBackService.java
  22. 21 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/impl/PurchaseBackDetailsServiceImpl.java
  23. 63 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/impl/PurchaseBackServiceImpl.java
  24. 1 1
      hx-victoriatourist/src/main/resources/mapper/deliver/DeliverGoodsMapper.xml
  25. 4 0
      hx-victoriatourist/src/main/resources/mapper/purchase/PurchaseBackDetailsMapper.xml
  26. 22 0
      hx-victoriatourist/src/main/resources/mapper/purchase/PurchaseBackMapper.xml

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

@@ -119,4 +119,7 @@ public class PurchaseDetail extends BasePo {
     @TableField(exist = false)
     private BigDecimal sumArrivalCount;
 
+    @TableField(exist = false)
+    private String productCustomCode;
+
 }

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

@@ -65,6 +65,25 @@ public class PurchaseDetailVo extends PurchaseDetail {
      */
     private BigDecimal arrivalQuantity;
 
-    List<Object> deliverGoodsDetailList;
-    List<ArrivalDetailVo> arrivalDetailList;
+    /**
+     * 发货记录列表
+     */
+    private Object deliverGoodsDetailList;
+    /**
+     * 到货记录列表
+     */
+    private List<ArrivalDetailVo> arrivalDetailList;
+    /**
+     * 采购退货数量
+     */
+    private BigDecimal purchaseBackQuantity;
+    /**
+     * 采购退货列表
+     */
+    private Object purchaseBackDetailsList;
+
+    /**
+     * 质检数量
+     */
+    private BigDecimal qualityQuantity;
 }

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

@@ -27,4 +27,9 @@ public class PurchaseVo extends Purchase {
      * 采购明细列表
      */
     private List<PurchaseDetailVo> purchaseDetailVoList;
+
+    /**
+     * 申购编号
+     */
+    private String subscribeCode;
 }

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailSelectDto.java

@@ -48,4 +48,9 @@ public class SubscribeDetailSelectDto extends BaseSelectDto {
      */
     private Long deptId;
 
+    /**
+     * 不显示指定状态
+     */
+    private String neStatus;
+
 }

+ 19 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -30,6 +30,8 @@ import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseDocumentaryVo;
 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.purchase.PurchaseMapper;
 import com.fjhx.purchase.service.arrival.ArrivalDetailService;
 import com.fjhx.purchase.service.arrival.ArrivalService;
@@ -37,6 +39,8 @@ import com.fjhx.purchase.service.invoice.InvoiceDetailsService;
 import com.fjhx.purchase.service.pay.PayDetailService;
 import com.fjhx.purchase.service.purchase.PurchaseDetailService;
 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;
@@ -97,6 +101,10 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
 
     @Autowired
     ArrivalService arrivalService;
+    @Autowired
+    SubscribeDetailService subscribeDetailService;
+    @Autowired
+    SubscribeService subscribeService;
 
 
     @Autowired
@@ -241,6 +249,16 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
                 list(Wrappers.<PurchaseDetail>query().lambda().eq(PurchaseDetail::getPurchaseId, id));
         //查询出产品
         if (CollectionUtils.isNotEmpty(purchaseDetailList)) {
+            //赋值申购编号
+            PurchaseDetail purchaseDetail = purchaseDetailList.get(0);
+            SubscribeDetail subscribeDetail = subscribeDetailService.getById(purchaseDetail.getSubscribeDetailId());
+            if(ObjectUtils.isNotEmpty(subscribeDetail)) {
+                Subscribe subscribe = subscribeService.getById(subscribeDetail.getSubscribeId());
+                if(ObjectUtils.isNotEmpty(subscribe)) {
+                    result.setSubscribeCode(subscribe.getCode());
+                }
+            }
+
             List<Long> productIds = purchaseDetailList.stream().map(PurchaseDetail::getBussinessId).collect(Collectors.toList());
             List<ProductInfoVo> productInfos = productInfoService.getListByProductIds(productIds);
             Map<Long, List<ProductInfoVo>> productMap = productInfos.stream().distinct().collect(Collectors.groupingBy(ProductInfoVo::getId));
@@ -257,6 +275,7 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
                     p.setProductCategory(vo.getClassifyName());
                     p.setProductUnit(vo.getUnit());
                     p.setProductSpec(vo.getSpec());
+                    p.setProductCustomCode(vo.getCustomCode());
                 }
             }
         }

+ 5 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java

@@ -79,6 +79,10 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
         // 维多利亚扩展根据到货仓库id过滤
         wrapper.eq("json_unquote(t2.victoriatourist_json -> '$.receiptWarehouseId')", dto.getReceiptWarehouseId());
         wrapper.eq("json_unquote(pi.victoriatourist_json -> '$.deptId')", dto.getDeptId());
+        //待采购过滤掉指定状态 例如不要 99 作废
+        wrapper.notIn("t1", SubscribeDetail::getStatus, dto.getNeStatus().split(","));
+
+
         wrapper.orderByDesc("t1", SubscribeDetail::getCreateTime);
 
         Page<SubscribeDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
@@ -166,7 +170,7 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
             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 (SubscribeDetailVo  s: list) {
+            for (SubscribeDetailVo s : list) {
                 if (MapUtils.isNotEmpty(productMap)) {
                     ProductInfoVo p = productMap.get(s.getBussinessId()).get(0);
                     s.setProductCategory(p.getClassifyName());

+ 52 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/purchase/PurchaseBackController.java

@@ -0,0 +1,52 @@
+package com.fjhx.victoriatourist.controller.purchase;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.purchase.vo.PurchaseBackVo;
+import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackSelectDto;
+import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.purchase.PurchaseBackService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 采购退货 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@RestController
+@RequestMapping("/purchaseBack")
+public class PurchaseBackController {
+
+    @Autowired
+    private PurchaseBackService purchaseBackService;
+
+    /**
+     * 采购退货分页
+     */
+    @PostMapping("/page")
+    public Page<PurchaseBackVo> page(@RequestBody PurchaseBackSelectDto dto) {
+        return purchaseBackService.getPage(dto);
+    }
+
+    /**
+     * 采购退货明细
+     */
+    @PostMapping("/detail")
+    public PurchaseBackVo detail(@RequestBody BaseSelectDto dto) {
+        return purchaseBackService.detail(dto.getId());
+    }
+
+    /**
+     * 采购退货新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody PurchaseBackDto purchaseBackDto) {
+        purchaseBackService.add(purchaseBackDto);
+    }
+
+}

+ 19 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/purchase/PurchaseBackDetailsController.java

@@ -0,0 +1,19 @@
+package com.fjhx.victoriatourist.controller.purchase;
+
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * <p>
+ * 采购退货明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@RestController
+@RequestMapping("/purchaseBackDetails")
+public class PurchaseBackDetailsController {
+
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/dto/PurchaseBackDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.purchase.dto;
+
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采购退货明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@Getter
+@Setter
+public class PurchaseBackDetailsDto extends PurchaseBackDetails {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/dto/PurchaseBackDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.purchase.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采购退货明细列表查询入参实体
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@Getter
+@Setter
+public class PurchaseBackDetailsSelectDto extends BaseSelectDto {
+
+}

+ 25 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/dto/PurchaseBackDto.java

@@ -0,0 +1,25 @@
+package com.fjhx.victoriatourist.entity.purchase.dto;
+
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBack;
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 采购退货新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@Getter
+@Setter
+public class PurchaseBackDto extends PurchaseBack {
+
+    /**
+     * 退货明细
+     */
+    List<PurchaseBackDetails> purchaseBackDetailsList;
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/dto/PurchaseBackSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.purchase.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采购退货列表查询入参实体
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@Getter
+@Setter
+public class PurchaseBackSelectDto extends BaseSelectDto {
+
+}

+ 57 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/po/PurchaseBack.java

@@ -0,0 +1,57 @@
+package com.fjhx.victoriatourist.entity.purchase.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 采购退货
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@Getter
+@Setter
+@TableName("purchase_back")
+public class PurchaseBack extends BasePo {
+
+    /**
+     * 采购id
+     */
+    private Long purchaseId;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 国家id
+     */
+    private Long countryId;
+
+    /**
+     * 省id
+     */
+    private Long provinceId;
+
+    /**
+     * 市id
+     */
+    private Long cityId;
+
+    /**
+     * 详细信息
+     */
+    private String detailedAddress;
+
+}

+ 45 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/po/PurchaseBackDetails.java

@@ -0,0 +1,45 @@
+package com.fjhx.victoriatourist.entity.purchase.po;
+
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 采购退货明细
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@Getter
+@Setter
+@TableName("purchase_back_details")
+public class PurchaseBackDetails extends BasePo {
+
+    /**
+     * 采购退货id
+     */
+    private Long purchaseBackId;
+
+    /**
+     * 采购明细id
+     */
+    private Long purchaseDetailsId;
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 退货数量
+     */
+    private BigDecimal quantity;
+
+}

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

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.purchase.vo;
+
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采购退货明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@Getter
+@Setter
+public class PurchaseBackDetailsVo extends PurchaseBackDetails {
+
+}

+ 23 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/purchase/vo/PurchaseBackVo.java

@@ -0,0 +1,23 @@
+package com.fjhx.victoriatourist.entity.purchase.vo;
+
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBack;
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 采购退货列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@Getter
+@Setter
+public class PurchaseBackVo extends PurchaseBack {
+
+    List<PurchaseBackDetailsVo> purchaseBackDetailsList;
+
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/purchase/PurchaseBackDetailsMapper.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.mapper.purchase;
+
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * <p>
+ * 采购退货明细 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+public interface PurchaseBackDetailsMapper extends BaseMapper<PurchaseBackDetails> {
+
+}

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/purchase/PurchaseBackMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.victoriatourist.mapper.purchase;
+
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBack;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.purchase.vo.PurchaseBackVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 采购退货 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+public interface PurchaseBackMapper extends BaseMapper<PurchaseBack> {
+
+    /**
+     * 采购退货分页
+     */
+    Page<PurchaseBackVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<PurchaseBack> wrapper);
+
+}

+ 35 - 4
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/deliver/impl/DeliverGoodsServiceImpl.java

@@ -30,11 +30,15 @@ import com.fjhx.victoriatourist.entity.deliver.vo.DeliverGoodsDetailsVo;
 import com.fjhx.victoriatourist.entity.deliver.vo.DeliverGoodsVo;
 import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
 import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBack;
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
 import com.fjhx.victoriatourist.mapper.deliver.DeliverGoodsMapper;
 import com.fjhx.victoriatourist.service.deliver.DeliverGoodsDetailsService;
 import com.fjhx.victoriatourist.service.deliver.DeliverGoodsService;
 import com.fjhx.victoriatourist.service.logistics.LogisticsDetailsService;
 import com.fjhx.victoriatourist.service.logistics.LogisticsInfosService;
+import com.fjhx.victoriatourist.service.purchase.PurchaseBackDetailsService;
+import com.fjhx.victoriatourist.service.purchase.PurchaseBackService;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -75,6 +79,10 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
     private SupplierInfoService supplierInfoService;
     @Autowired
     private ArrivalDetailService arrivalDetailService;
+    @Autowired
+    private PurchaseBackDetailsService purchaseBackDetailsService;
+    @Autowired
+    private PurchaseBackService purchaseBackService;
 
     @Override
     public Page<DeliverGoodsVo> getPage(DeliverGoodsSelectDto dto) {
@@ -217,13 +225,15 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
             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)){
+                if (ObjectUtil.isEmpty(qualityDetails)) {
                     purchaseDetailVo.setQualifiedCount(BigDecimal.ZERO);
                     purchaseDetailVo.setNoQualifiedCount(BigDecimal.ZERO);
+                    purchaseDetailVo.setQualityQuantity(BigDecimal.ZERO);
                     continue;
                 }
                 purchaseDetailVo.setQualifiedCount(qualityDetails.getQualifiedCount());
                 purchaseDetailVo.setNoQualifiedCount(qualityDetails.getNoQualifiedCount());
+                purchaseDetailVo.setQualityQuantity(qualityDetails.getQualifiedCount().add(qualityDetails.getNoQualifiedCount()));
             }
         }
         //赋值发货信息
@@ -234,7 +244,7 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
             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)){
+                if (ObjectUtil.isEmpty(list1)) {
                     purchaseDetailVo.setDeliverGoodsQuantity(BigDecimal.ZERO);
                     continue;
                 }
@@ -243,7 +253,7 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
                         .map(DeliverGoodsDetailsVo::getDeliverGoodsQuantity)
                         .reduce(BigDecimal.ZERO, BigDecimal::add);
                 purchaseDetailVo.setDeliverGoodsQuantity(dgdCount);
-                purchaseDetailVo.setDeliverGoodsDetailList(Collections.singletonList(list1));
+                purchaseDetailVo.setDeliverGoodsDetailList(list1);
             }
         }
         //赋值到货信息
@@ -256,7 +266,7 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
             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)){
+                if (ObjectUtil.isEmpty(list1)) {
                     purchaseDetailVo.setArrivalQuantity(BigDecimal.ZERO);
                     continue;
                 }
@@ -274,6 +284,27 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
                 purchaseDetailVo.setArrivalDetailList(list1);
             }
         }
+        //赋值退货信息
+        List<PurchaseBack> list1 = purchaseBackService.list(q -> q.eq(PurchaseBack::getPurchaseId, purchaseId));
+        if (ObjectUtil.isNotEmpty(list1)) {
+            List<Long> ids = list1.stream().map(PurchaseBack::getId).collect(Collectors.toList());
+            Map<Long, List<PurchaseBackDetails>> longListMap = purchaseBackDetailsService.mapKGroup(PurchaseBackDetails::getPurchaseDetailsId, q -> q.in(PurchaseBackDetails::getPurchaseBackId, ids));
+
+            for (PurchaseDetailVo purchaseDetailVo : purchaseDetailVoList) {
+                List<PurchaseBackDetails> purchaseBackDetails = longListMap.get(purchaseDetailVo.getId());
+
+                if (ObjectUtil.isEmpty(purchaseBackDetails)) {
+                    purchaseDetailVo.setPurchaseBackQuantity(BigDecimal.ZERO);
+                    continue;
+                }
+                //退货数量求和
+                BigDecimal backCount = purchaseBackDetails.stream()
+                        .map(PurchaseBackDetails::getQuantity)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+                purchaseDetailVo.setPurchaseBackQuantity(backCount);
+                purchaseDetailVo.setPurchaseBackDetailsList(purchaseBackDetails);
+            }
+        }
         result.setPurchaseDetailVoList(purchaseDetailVoList);
         return result;
     }

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/PurchaseBackDetailsService.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.service.purchase;
+
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 采购退货明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+public interface PurchaseBackDetailsService extends BaseService<PurchaseBackDetails> {
+
+}

+ 36 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/PurchaseBackService.java

@@ -0,0 +1,36 @@
+package com.fjhx.victoriatourist.service.purchase;
+
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBack;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.purchase.vo.PurchaseBackVo;
+import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackSelectDto;
+import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackDto;
+
+
+/**
+ * <p>
+ * 采购退货 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+public interface PurchaseBackService extends BaseService<PurchaseBack> {
+
+    /**
+     * 采购退货分页
+     */
+    Page<PurchaseBackVo> getPage(PurchaseBackSelectDto dto);
+
+    /**
+     * 采购退货明细
+     */
+    PurchaseBackVo detail(Long id);
+
+    /**
+     * 采购退货新增
+     */
+    void add(PurchaseBackDto purchaseBackDto);
+
+}

+ 21 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/impl/PurchaseBackDetailsServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fjhx.victoriatourist.service.purchase.impl;
+
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
+import com.fjhx.victoriatourist.mapper.purchase.PurchaseBackDetailsMapper;
+import com.fjhx.victoriatourist.service.purchase.PurchaseBackDetailsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 采购退货明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-19
+ */
+@Service
+public class PurchaseBackDetailsServiceImpl extends ServiceImpl<PurchaseBackDetailsMapper, PurchaseBackDetails> implements PurchaseBackDetailsService {
+
+}

+ 63 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/impl/PurchaseBackServiceImpl.java

@@ -0,0 +1,63 @@
+package com.fjhx.victoriatourist.service.purchase.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackDto;
+import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackSelectDto;
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBack;
+import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
+import com.fjhx.victoriatourist.entity.purchase.vo.PurchaseBackDetailsVo;
+import com.fjhx.victoriatourist.entity.purchase.vo.PurchaseBackVo;
+import com.fjhx.victoriatourist.mapper.purchase.PurchaseBackMapper;
+import com.fjhx.victoriatourist.service.purchase.PurchaseBackDetailsService;
+import com.fjhx.victoriatourist.service.purchase.PurchaseBackService;
+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.util.List;
+
+
+/**
+ * <p>
+ * 采购退货 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-05-19
+ */
+@Service
+public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, PurchaseBack> implements PurchaseBackService {
+    @Autowired
+    PurchaseBackDetailsService purchaseBackDetailsService;
+
+    @Override
+    public Page<PurchaseBackVo> getPage(PurchaseBackSelectDto dto) {
+        IWrapper<PurchaseBack> wrapper = getWrapper();
+        wrapper.orderByDesc("pb", PurchaseBack::getId);
+        Page<PurchaseBackVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public PurchaseBackVo detail(Long id) {
+        PurchaseBack PurchaseBack = this.getById(id);
+        PurchaseBackVo result = BeanUtil.toBean(PurchaseBack, PurchaseBackVo.class);
+        List<PurchaseBackDetails> purchaseBackDetails = purchaseBackDetailsService.list(q -> q.eq(PurchaseBackDetails::getPurchaseBackId, result.getId()));
+        List<PurchaseBackDetailsVo> purchaseBackDetailsVos = BeanUtil.copyToList(purchaseBackDetails, PurchaseBackDetailsVo.class);
+        result.setPurchaseBackDetailsList(purchaseBackDetailsVos);
+        return result;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(PurchaseBackDto purchaseBackDto) {
+        this.save(purchaseBackDto);
+        List<PurchaseBackDetails> purchaseBackDetailsList = purchaseBackDto.getPurchaseBackDetailsList();
+        purchaseBackDetailsList.forEach(purchaseBackDetails -> purchaseBackDetails.setPurchaseBackId(purchaseBackDto.getId()));
+        purchaseBackDetailsService.saveBatch(purchaseBackDetailsList);
+    }
+
+}

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

@@ -37,7 +37,7 @@
                 JOIN bytesailing_victoriatourist.quality_details qd ON qd.arrival_stock_records_details_id = asrd.id
         WHERE
             sw.business_id = #{id}
-        ORDER BY
+        GROUP BY
             qd.product_info_id
     </select>
 

+ 4 - 0
hx-victoriatourist/src/main/resources/mapper/purchase/PurchaseBackDetailsMapper.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.victoriatourist.mapper.purchase.PurchaseBackDetailsMapper">
+</mapper>

+ 22 - 0
hx-victoriatourist/src/main/resources/mapper/purchase/PurchaseBackMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.victoriatourist.mapper.purchase.PurchaseBackMapper">
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.purchase.vo.PurchaseBackVo">
+        select
+            pb.id,
+            pb.purchase_id,
+            pb.contacts,
+            pb.phone,
+            pb.countryId,
+            pb.provinceId,
+            pb.cityId,
+            pb.detailedAddress,
+            pb.create_user,
+            pb.create_time,
+            pb.update_user,
+            pb.update_time
+        from purchase_back pb
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>