wxf пре 2 година
родитељ
комит
84f7ffa2b1
19 измењених фајлова са 328 додато и 31 уклоњено
  1. 0 1
      hx-account/pom.xml
  2. 37 0
      hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRequestFundsSelectDto.java
  3. 8 0
      hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountRequestFundsDetail.java
  4. 11 2
      hx-account/src/main/java/com/fjhx/account/mapper/account/AccountRequestFundsDetailMapper.java
  5. 14 5
      hx-account/src/main/java/com/fjhx/account/service/account/AccountRequestFundsDetailService.java
  6. 24 5
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountPaymentServiceImpl.java
  7. 18 7
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRequestFundsDetailServiceImpl.java
  8. 12 0
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRequestFundsServiceImpl.java
  9. 1 1
      hx-account/src/main/resources/mapper/account/AccountPaymentMapper.xml
  10. 12 0
      hx-account/src/main/resources/mapper/account/AccountRequestFundsDetailMapper.xml
  11. 14 1
      hx-purchase/src/main/java/com/fjhx/purchase/controller/pay/PayController.java
  12. 9 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/purchase/PurchaseController.java
  13. 23 1
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PaySelectDto.java
  14. 7 1
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/po/Pay.java
  15. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/Purchase.java
  16. 9 1
      hx-purchase/src/main/java/com/fjhx/purchase/service/pay/PayService.java
  17. 64 3
      hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayServiceImpl.java
  18. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/PurchaseService.java
  19. 55 3
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

+ 0 - 1
hx-account/pom.xml

@@ -26,7 +26,6 @@
             <groupId>com.fjhx</groupId>
             <artifactId>hx-item</artifactId>
         </dependency>
-
     </dependencies>
 
 </project>

+ 37 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRequestFundsSelectDto.java

@@ -4,6 +4,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 请款表列表查询入参实体
  *
@@ -38,4 +40,39 @@ public class AccountRequestFundsSelectDto extends BaseSelectDto {
      */
     private Integer writeOffStatus;
 
+    /**
+     * 归属部门ID
+     */
+    private Long departmentId;
+
+    /**
+     * 归属公司ID
+     */
+    private Long corporationId;
+
+    /**
+     * 申请人ID
+     */
+    private Long createUser;
+
+    /**
+     * 币种
+     */
+    private String currency;
+
+    /**
+     * 交易开始金额
+     */
+    private BigDecimal startAmount;
+
+    /**
+     * 交易结束金额
+     */
+    private BigDecimal endAmount;
+
+    /**
+     * 款项说明
+     */
+    private String paymentRemark;
+
 }

+ 8 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountRequestFundsDetail.java

@@ -1,5 +1,6 @@
 package com.fjhx.account.entity.account.po;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
@@ -45,7 +46,14 @@ public class AccountRequestFundsDetail extends BasePo {
     private Long contractId;
 
     /**
+     * 合同编码
+     */
+    @TableField(exist = false)
+    private String contractCode;
+
+    /**
      * 预支金额
      */
     private BigDecimal advanceAmount;
+
 }

+ 11 - 2
hx-account/src/main/java/com/fjhx/account/mapper/account/AccountRequestFundsDetailMapper.java

@@ -1,8 +1,9 @@
 package com.fjhx.account.mapper.account;
 
-import com.fjhx.account.entity.account.po.AccountRequestFundsDetail;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.account.po.AccountRequestFundsDetail;
 import com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
@@ -15,7 +16,7 @@ import java.util.List;
  *  Mapper 接口
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-10
  */
 public interface AccountRequestFundsDetailMapper extends BaseMapper<AccountRequestFundsDetail> {
@@ -36,4 +37,12 @@ public interface AccountRequestFundsDetailMapper extends BaseMapper<AccountReque
      * 根据请款id获取请款明细列表
      */
     List<AccountRequestFundsDetailVo> listByAccountRequestFundsId(@Param("accountRequestFundsId") Long accountRequestFundsId);
+
+    /**
+     * 获取到请款明细信息
+     * @param eq
+     * @return
+     */
+    List<AccountRequestFundsDetail> getList(@Param("ew")  LambdaQueryWrapper<AccountRequestFundsDetail> eq);
+
 }

