caozj 2 년 전
부모
커밋
85d209405e
33개의 변경된 파일975개의 추가작업 그리고 13개의 파일을 삭제
  1. 2 0
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountDeptRunningWaterDetailServiceImpl.java
  2. 68 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/refund/RefundController.java
  3. 68 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/refund/RefundDetailController.java
  4. 9 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PaySelectDto.java
  5. 30 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/po/Pay.java
  6. 6 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/vo/PayDetailVo.java
  7. 6 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/vo/PayVo.java
  8. 6 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/Purchase.java
  9. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/dto/RefundDetailDto.java
  10. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/dto/RefundDetailSelectDto.java
  11. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/dto/RefundDto.java
  12. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/dto/RefundSelectDto.java
  13. 52 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/enums/RefundStatusEnum.java
  14. 76 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/po/Refund.java
  15. 42 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/po/RefundDetail.java
  16. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/vo/RefundDetailVo.java
  17. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/vo/RefundVo.java
  18. 87 0
      hx-purchase/src/main/java/com/fjhx/purchase/flow/RefundFlow.java
  19. 9 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/pay/PayDetailMapper.java
  20. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/refund/RefundDetailMapper.java
  21. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/refund/RefundMapper.java
  22. 9 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/pay/PayDetailService.java
  23. 14 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayDetailServiceImpl.java
  24. 59 1
      hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayServiceImpl.java
  25. 13 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java
  26. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/refund/RefundDetailService.java
  27. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/refund/RefundService.java
  28. 57 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/refund/impl/RefundDetailServiceImpl.java
  29. 57 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/refund/impl/RefundServiceImpl.java
  30. 16 0
      hx-purchase/src/main/resources/mapper/pay/PayDetailMapper.xml
  31. 1 12
      hx-purchase/src/main/resources/mapper/pay/PayMapper.xml
  32. 18 0
      hx-purchase/src/main/resources/mapper/refund/RefundDetailMapper.xml
  33. 24 0
      hx-purchase/src/main/resources/mapper/refund/RefundMapper.xml

+ 2 - 0
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountDeptRunningWaterDetailServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fjhx.account.service.account.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.account.entity.account.po.AccountDeptRunningWater;
 import com.fjhx.account.entity.account.po.AccountDeptRunningWaterDetail;
@@ -8,6 +9,7 @@ import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.account.mapper.account.AccountDeptRunningWaterDetailMapper;
 import com.fjhx.account.service.account.AccountDeptRunningWaterDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.account.service.account.AccountDeptRunningWaterService;
 import com.fjhx.account.service.account.AccountRunningWaterService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 68 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/refund/RefundController.java

