caozj 2 tahun lalu
induk
melakukan
1435249940

+ 11 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/sales/SalesReturnController.java

@@ -2,6 +2,7 @@ package com.fjhx.purchase.controller.sales;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.purchase.entity.sales.po.SalesReturn;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.purchase.entity.sales.vo.SalesReturnVo;
@@ -11,6 +12,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.fjhx.purchase.service.sales.SalesReturnService;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -68,4 +71,12 @@ public class SalesReturnController {
         salesReturnService.delete(dto.getId());
     }
 
+    /**
+     * 根据供应商查询退货列表
+     */
+    @GetMapping("/getBySupplyId")
+    public List<SalesReturn> getBySupplyId(@RequestParam("supplyId") String supplyId) {
+        return salesReturnService.getListBySupplyId(supplyId);
+    }
+
 }

+ 9 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/dto/RefundSelectDto.java

@@ -14,4 +14,13 @@ import lombok.Setter;
 @Setter
 public class RefundSelectDto extends BaseSelectDto {
 
+    /**
+     * 审批状态
+     */
+    private String status;
+
+    /**
+     * 退款状态
+     */
+    private String refundStatus;
 }

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/po/Refund.java

@@ -39,6 +39,11 @@ public class Refund extends BasePo {
     private String refundName;
 
     /**
+     * 退款状态
+     */
+    private Integer refundStatus;
+
+    /**
      * 申请时间
      */
     private Date refundTime;

+ 11 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/vo/RefundVo.java

@@ -4,6 +4,8 @@ import com.fjhx.purchase.entity.refund.po.Refund;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 退款管理列表查询返回值实体
  *
@@ -14,4 +16,13 @@ import lombok.Setter;
 @Setter
 public class RefundVo extends Refund {
 
+    /**
+     * 供应商名称
+     */
+    private String supplyName;
+
+    /**
+     * 已退款金额
+     */
+    private BigDecimal sumRefundMoney;
 }

+ 1 - 1
hx-purchase/src/main/java/com/fjhx/purchase/flow/SalesReturnFlow.java

@@ -44,7 +44,7 @@ public class SalesReturnFlow extends FlowDelegate {
      * 发起流程
      *
      * @param flowId     流程ID
-     * @param submitData 申购数据
+     * @param submitData 数据
      * @return
      */
     @Override

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

@@ -1,6 +1,9 @@
 package com.fjhx.purchase.service.arrival.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;

+ 4 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/refund/RefundService.java

@@ -1,12 +1,15 @@
 package com.fjhx.purchase.service.refund;
 
 import com.fjhx.purchase.entity.refund.po.Refund;
+import com.fjhx.purchase.entity.sales.po.SalesReturn;
 import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.purchase.entity.refund.vo.RefundVo;
 import com.fjhx.purchase.entity.refund.dto.RefundSelectDto;
 import com.fjhx.purchase.entity.refund.dto.RefundDto;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -43,4 +46,5 @@ public interface RefundService extends BaseService<Refund> {
      */
     void delete(Long id);
 
+
 }

+ 58 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/refund/impl/RefundServiceImpl.java

@@ -1,9 +1,22 @@
 package com.fjhx.purchase.service.refund.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.account.entity.account.enums.PaymentStatusEnum;
+import com.fjhx.account.entity.account.po.AccountPayment;
+import com.fjhx.account.service.account.AccountPaymentService;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
 import com.fjhx.purchase.entity.refund.po.Refund;
 import com.fjhx.purchase.mapper.refund.RefundMapper;
 import com.fjhx.purchase.service.refund.RefundService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.wrapper.SqlField;
+import org.apache.commons.collections4.MapUtils;
+import org.checkerframework.checker.units.qual.A;
+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.refund.vo.RefundVo;
@@ -12,6 +25,11 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.fjhx.purchase.entity.refund.dto.RefundDto;
 import cn.hutool.core.bean.BeanUtil;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 
 /**
  * <p>
@@ -24,11 +42,50 @@ import cn.hutool.core.bean.BeanUtil;
 @Service
 public class RefundServiceImpl extends ServiceImpl<RefundMapper, Refund> implements RefundService {
 
+    @Autowired
+    private SupplierInfoService supplierInfoService;
+
+    @Autowired
+    private AccountPaymentService accountPaymentService;
+
+
     @Override
     public Page<RefundVo> getPage(RefundSelectDto dto) {
         IWrapper<Refund> wrapper = getWrapper();
-        wrapper.orderByDesc("r", Refund::getId);
+        wrapper.orderByDesc("r", Refund::getCreateTime);
+        if(StringUtils.isNotEmpty(dto.getStatus())){
+            wrapper.eq("p",Refund::getStatus,dto.getStatus());
+        }
+        if(StringUtils.isNotEmpty(dto.getRefundStatus())){
+            wrapper.eq("p",Refund::getRefundStatus,dto.getRefundStatus());
+        }
+        if(StringUtils.isNotEmpty(dto.getKeyword())){
+            wrapper.keyword(dto.getKeyword(),new SqlField(Refund::getRefundName));
+        }
         Page<RefundVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<RefundVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            //查询供应商
+            List<Long> supplyIds = list.stream().map(RefundVo::getSupplyId).collect(Collectors.toList());
+            List<SupplierInfo> supplierInfoList = supplierInfoService.list(Wrappers.<SupplierInfo>query().lambda().in(SupplierInfo::getId,supplyIds));
+            Map<Long,List<SupplierInfo>> supplyMap = supplierInfoList.stream().distinct().collect(Collectors.groupingBy(SupplierInfo::getId));
+            //查询应退款金额
+            List<Long> ids = list.stream().map(RefundVo::getId).collect(Collectors.toList());
+            List<AccountPayment> accountPaymentList = accountPaymentService.list(Wrappers.<AccountPayment>query().lambda().in(AccountPayment::getBusinessId,ids)
+                    .eq(AccountPayment::getStatus, PaymentStatusEnum.REJECT.getKey()));
+            Map<Long,List<AccountPayment>> accMap = accountPaymentList.stream().collect(Collectors.groupingBy(AccountPayment::getBusinessId));
+            for(RefundVo p:list){
+                if(MapUtils.isNotEmpty(supplyMap)){//赋值供应商
+                    List<SupplierInfo> supplys = supplyMap.getOrDefault(p.getSupplyId(),null);
+                    p.setSupplyName(supplys==null?null:supplys.get(0).getName());
+                }
+                if(MapUtils.isNotEmpty(accMap)){//赋值已退款总金额
+                    List<AccountPayment> sumList = accMap.getOrDefault(p.getId(),null);
+                    BigDecimal sum = sumList.stream().map(AccountPayment::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
+                    p.setSumRefundMoney(sum==null?BigDecimal.ZERO:sum);
+                }
+            }
+        }
         return page;
     }
 

+ 9 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/sales/SalesReturnService.java

@@ -7,6 +7,8 @@ import com.fjhx.purchase.entity.sales.vo.SalesReturnVo;
 import com.fjhx.purchase.entity.sales.dto.SalesReturnSelectDto;
 import com.fjhx.purchase.entity.sales.dto.SalesReturnDto;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -43,4 +45,11 @@ public interface SalesReturnService extends BaseService<SalesReturn> {
      */
     void delete(Long id);
 
+
+    /**
+     * 根据供应商查询退货列表
+     * @param supplyId
+     * @return
+     */
+    List<SalesReturn> getListBySupplyId(String supplyId);
 }

+ 13 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/sales/impl/SalesReturnServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fjhx.purchase.service.sales.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.purchase.entity.sales.po.SalesReturn;
 import com.fjhx.purchase.mapper.sales.SalesReturnMapper;
@@ -14,6 +15,8 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.fjhx.purchase.entity.sales.dto.SalesReturnDto;
 import cn.hutool.core.bean.BeanUtil;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -57,4 +60,14 @@ public class SalesReturnServiceImpl extends ServiceImpl<SalesReturnMapper, Sales
         this.removeById(id);
     }
 
+    /**
+     * 根据供应商查询退货列表
+     * @param supplyId
+     * @return
+     */
+    @Override
+    public List<SalesReturn> getListBySupplyId(String supplyId) {
+        return this.list(Wrappers.<SalesReturn>query().lambda().eq(SalesReturn::getSupplyId,supplyId));
+    }
+
 }