+ 14 - 5
hx-account/src/main/java/com/fjhx/account/service/account/AccountRequestFundsDetailService.java

@@ -1,11 +1,12 @@
 package com.fjhx.account.service.account;
 
-import com.fjhx.account.entity.account.po.AccountRequestFundsDetail;
-import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo;
-import com.fjhx.account.entity.account.dto.AccountRequestFundsDetailSelectDto;
 import com.fjhx.account.entity.account.dto.AccountRequestFundsDetailDto;
+import com.fjhx.account.entity.account.dto.AccountRequestFundsDetailSelectDto;
+import com.fjhx.account.entity.account.po.AccountRequestFundsDetail;
+import com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo;
+import com.ruoyi.common.core.service.BaseService;
 
 import java.util.List;
 
@@ -15,7 +16,7 @@ import java.util.List;
  *  服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-10
  */
 public interface AccountRequestFundsDetailService extends BaseService<AccountRequestFundsDetail> {
@@ -56,4 +57,12 @@ public interface AccountRequestFundsDetailService extends BaseService<AccountReq
      * 根据请款id获取请款明细列表
      */
     List<AccountRequestFundsDetailVo> listByAccountRequestFundsId(Long accountRequestFundsId);
+
+    /**
+     * 获取到请款明细信息
+     * @param eq
+     * @return
+     */
+    List<AccountRequestFundsDetail> getList(LambdaQueryWrapper<AccountRequestFundsDetail> eq);
+
 }

+ 24 - 5
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountPaymentServiceImpl.java

@@ -22,11 +22,12 @@ import com.fjhx.account.service.account.AccountPaymentService;
 import com.fjhx.account.service.account.AccountRemainderService;
 import com.fjhx.account.service.account.AccountRunningWaterService;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.common.entity.corporation.po.Corporation;
 import com.fjhx.common.service.corporation.CorporationService;
 import com.fjhx.file.utils.ObsFileUtil;
+import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.entity.SysDept;
-import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -67,10 +68,28 @@ public class AccountPaymentServiceImpl extends ServiceImpl<AccountPaymentMapper,
     public Page<AccountPaymentVo> getPage(AccountRequestFundsSelectDto dto) {
 
         QueryWrapper<Object> wrapper = Wrappers.query();
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getPaymentStatus()), "ap.status", dto.getPaymentStatus());
-        wrapper.like(ObjectUtil.isNotEmpty(dto.getKeyword()), "ap.payment_remark", dto.getKeyword());
-        wrapper.orderByDesc("ap.status", "ap.create_time");
-
+        //付款状态
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getPaymentStatus()),"ap.status",dto.getPaymentStatus());
+        wrapper.like(ObjectUtil.isNotEmpty(dto.getKeyword()),"ap.payment_remark",dto.getKeyword());
+        wrapper.orderByDesc("ap.status","ap.payment_time","ap.create_time");
+        //归属公司
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getCorporationId()),"ap.corporation_id",dto.getCorporationId());
+        //归属部门
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getDepartmentId()),"ap.corporation_id",dto.getDepartmentId());
+        //申请人
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getCreateUser()),"ap.create_user",dto.getCreateUser());
+        //打款类型
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getType()),"ap.type",dto.getType());
+        //用款时间
+        wrapper.ge(ObjectUtil.isNotEmpty(dto.getBeginTime()),"ap.payment_time",dto.getBeginTime());
+        wrapper.le(ObjectUtil.isNotEmpty(dto.getEndTime()),"ap.payment_time",dto.getEndTime());
+        //币种
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getCurrency()),"ap.currency",dto.getCurrency());
+        //交易金额
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getStartAmount()),"ap.amount",dto.getStartAmount());
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getEndAmount()),"ap.amount",dto.getEndAmount());
+        //款项说明
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getPaymentRemark()),"ap.payment_remark",dto.getPaymentRemark());
         Page<AccountPaymentVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<AccountPaymentVo> records = page.getRecords();
         if (records.size() == 0) {

+ 18 - 7
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRequestFundsDetailServiceImpl.java

@@ -1,16 +1,17 @@
 package com.fjhx.account.service.account.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.account.entity.account.dto.AccountRequestFundsDetailDto;
+import com.fjhx.account.entity.account.dto.AccountRequestFundsDetailSelectDto;
 import com.fjhx.account.entity.account.po.AccountRequestFundsDetail;
+import com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo;
 import com.fjhx.account.mapper.account.AccountRequestFundsDetailMapper;
 import com.fjhx.account.service.account.AccountRequestFundsDetailService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo;
-import com.fjhx.account.entity.account.dto.AccountRequestFundsDetailSelectDto;
 import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.fjhx.account.entity.account.dto.AccountRequestFundsDetailDto;
-import cn.hutool.core.bean.BeanUtil;
+import org.springframework.stereotype.Service;
 
 import java.util.List;
 
@@ -71,4 +72,14 @@ public class AccountRequestFundsDetailServiceImpl extends ServiceImpl<AccountReq
         return baseMapper.listByAccountRequestFundsId(accountRequestFundsId);
     }
 