@@ -0,0 +1,68 @@
+package com.fjhx.purchase.controller.refund;
+
+import org.springframework.web.bind.annotation.*;
+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 com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.refund.RefundService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 退款管理 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@RestController
+@RequestMapping("/refund")
+public class RefundController {
+
+    @Autowired
+    private RefundService refundService;
+
+    /**
+     * 退款管理分页
+     */
+    @PostMapping("/page")
+    public Page<RefundVo> page(@RequestBody RefundSelectDto dto) {
+        return refundService.getPage(dto);
+    }
+
+    /**
+     * 退款管理明细
+     */
+    @PostMapping("/detail")
+    public RefundVo detail(@RequestBody BaseSelectDto dto) {
+        return refundService.detail(dto.getId());
+    }
+
+    /**
+     * 退款管理新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody RefundDto refundDto) {
+        refundService.add(refundDto);
+    }
+
+    /**
+     * 退款管理编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody RefundDto refundDto) {
+        refundService.edit(refundDto);
+    }
+
+    /**
+     * 退款管理删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        refundService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/refund/RefundDetailController.java

@@ -0,0 +1,68 @@
+package com.fjhx.purchase.controller.refund;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.refund.vo.RefundDetailVo;
+import com.fjhx.purchase.entity.refund.dto.RefundDetailSelectDto;
+import com.fjhx.purchase.entity.refund.dto.RefundDetailDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.refund.RefundDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 退款明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@RestController
+@RequestMapping("/refundDetail")
+public class RefundDetailController {
+
+    @Autowired
+    private RefundDetailService refundDetailService;
+
+    /**
+     * 退款明细分页
+     */
+    @PostMapping("/page")
+    public Page<RefundDetailVo> page(@RequestBody RefundDetailSelectDto dto) {
+        return refundDetailService.getPage(dto);
+    }
+
+    /**
+     * 退款明细明细
+     */
+    @PostMapping("/detail")
+    public RefundDetailVo detail(@RequestBody BaseSelectDto dto) {
+        return refundDetailService.detail(dto.getId());
+    }
+
+    /**
+     * 退款明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody RefundDetailDto refundDetailDto) {
+        refundDetailService.add(refundDetailDto);
+    }
+
+    /**
+     * 退款明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody RefundDetailDto refundDetailDto) {
+        refundDetailService.edit(refundDetailDto);
+    }
+
+    /**
+     * 退款明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        refundDetailService.delete(dto.getId());
+    }
+
+}

+ 9 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PaySelectDto.java

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

+ 30 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/po/Pay.java

@@ -83,6 +83,36 @@ public class Pay extends BasePo {
      * 付款账户ID
      */
     private Long accountManagementId;
+
+    /**
+     * 申请人
+     */
+    private String userName;
+
+    /**
+     * 户名
+     */
+    private String name;
+
+    /**
+     * 开户银行
+     */
+    private String openingBank;
+
+    /**
+     * 联行号
+     */
+    private String interbankNumber;
+
+    /**
+     * 银行账号
+     */
+    private String accountOpening;
+
+    /**
+     * 付款状态
+     */
+    private String payStatus;
     /**
      * 付款明细
      */

+ 6 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/vo/PayDetailVo.java

@@ -4,6 +4,8 @@ import com.fjhx.purchase.entity.pay.po.PayDetail;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 采购付款明细列表查询返回值实体
  *
@@ -14,4 +16,8 @@ import lombok.Setter;
 @Setter
 public class PayDetailVo extends PayDetail {
 
+    /**
+     * 已付款金额
+     */
+    private BigDecimal sumMoney;
 }

+ 6 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/vo/PayVo.java

@@ -14,4 +14,10 @@ import lombok.Setter;
 @Setter
 public class PayVo extends Pay {
 
+    private String supplyName;
+
+    /**
+     * 打款状态
+     */
+    private String paymentStatus;
 }

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

@@ -96,6 +96,12 @@ public class Purchase extends BasePo {
     private BigDecimal sumInvoiceMoney;
 
     /**
+     * 付款总金额
+     */
+    @TableField(exist = false)
+    private BigDecimal sumPayMoney;
+
+    /**
      * 维多利亚扩展json
      */
     private String victoriatouristJson;

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/dto/RefundDetailDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.refund.dto;
+
+import com.fjhx.purchase.entity.refund.po.RefundDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退款明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class RefundDetailDto extends RefundDetail {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/dto/RefundDetailSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.refund.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退款明细列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class RefundDetailSelectDto extends BaseSelectDto {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/dto/RefundDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.refund.dto;
+
+import com.fjhx.purchase.entity.refund.po.Refund;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退款管理新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class RefundDto extends Refund {
+
+}

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

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.refund.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退款管理列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class RefundSelectDto extends BaseSelectDto {
+
+}

+ 52 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/enums/RefundStatusEnum.java

@@ -0,0 +1,52 @@
+package com.fjhx.purchase.entity.refund.enums;
+
+import org.apache.commons.collections4.MapUtils;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 退款状态枚举
+ */
+public enum RefundStatusEnum {
+    DRAFT(0, "草稿"),
+    UNDER_REVIEW(10, "审批中"),
+    REJECT(20, "驳回"),
+    PASS(30,"已采购"),
+    TERMINATION(99,"终止"),
+    ;
+    private int key;
+
+    private String value;
+
+    private static Map<Integer, String> map = new LinkedHashMap<>();
+
+    RefundStatusEnum(int key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    /**
+     * 获取枚举map
+     *
+     * @return
+     */
+    public static Map<Integer, String> getMap() {
+        if (MapUtils.isNotEmpty(map)) {
+            return map;
+        }
+        for (RefundStatusEnum ms : values()) {
+            map.put(ms.key, ms.value);
+        }
+        return map;
+    }
+
+    public int getKey() {
+        return key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+}

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

@@ -0,0 +1,76 @@
+package com.fjhx.purchase.entity.refund.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 退款管理
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+@TableName("refund")
+public class Refund extends BasePo {
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 申请人
+     */
+    private String refundName;
+
+    /**
+     * 申请时间
+     */
+    private Date refundTime;
+
+    /**
+     * 应退款金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 退款审批状态 0草稿 10、审批中;20、驳回  30、审批通过  99终止
+     */
+    private Integer status;
+
+    /**
+     * 退款原因
+     */
+    private String remark;
+
+    /**
+     * 流程key
+     */
+    private String processInstanceId;
+
+    /**
+     * 审核通过时间
+     */
+    private Date approvedDate;
+
+    /**
+     * 退款明细
+     */
+    @TableField(exist = false)
+    private List<RefundDetail> refundDetailList;
+}

+ 42 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/refund/po/RefundDetail.java

@@ -0,0 +1,42 @@
+package com.fjhx.purchase.entity.refund.po;
+
+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-04-13
+ */
+@Getter
+@Setter
+@TableName("refund_detail")
+public class RefundDetail extends BasePo {
+
+    /**
+     * 退款单ID
+     */
+    private Long refundId;
+    /**
+     * 退货单id
+     */
+    private Long salesReturnId;
+
+    /**
+     * 退款金额
+     */
+    private BigDecimal money;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

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

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.refund.vo;
+
+import com.fjhx.purchase.entity.refund.po.RefundDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退款明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class RefundDetailVo extends RefundDetail {
+
+}

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

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.refund.vo;
+
+import com.fjhx.purchase.entity.refund.po.Refund;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退款管理列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class RefundVo extends Refund {
+
+}

+ 87 - 0
hx-purchase/src/main/java/com/fjhx/purchase/flow/RefundFlow.java

@@ -0,0 +1,87 @@
+package com.fjhx.purchase.flow;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.fjhx.account.entity.account.enums.PaymentStatusEnum;
+import com.fjhx.account.entity.account.enums.PaymentTypeEnum;
+import com.fjhx.account.entity.account.po.AccountPayment;
+import com.fjhx.account.service.account.AccountPaymentService;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.purchase.entity.pay.enums.PayStatusEnum;
+import com.fjhx.purchase.entity.pay.po.Pay;
+import com.fjhx.purchase.entity.pay.po.PayDetail;
+import com.fjhx.purchase.entity.refund.po.Refund;
+import com.fjhx.purchase.entity.refund.po.RefundDetail;
+import com.fjhx.purchase.service.pay.PayDetailService;
+import com.fjhx.purchase.service.pay.PayService;
+import com.fjhx.purchase.service.refund.RefundDetailService;
+import com.fjhx.purchase.service.refund.RefundService;
+import com.obs.services.internal.ServiceException;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 采购付款流程
+ * @Author:caozj
+ * @DATE:2023/4/3 17:38
+ */
+@DS(SourceConstant.PURCHASE)
+@Component
+public class RefundFlow extends FlowDelegate {
+
+    @Override
+    public String getFlowKey() {
+        return "refund_flow";
+    }
+
+
+    /**
+     * 发起流程
+     * @param flowId 流程ID
+     * @param submitData 数据
+     * @return
+     */
+    @Override
+    public Long start(Long flowId, JSONObject submitData) {
+        RefundService refundService = SpringUtil.getBean(RefundService.class);
+        RefundDetailService refundDetailService = SpringUtil.getBean(RefundDetailService.class);
+        Refund refund = submitData.toJavaObject(Refund.class);
+        refund.setStatus(PayStatusEnum.UNDER_REVIEW.getKey());
+        refundService.save(refund);
+        List<RefundDetail> refundDetailList = refund.getRefundDetailList();
+        if(CollectionUtils.isNotEmpty(refundDetailList)){
+            for(RefundDetail s : refundDetailList){
+                s.setRefundId(refund.getId());
+            }
+            refundDetailService.saveBatch(refundDetailList);
+        }
+        return refund.getId();
+    }
+
+    /**
+     * 结束流程
+     * @param flowId 流程ID
+     * @param businessId 业务ID
+     * @param submitData 数据
+     */
+    @Override
+    public void end(Long flowId, Long businessId, JSONObject submitData) {
+        RefundService refundService = SpringUtil.getBean(RefundService.class);
+        //通过业务ID查询申购数据
+        Refund refund = refundService.getById(businessId);
+        if(ObjectUtils.isEmpty(refund)){
+            throw new ServiceException("退款单不存在");
+        }
+        //修改采购状态为审批通过
+        refund.setStatus(PayStatusEnum.PASS.getKey());
+        refund.setApprovedDate(new Date());
+        refundService.updateById(refund);
+    }
+}

+ 9 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/pay/PayDetailMapper.java

@@ -1,5 +1,6 @@
 package com.fjhx.purchase.mapper.pay;
 
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
 import com.fjhx.purchase.entity.pay.po.PayDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -7,6 +8,8 @@ import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -23,4 +26,10 @@ public interface PayDetailMapper extends BaseMapper<PayDetail> {
      */
     Page<PayDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<PayDetail> wrapper);
 
+    /**
+     * 根据采购单ids查询已付款总额
+     * @param purchaseIds
+     * @return
+     */
+    List<PayDetailVo> getSumMoneyByPurchaseIds(@Param("purchaseIds") List<Long> purchaseIds);
 }

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/refund/RefundDetailMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.refund;
+
+import com.fjhx.purchase.entity.refund.po.RefundDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.refund.vo.RefundDetailVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 退款明细 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface RefundDetailMapper extends BaseMapper<RefundDetail> {
+
+    /**
+     * 退款明细分页
+     */
+    Page<RefundDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<RefundDetail> wrapper);
+
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/refund/RefundMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.refund;
+
+import com.fjhx.purchase.entity.refund.po.Refund;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.refund.vo.RefundVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 退款管理 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface RefundMapper extends BaseMapper<Refund> {
+
+    /**
+     * 退款管理分页
+     */
+    Page<RefundVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Refund> wrapper);
+
+}

+ 9 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/PayDetailService.java

@@ -1,5 +1,6 @@
 package com.fjhx.purchase.service.pay;
 
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
 import com.fjhx.purchase.entity.pay.po.PayDetail;
 import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -7,6 +8,8 @@ import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
 import com.fjhx.purchase.entity.pay.dto.PayDetailSelectDto;
 import com.fjhx.purchase.entity.pay.dto.PayDetailDto;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -43,4 +46,10 @@ public interface PayDetailService extends BaseService<PayDetail> {
      */
     void delete(Long id);
 
+    /**
+     * 根据采购单ids查询已付款金额
+     * @param purchaseIds
+     * @return
+     */
+    List<PayDetailVo> getSumMoneyByPurchaseIds(List<Long> purchaseIds);
 }

+ 14 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayDetailServiceImpl.java

@@ -1,5 +1,7 @@
 package com.fjhx.purchase.service.pay.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.purchase.entity.pay.po.PayDetail;
 import com.fjhx.purchase.mapper.pay.PayDetailMapper;
 import com.fjhx.purchase.service.pay.PayDetailService;
@@ -12,6 +14,8 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.fjhx.purchase.entity.pay.dto.PayDetailDto;
 import cn.hutool.core.bean.BeanUtil;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -54,4 +58,14 @@ public class PayDetailServiceImpl extends ServiceImpl<PayDetailMapper, PayDetail
         this.removeById(id);
     }
 
+    /**
+     * 付款
+     * @param purchaseIds
+     * @return
+     */
+    @Override
+    public List<PayDetailVo> getSumMoneyByPurchaseIds(List<Long> purchaseIds) {
+        return baseMapper.getSumMoneyByPurchaseIds(purchaseIds);
+    }
+
 }

+ 59 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayServiceImpl.java

@@ -1,9 +1,22 @@
 package com.fjhx.purchase.service.pay.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.account.entity.account.po.AccountPayment;
+import com.fjhx.account.service.account.AccountPaymentService;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.purchase.entity.pay.po.Pay;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
 import com.fjhx.purchase.mapper.pay.PayMapper;
 import com.fjhx.purchase.service.pay.PayService;
 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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.purchase.entity.pay.vo.PayVo;
@@ -12,6 +25,10 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.fjhx.purchase.entity.pay.dto.PayDto;
 import cn.hutool.core.bean.BeanUtil;
 
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 
 /**
  * <p>
@@ -24,11 +41,52 @@ import cn.hutool.core.bean.BeanUtil;
 @Service
 public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PayService {
 
+    @Autowired
+    private SupplierInfoService supplierInfoService;
+
+    @Autowired
+    private AccountPaymentService accountPaymentService;
+
+    /**
+     * 分页
+     * @param dto
+     * @return
+     */
     @Override
     public Page<PayVo> getPage(PaySelectDto dto) {
         IWrapper<Pay> wrapper = getWrapper();
-        wrapper.orderByDesc("p", Pay::getId);
+        wrapper.orderByDesc("p", Pay::getCreateTime);
+        if(StringUtils.isNotEmpty(dto.getStatus())){
+            wrapper.eq("p",Pay::getStatus,dto.getStatus());
+        }
+        if(StringUtils.isNotEmpty(dto.getPayStatus())){
+            wrapper.eq("p",Pay::getPayStatus,dto.getPayStatus());
+        }
+        if(StringUtils.isNotEmpty(dto.getKeyword())){
+            wrapper.keyword(dto.getKeyword(),new SqlField(Pay::getUserName),new SqlField(Pay::getRemark));
+        }
         Page<PayVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<PayVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            //查询供应商
+            List<Long> supplyIds = list.stream().map(PayVo::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(PayVo::getId).collect(Collectors.toList());
+            List<AccountPayment> accountPaymentList = accountPaymentService.list(Wrappers.<AccountPayment>query().lambda().in(AccountPayment::getBusinessId,ids));
+            Map<Long,List<AccountPayment>> accountPaymentMap = accountPaymentList.stream().distinct().collect(Collectors.groupingBy(AccountPayment::getBusinessId));
+            for(PayVo 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(accountPaymentMap)){
+                    List<AccountPayment> accountPayments = accountPaymentMap.getOrDefault(p.getId(),null);
+                    p.setPaymentStatus(accountPayments==null?null:accountPayments.get(0).getStatus());
+                }
+            }
+        }
         return page;
     }
 

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

@@ -12,12 +12,14 @@ import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.invoice.po.Invoice;
 import com.fjhx.purchase.entity.invoice.po.InvoiceDetails;
 import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
+import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.mapper.purchase.PurchaseMapper;
 import com.fjhx.purchase.service.arrival.ArrivalDetailService;
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -62,6 +64,9 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     private InvoiceDetailsService invoiceDetailsService;
 
     @Autowired
+    private PayDetailService payDetailService;
+
+    @Autowired
     private PurchaseDetailService purchaseDetailService;
 
     @Autowired
@@ -189,13 +194,21 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
         List<Long> ids = list.stream().distinct().map(Purchase::getId).collect(Collectors.toList());
         List<InvoiceDetailsVo> invoiceDetailsList = invoiceDetailsService.getSumMoneyByPurchaseIds(ids);
         Map<Long,BigDecimal> invoiceMap = invoiceDetailsList.stream().collect(Collectors.toMap(InvoiceDetailsVo::getPurchaseId,InvoiceDetailsVo::getSumMoney));
+        List<PayDetailVo> payDetailVoList = payDetailService.getSumMoneyByPurchaseIds(ids);
+        Map<Long,BigDecimal> payMap = payDetailVoList.stream().collect(Collectors.toMap(PayDetailVo::getPurchaseId,PayDetailVo::getSumMoney));
         for(Purchase p:list){
             if(MapUtils.isNotEmpty(invoiceMap)){
                 p.setSumInvoiceMoney(invoiceMap.getOrDefault(p.getId(),null));
             }else{
                 p.setSumInvoiceMoney(BigDecimal.ZERO);
             }
+            if(MapUtils.isNotEmpty(payMap)){
+                p.setSumPayMoney(payMap.getOrDefault(p.getId(),null));
+            }else{
+                p.setSumPayMoney(BigDecimal.ZERO);
+            }
         }
+
         return list;
     }
 

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/refund/RefundDetailService.java

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.refund;
+
+import com.fjhx.purchase.entity.refund.po.RefundDetail;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.refund.vo.RefundDetailVo;
+import com.fjhx.purchase.entity.refund.dto.RefundDetailSelectDto;
+import com.fjhx.purchase.entity.refund.dto.RefundDetailDto;
+
+
+/**
+ * <p>
+ * 退款明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface RefundDetailService extends BaseService<RefundDetail> {
+
+    /**
+     * 退款明细分页
+     */
+    Page<RefundDetailVo> getPage(RefundDetailSelectDto dto);
+
+    /**
+     * 退款明细明细
+     */
+    RefundDetailVo detail(Long id);
+
+    /**
+     * 退款明细新增
+     */
+    void add(RefundDetailDto refundDetailDto);
+
+    /**
+     * 退款明细编辑
+     */
+    void edit(RefundDetailDto refundDetailDto);
+
+    /**
+     * 退款明细删除
+     */
+    void delete(Long id);
+
+}

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

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.refund;
+
+import com.fjhx.purchase.entity.refund.po.Refund;
+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;
+
+
+/**
+ * <p>
+ * 退款管理 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface RefundService extends BaseService<Refund> {
+
+    /**
+     * 退款管理分页
+     */
+    Page<RefundVo> getPage(RefundSelectDto dto);
+
+    /**
+     * 退款管理明细
+     */
+    RefundVo detail(Long id);
+
+    /**
+     * 退款管理新增
+     */
+    void add(RefundDto refundDto);
+
+    /**
+     * 退款管理编辑
+     */
+    void edit(RefundDto refundDto);
+
+    /**
+     * 退款管理删除
+     */
+    void delete(Long id);
+
+}

