|
@@ -37,6 +37,8 @@ import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
+
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
* 采购付款 服务实现类
|
|
* 采购付款 服务实现类
|
|
@@ -91,7 +93,6 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
|
|
wrapper.ge("p", Pay::getCreateTime, dto.getBeginTime());
|
|
wrapper.ge("p", Pay::getCreateTime, dto.getBeginTime());
|
|
wrapper.le("p", Pay::getCreateTime, dto.getEndTime());
|
|
wrapper.le("p", Pay::getCreateTime, dto.getEndTime());
|
|
|
|
|
|
- //审批状态
|
|
|
|
if (StringUtils.isNotEmpty(dto.getStatus())) {
|
|
if (StringUtils.isNotEmpty(dto.getStatus())) {
|
|
wrapper.eq("p", Pay::getStatus, dto.getStatus());
|
|
wrapper.eq("p", Pay::getStatus, dto.getStatus());
|
|
}
|
|
}
|
|
@@ -204,47 +205,50 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
|
|
this.removeById(id);
|
|
this.removeById(id);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 采购付款统计
|
|
* 采购付款统计
|
|
|
|
+ *
|
|
* @param dto
|
|
* @param dto
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public Map<String, Object> payStatistics(PaySelectDto dto) {
|
|
public Map<String, Object> payStatistics(PaySelectDto dto) {
|
|
- List<Integer> statusList = Arrays.asList(0,1,2);//付款状态 0未付款 1部分付款 2已付款'
|
|
|
|
|
|
+ List<Integer> statusList = Arrays.asList(0, 1, 2);// 付款状态 0未付款 1部分付款 2已付款'
|
|
|
|
|
|
- //存放付款统计数据
|
|
|
|
- Map<String,Object> map = new HashMap<>();
|
|
|
|
|
|
+ // 存放付款统计数据
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
|
|
- //存放付款统计详情列表
|
|
|
|
|
|
+ // 存放付款统计详情列表
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
|
|
|
|
- //查询付款详情
|
|
|
|
|
|
+ // 查询付款详情
|
|
QueryWrapper<Pay> query = Wrappers.query();
|
|
QueryWrapper<Pay> query = Wrappers.query();
|
|
query.select("ifnull(pay_status,-1) payStatus,ifnull(amount,0) amount");
|
|
query.select("ifnull(pay_status,-1) payStatus,ifnull(amount,0) amount");
|
|
query.groupBy("pay_status");
|
|
query.groupBy("pay_status");
|
|
List<Pay> pays = baseMapper.selectList(query);
|
|
List<Pay> pays = baseMapper.selectList(query);
|
|
Map<String, List<Pay>> payMap = pays.stream().collect(Collectors.groupingBy(Pay::getPayStatus));
|
|
Map<String, List<Pay>> payMap = pays.stream().collect(Collectors.groupingBy(Pay::getPayStatus));
|
|
|
|
|
|
- //计算合计金额
|
|
|
|
|
|
+ // 计算合计金额
|
|
BigDecimal amount = pays.stream().map(Pay::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal amount = pays.stream().map(Pay::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
- map.put("amount",amount);
|
|
|
|
|
|
+ map.put("amount", amount);
|
|
|
|
|
|
- //赋值每个付款状态的金额
|
|
|
|
|
|
+ // 赋值每个付款状态的金额
|
|
for (Integer status : statusList) {
|
|
for (Integer status : statusList) {
|
|
- //赋初始值
|
|
|
|
- Map<String,Object> statusMap = new HashMap<>();
|
|
|
|
- statusMap.put("payStatus",status);
|
|
|
|
- statusMap.put("payAmount",0);
|
|
|
|
- //赋值
|
|
|
|
|
|
+ // 赋初始值
|
|
|
|
+ Map<String, Object> statusMap = new HashMap<>();
|
|
|
|
+ statusMap.put("payStatus", status);
|
|
|
|
+ statusMap.put("payAmount", 0);
|
|
|
|
+ // 赋值
|
|
List<Pay> payList = payMap.get(status);
|
|
List<Pay> payList = payMap.get(status);
|
|
- if (CollectionUtils.isNotEmpty(payList)){
|
|
|
|
- statusMap.put("payAmount",payList.get(0).getAmount());
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(payList)) {
|
|
|
|
+ statusMap.put("payAmount", payList.get(0).getAmount());
|
|
}
|
|
}
|
|
list.add(statusMap);
|
|
list.add(statusMap);
|
|
}
|
|
}
|
|
- map.put("payList",list);
|
|
|
|
|
|
+ map.put("payList", list);
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
}
|
|
}
|