+    /**
+     * 获取到请款明细信息
+     * @param eq
+     * @return
+     */
+    @Override
+    public List<AccountRequestFundsDetail> getList(LambdaQueryWrapper<AccountRequestFundsDetail> eq) {
+        return baseMapper.getList(eq);
+    }
+
 }

+ 12 - 0
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRequestFundsServiceImpl.java

@@ -9,10 +9,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.account.entity.account.dto.AccountRequestFundsDto;
 import com.fjhx.account.entity.account.dto.AccountRequestFundsSelectDto;
+import com.fjhx.account.entity.account.po.AccountManagement;
 import com.fjhx.account.entity.account.po.AccountRequestFunds;
 import com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo;
 import com.fjhx.account.entity.account.vo.AccountRequestFundsVo;
 import com.fjhx.account.mapper.account.AccountRequestFundsMapper;
+import com.fjhx.account.service.account.AccountManagementService;
 import com.fjhx.account.service.account.AccountRequestFundsDetailService;
 import com.fjhx.account.service.account.AccountRequestFundsService;
 import com.fjhx.common.constant.SourceConstant;
@@ -23,6 +25,7 @@ import com.fjhx.flow.service.flow.FlowExampleService;
 import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,6 +60,9 @@ public class AccountRequestFundsServiceImpl extends ServiceImpl<AccountRequestFu
     @Autowired
     private FlowExampleService flowExampleService;
 