+ 57 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/refund/impl/RefundDetailServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.purchase.service.refund.impl;
+
+import com.fjhx.purchase.entity.refund.po.RefundDetail;
+import com.fjhx.purchase.mapper.refund.RefundDetailMapper;
+import com.fjhx.purchase.service.refund.RefundDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.refund.vo.RefundDetailVo;
+import com.fjhx.purchase.entity.refund.dto.RefundDetailSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.refund.dto.RefundDetailDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 退款明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Service
+public class RefundDetailServiceImpl extends ServiceImpl<RefundDetailMapper, RefundDetail> implements RefundDetailService {
+
+    @Override
+    public Page<RefundDetailVo> getPage(RefundDetailSelectDto dto) {
+        IWrapper<RefundDetail> wrapper = getWrapper();
+        wrapper.orderByDesc("rd", RefundDetail::getId);
+        Page<RefundDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public RefundDetailVo detail(Long id) {
+        RefundDetail RefundDetail = this.getById(id);
+        RefundDetailVo result = BeanUtil.toBean(RefundDetail, RefundDetailVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(RefundDetailDto refundDetailDto) {
+        this.save(refundDetailDto);
+    }
+
+    @Override
+    public void edit(RefundDetailDto refundDetailDto) {
+        this.updateById(refundDetailDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 57 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/refund/impl/RefundServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.purchase.service.refund.impl;
+
+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 org.springframework.stereotype.Service;
+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.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.refund.dto.RefundDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 退款管理 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Service
+public class RefundServiceImpl extends ServiceImpl<RefundMapper, Refund> implements RefundService {
+
+    @Override
+    public Page<RefundVo> getPage(RefundSelectDto dto) {
+        IWrapper<Refund> wrapper = getWrapper();
+        wrapper.orderByDesc("r", Refund::getId);
+        Page<RefundVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public RefundVo detail(Long id) {
+        Refund Refund = this.getById(id);
+        RefundVo result = BeanUtil.toBean(Refund, RefundVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(RefundDto refundDto) {
+        this.save(refundDto);
+    }
+
+    @Override
+    public void edit(RefundDto refundDto) {
+        this.updateById(refundDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

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

@@ -15,4 +15,20 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="getSumMoneyByPurchaseIds" resultType="com.fjhx.purchase.entity.pay.vo.PayDetailVo">
+        SELECT
+            purchase_id,
+            IFNULL( SUM( money ), 0 ) AS sumMoney
+        FROM
+            pay_detail
+        <where>
+            <if test="purchaseIds neq null and purchaseIds.size() > 0">
+                <foreach collection="purchaseIds" item="purchaseId" open="purchase_id IN (" separator="," close=")">
+                    #{purchaseId}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY
+            purchase_id
+    </select>
 </mapper>

+ 1 - 12
hx-purchase/src/main/resources/mapper/pay/PayMapper.xml

@@ -3,18 +3,7 @@
 <mapper namespace="com.fjhx.purchase.mapper.pay.PayMapper">
     <select id="getPage" resultType="com.fjhx.purchase.entity.pay.vo.PayVo">
         select
-            p.id,
-            p.supply_id,
-            p.amount,
-            p.invoice_type,
-            p.remark,
-            p.deadline,
-            p.receipts_num,
-            p.pay_type,
-            p.create_user,
-            p.create_time,
-            p.update_user,
-            p.update_time
+           *
         from pay p
             ${ew.customSqlSegment}
     </select>

+ 18 - 0
hx-purchase/src/main/resources/mapper/refund/RefundDetailMapper.xml

@@ -0,0 +1,18 @@
+<?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.purchase.mapper.refund.RefundDetailMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.refund.vo.RefundDetailVo">
+        select
+            rd.id,
+            rd.sales_return_id,
+            rd.money,
+            rd.remark,
+            rd.create_user,
+            rd.create_time,
+            rd.update_user,
+            rd.update_time
+        from refund_detail rd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 24 - 0
hx-purchase/src/main/resources/mapper/refund/RefundMapper.xml

@@ -0,0 +1,24 @@
+<?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.purchase.mapper.refund.RefundMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.refund.vo.RefundVo">
+        select
+            r.id,
+            r.supply_id,
+            r.dept_name,
+            r.refund_name,
+            r.refund_time,
+            r.amount,
+            r.status,
+            r.remark,
+            r.process_instance_id,
+            r.approved_date,
+            r.create_user,
+            r.create_time,
+            r.update_user,
+            r.update_time
+        from refund r
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>