demand: 计算时间范围内每一天账单总金额
committer: heyu
This commit is contained in:
parent
d6fa69984a
commit
3c636156e0
@ -276,7 +276,7 @@ public class EmisSettleBillController extends BaseController
|
||||
*/
|
||||
@GetMapping("/calculateRecedMoney")
|
||||
public AjaxResult calculateRecedMoney(String beginTime, String endTime) {
|
||||
Map<String, BigDecimal> result = emisSettleBillService.calculateRecedMoney(beginTime, endTime);
|
||||
List<Map<String, String>> result = emisSettleBillService.calculateRecedMoney(beginTime, endTime);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
|
||||
@ -11,8 +11,12 @@
|
||||
package com.xdadan.erp.emis.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.xdadan.erp.emis.domain.EmisSettlePayRecord;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @ClassName EmisSettlePayRecordMapper
|
||||
* @Description <p> 账单收退款记录 Mapper 接口 </p>
|
||||
@ -80,4 +84,13 @@ public interface EmisSettlePayRecordMapper extends BaseMapper<EmisSettlePayRecor
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteEmisSettlePayRecordByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 按天统计已收款金额
|
||||
*
|
||||
* @param beginTime 开始时间
|
||||
* @param endTime 结束时间
|
||||
* @return 每天的已收款金额统计
|
||||
*/
|
||||
List<Map<String, Object>> calculateRecedMoney(@Param("beginTime") String beginTime, @Param("endTime") String endTime);
|
||||
}
|
||||
|
||||
@ -137,5 +137,5 @@ public interface IEmisSettleBillService extends IDataAuditService
|
||||
* @param endTime 结束时间
|
||||
* @return 每一天的收款总金额
|
||||
*/
|
||||
Map<String, BigDecimal> calculateRecedMoney(String beginTime, String endTime);
|
||||
List<Map<String, String>> calculateRecedMoney(String beginTime, String endTime);
|
||||
}
|
||||
|
||||
@ -1125,28 +1125,17 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, BigDecimal> calculateRecedMoney(String beginTime, String endTime) {
|
||||
// 构建查询条件
|
||||
EmisSettleBill query = new EmisSettleBill();
|
||||
query.setParams(new HashMap<>());
|
||||
query.getParams().put("beginTime", beginTime);
|
||||
query.getParams().put("endTime", endTime);
|
||||
|
||||
// 查询符合条件的记录
|
||||
List<EmisSettleBill> list = emisSettleBillMapper.selectEmisSettleBillList(query);
|
||||
|
||||
// 按天分组统计金额
|
||||
Map<String, BigDecimal> dailyAmounts = list.stream()
|
||||
.filter(bill -> bill.getRecedMoney() != null && bill.getCreateTime() != null)
|
||||
.collect(Collectors.groupingBy(
|
||||
bill -> DateUtils.parseDateToStr("yyyy-MM-dd", bill.getCreateTime()),
|
||||
Collectors.mapping(
|
||||
EmisSettleBill::getRecedMoney,
|
||||
Collectors.reducing(BigDecimal.ZERO, (a, b) -> {
|
||||
BigDecimal sum = a.add(b).stripTrailingZeros();
|
||||
return new BigDecimal(sum.toPlainString());
|
||||
}))));
|
||||
public List<Map<String, String>> calculateRecedMoney(String beginTime, String endTime) {
|
||||
// 查询获取按天统计的已收款金额
|
||||
List<Map<String, Object>> resultList = emisSettlePayRecordMapper.calculateRecedMoney(beginTime, endTime);
|
||||
|
||||
List<Map<String, String>> dailyAmounts = new ArrayList<>();
|
||||
for (Map<String, Object> result : resultList) {
|
||||
Map<String, String> item = new HashMap<>();
|
||||
item.put("tradeDay", (String) result.get("tradeDay"));
|
||||
item.put("payMoney", result.get("payMoney").toString());
|
||||
dailyAmounts.add(item);
|
||||
}
|
||||
return dailyAmounts;
|
||||
}
|
||||
|
||||
|
||||
@ -381,4 +381,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="calculateRecedMoney" resultType="java.util.Map">
|
||||
SELECT
|
||||
DATE_FORMAT(trade_date, '%Y-%m-%d') as tradeDay,
|
||||
SUM(IFNULL(pay_money, 0)) as payMoney
|
||||
FROM
|
||||
emis_settle_pay_record
|
||||
WHERE
|
||||
trade_date >= #{beginTime}
|
||||
AND trade_date < #{endTime}
|
||||
AND del_flag = '0'
|
||||
GROUP BY
|
||||
DATE_FORMAT(trade_date, '%Y-%m-%d')
|
||||
ORDER BY
|
||||
tradeDay
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue
Block a user