+    @Autowired
+    private AccountManagementService accountManagementService;
+
     /**
      * 查询请款列表
      *
@@ -75,6 +81,8 @@ public class AccountRequestFundsServiceImpl extends ServiceImpl<AccountRequestFu
         wrapper.orderByAsc("case arf.status when 10 then 1 when 30 then 2 else 3 END");
         // 同状态按发起时间倒序排序
         wrapper.orderByDesc("arf.create_time");
+        //添加权限自己看自己
+        wrapper.eq("arf.create_user", SecurityUtils.getUserId());
         Page<AccountRequestFundsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
 
         List<AccountRequestFundsVo> records = page.getRecords();
@@ -132,6 +140,10 @@ public class AccountRequestFundsServiceImpl extends ServiceImpl<AccountRequestFu
 
         accountRequestFundsVo.setAccountRequestFundsDetailList(accountRequestFundsDetailVos);
 
+        //赋值账户名称
+        AccountManagement accountManagement = accountManagementService.getById(accountRequestFundsVo.getAccountManagementId());
+        accountRequestFundsVo.setAccountManagementName(accountManagement.getName());
+
         // 查询归属公司的名称
         Corporation corporation = corporationService.getById(accountRequestFundsVo.getCorporationId());
         if (ObjectUtil.isEmpty(corporation)) {

+ 1 - 1
hx-account/src/main/resources/mapper/account/AccountPaymentMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.fjhx.account.mapper.account.AccountPaymentMapper">
     <select id="getPage" resultType="com.fjhx.account.entity.account.vo.AccountPaymentVo">
         select
-            *
+            ap.*
         from account_payment ap
             ${ew.customSqlSegment}
     </select>

+ 12 - 0
hx-account/src/main/resources/mapper/account/AccountRequestFundsDetailMapper.xml

@@ -1,6 +1,7 @@
 <?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.account.mapper.account.AccountRequestFundsDetailMapper">
+
     <select id="getPage" resultType="com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo">
         select
             arfd.id,
@@ -28,6 +29,7 @@
             t1.contract_id = #{contractId}
           AND t3.`status` = 20
     </select>
+
     <select id="listByAccountRequestFundsId" resultType="com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo">
         SELECT
             arfd.*,
@@ -38,4 +40,14 @@
         WHERE
             arfd.account_request_funds_id = #{accountRequestFundsId}
     </select>
+
+    <select id="getList" resultType="com.fjhx.account.entity.account.po.AccountRequestFundsDetail">
+        SELECT
+            fd.*,
+            sc.code contractCode
+        FROM
+            account_request_funds_detail fd
+                LEFT JOIN bytesailing_sale.contract sc ON fd.contract_id = sc.id
+    </select>
+
 </mapper>

+ 14 - 1
hx-purchase/src/main/java/com/fjhx/purchase/controller/pay/PayController.java

@@ -9,13 +9,15 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.fjhx.purchase.service.pay.PayService;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.Map;
+
 
 /**
  * <p>
  * 采购付款 前端控制器
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-13
  */
 @RestController
@@ -33,6 +35,17 @@ public class PayController {
         return payService.getPage(dto);
     }
 
+
+    /**
+     * 采购付款统计
+     * @param dto
+     * @return
+     */
+    @PostMapping("/payStatistics")
+    public Map<String,Object> payStatistics(@RequestBody PaySelectDto dto) {
+        return payService.payStatistics(dto);
+    }
+
     /**
      * 采购付款明细
      */

+ 9 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/purchase/PurchaseController.java

@@ -14,6 +14,7 @@ import com.fjhx.purchase.service.purchase.PurchaseService;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -41,6 +42,14 @@ public class PurchaseController {
     }
 
     /**
+     * 采购统计(采购列表)
+     */
+    @PostMapping("/purchaseStatistics")
+    public Map<String,Object> purchaseStatistics(@RequestBody PurchaseSelectDto dto) {
+        return purchaseService.purchaseStatistics(dto);
+    }
+
+    /**
      * 采购分页 维多利亚
      */
     @PostMapping("/pageByWdly")

+ 23 - 1
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PaySelectDto.java

@@ -4,10 +4,12 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 采购付款列表查询入参实体
  *
- * @author 
+ * @author
  * @since 2023-04-13
  */
 @Getter
@@ -23,4 +25,24 @@ public class PaySelectDto extends BaseSelectDto {
      * 审批状态
      */
     private String status;
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 付款方式 funds_payment_method
+     */
+    private Integer payType;
+
+    /**
+     * 申请开始金额
+     */
+    private BigDecimal startAmount;
+
+    /**
+     * 申请结束金额
+     */
+    private BigDecimal endAmount;
 }

+ 7 - 1
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/po/Pay.java

@@ -16,7 +16,7 @@ import lombok.Setter;
  * 采购付款
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-13
  */
 @Getter
@@ -125,4 +125,10 @@ public class Pay extends BasePo {
     @TableField(exist = false)
     private List<ObsFile> fileList;
 
+    /**
+     * 个数
+     */
+    @TableField(exist = false)
+    private Integer count;
+
 }

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

@@ -115,4 +115,9 @@ public class Purchase extends BasePo {
      * 流程实例
      */
     private Long flowId;
+
+    /**
+     * 采购单个数
+     */
+    private Integer count;
 }

+ 9 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/PayService.java

@@ -7,13 +7,15 @@ import com.fjhx.purchase.entity.pay.vo.PayVo;
 import com.fjhx.purchase.entity.pay.dto.PaySelectDto;
 import com.fjhx.purchase.entity.pay.dto.PayDto;
 
+import java.util.Map;
+
 
 /**
  * <p>
  * 采购付款 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-13
  */
 public interface PayService extends BaseService<Pay> {
@@ -43,4 +45,10 @@ public interface PayService extends BaseService<Pay> {
      */
     void delete(Long id);
 
+    /**
+     * 采购付款统计
+     * @param dto
+     * @return
+     */
+    Map<String,Object> payStatistics(PaySelectDto dto);
 }

+ 64 - 3
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayServiceImpl.java

@@ -2,6 +2,9 @@ package com.fjhx.purchase.service.pay.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.account.entity.account.po.AccountPayment;
@@ -32,9 +35,7 @@ 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.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -77,9 +78,26 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
     public Page<PayVo> getPage(PaySelectDto dto) {
         IWrapper<Pay> wrapper = getWrapper();
         wrapper.orderByDesc("p", Pay::getCreateTime);
+
+        //供应商ID
+        wrapper.eq("p",Pay::getSupplyId,dto.getSupplyId());
+
+        //付款方式
+        wrapper.eq("p",Pay::getPayType,dto.getPayType());
+
+        //申请金额
+        wrapper.ge("p",Pay::getAmount,dto.getStartAmount());
+        wrapper.le("p",Pay::getAmount,dto.getEndAmount());
+
+        //申请时间
+        wrapper.ge("p", Pay::getCreateTime,dto.getBeginTime());
+        wrapper.le("p",Pay::getCreateTime,dto.getEndTime());
+
+        //审批状态
         if (StringUtils.isNotEmpty(dto.getStatus())) {
             wrapper.eq("p", Pay::getStatus, dto.getStatus());
         }
+        //付款状态
         if (StringUtils.isNotEmpty(dto.getPayStatus())) {
             wrapper.eq("p", Pay::getPayStatus, dto.getPayStatus());
         }
@@ -188,4 +206,47 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
         this.removeById(id);
     }
 
+    /**
+     * 采购付款统计
+     * @param dto
+     * @return
+     */
+    @Override
+    public Map<String, Object> payStatistics(PaySelectDto dto) {
+        List<Integer> statusList =  Arrays.asList(0,1,2);//付款状态  0未付款  1部分付款  2已付款'
+
+        //存放付款统计数据
+        Map<String,Object> map = new HashMap<>();
+
+        //存放付款统计详情列表
+        List<Map<String, Object>> list = new ArrayList<>();
+
+        //查询付款详情
+        QueryWrapper<Pay> query = Wrappers.query();
+        query.select("ifnull(pay_status,-1) payStatus,ifnull(amount,0) amount");
+        query.groupBy("pay_status");
+        List<Pay> pays = baseMapper.selectList(query);
+        Map<String, List<Pay>> payMap = pays.stream().collect(Collectors.groupingBy(Pay::getPayStatus));
+
+        //计算合计金额
+        BigDecimal amount = pays.stream().map(Pay::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        map.put("amount",amount);
+
+        //赋值每个付款状态的金额
+        for (Integer status : statusList) {
+            //赋初始值
+            Map<String,Object> statusMap = new HashMap<>();
+            statusMap.put("payStatus",status);
+            statusMap.put("payAmount",0);
+            //赋值
+            List<Pay> payList = payMap.get(status);
+            if (CollectionUtils.isNotEmpty(payList)){
+                statusMap.put("payAmount",payList.get(0).getAmount());
+            }
+            list.add(statusMap);
+        }
+        map.put("payList",list);
+        return map;
+    }
+
 }

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/PurchaseService.java

@@ -10,6 +10,7 @@ import com.ruoyi.common.core.service.BaseService;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -65,4 +66,8 @@ public interface PurchaseService extends BaseService<Purchase> {
      */
     Page<PurchaseDto> paymentBill(PurchaseSelectDto purchaseDto);
 
+    /**
+     * 采购统计(采购列表)
+     */
+    Map<String,Object> purchaseStatistics(PurchaseSelectDto dto);
 }

+ 55 - 3
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -58,9 +58,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -135,7 +133,16 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
         if (ObjectUtils.isNotEmpty(dto.getPayStatus())) {
             wrapper.eq("p", Purchase::getPayStatus, dto.getPayStatus());
         }
+
+        wrapper.like("p",Purchase::getCode,dto.getCode());//采购单号
+        wrapper.eq("p",Purchase::getSupplyId,dto.getSupplyId());//供应商ID
+
         wrapper.eq("p", Purchase::getCode, dto.getKeyword());//根据采购单号关键字搜索
+
+        wrapper.ge("p",Purchase::getAmount,dto.getStartAmount());//采购开始金额
+        wrapper.le("p",Purchase::getAmount,dto.getEndAmount());//采购结束金额
+        wrapper.ge("P",Purchase::getCreateTime,dto.getBeginTime());//采购开始时间
+        wrapper.le("p",Purchase::getCreateTime,dto.getEndTime());//采购结束时间
         Page<PurchaseVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<PurchaseVo> list = page.getRecords();
         if (CollectionUtils.isNotEmpty(list)) {
@@ -463,6 +470,51 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
         return page;
     }
 
+    /**
+     * 采购统计(采购列表)
+     */
+    @Override
+    public  Map<String,Object> purchaseStatistics(PurchaseSelectDto dto) {
+        //存放到货状态
+        List<Integer> arrivalStatus = Arrays.asList(0, 10, 20);//到货状态 0未到货  10 部分到货  20已到货
+
+        //存放采购统计数据
+        Map<String,Object> map = new HashMap<>();
+        //存放采购统计详情
+        List<Map<String,Object>> list = new ArrayList<>();
+
+        QueryWrapper<Purchase> query = Wrappers.query();
+        query.select("count(*) count,sum(amount) amount,ifnull(arrival_status,-1) arrivalStatus");
+        query.groupBy("arrival_status");
+        List<Purchase> purchaseList = baseMapper.selectList(query);
+        //计算合计订单数
+        Integer count = purchaseList.stream().map(Purchase::getCount).reduce(Integer::sum).orElse(0);
+        map.put("count",count);
+        //计算合计采购金额
+        BigDecimal amount = purchaseList.stream().map(Purchase::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        map.put("amount",amount);
+        Map<Integer, List<Purchase>> purchaseMap = purchaseList.stream().collect(Collectors.groupingBy(Purchase::getArrivalStatus));
+
+        //获取到每个到货状态的值
+        for (Integer status : arrivalStatus) {
+            //赋值初始值
+            Map<String,Object> statusMap = new HashMap<>();
+            statusMap.put("arrivalStatus",status);
+            statusMap.put("purchaseCount",0);
+            statusMap.put("purchaseAmount",0);
+
+            //赋值
+            List<Purchase> purchases = purchaseMap.get(status);
+            if (CollectionUtils.isNotEmpty(purchases)){
+                statusMap.put("purchaseCount",purchases.get(0).getCount());
+                statusMap.put("purchaseAmount",purchases.get(0).getAmount());
+            }
+            list.add(statusMap);
+        }
+        map.put("purchaseList",list);
+        return map;
+    }
+
     @Override
     public Page<? extends DocumentaryData> getDocumentaryPage(JSONObject selectData, BaseSelectDto
             dto, List<Long> excludeBusinessId) {