diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java index f76837c..99c636b 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java @@ -1,11 +1,22 @@ package com.pusong.business.domain.vo.home; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; @Data public class ReturnMoneyInfoVo { + /** + * 当前时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date currentDate = new Date(); + /** + * 统计范围 + */ + private String dateStr; /** * 当月合同总数 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java index 1b44612..1b0fc7b 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java @@ -42,5 +42,5 @@ public interface PsContractInfoMapper extends BaseMapperPlus querySalaryListByCodes(@Param(Constants.WRAPPER) Wrapper queryWrapper); - List> homePageReturnMoneyInfo(@Param("startDate") LocalDate startDate); + List> homePageReturnMoneyInfo(@Param("queryParam") Map queryParam); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java index 197ede3..3498bb3 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java @@ -150,12 +150,27 @@ public class HomeServiceImpl implements HomeService { //当月合同总数 Integer contractNum=0; - List> list = psContractInfoMapper.homePageReturnMoneyInfo(startDate); + Map queryParam=new HashMap<>(); + queryParam.put("startDate",startDate); + queryParam.put("endDate",endDate); + queryParam.put("payStatus",PayStatusEnum.SUCCESS.getCode()); + queryParam.put("contractStatus",ContractStatusEnum.INIT.getCode()); + queryParam.put("isCancel",CommonStatusEnum.SUCCESS.getCode()); + + List> list = psContractInfoMapper.homePageReturnMoneyInfo(queryParam); //记录合同编码,防止重复 Map repeatNum=new HashMap<>(); for(Map m : list){ + //计算已回款金额 BigDecimal money =m.get("money")==null?new BigDecimal(0):(BigDecimal) m.get("money"); - payMoney=payMoney.add(money); + String businessType=m.get("business_type")==null?"":m.get("business_type").toString(); + //判断是回款还是退款 + if(businessType.equals("1")){ + payMoney = payMoney.add(money); + }else{ + payMoney = payMoney.subtract(money); + } + String contractCode=m.get("contract_code").toString(); if(repeatNum.get(contractCode)==null){ @@ -166,6 +181,7 @@ public class HomeServiceImpl implements HomeService { } ReturnMoneyInfoVo res = new ReturnMoneyInfoVo(); + res.setDateStr(date); res.setContractNum(contractNum); res.setSumMoney(sumMoney); res.setPayMoney(payMoney); diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml index 729529b..36dbb18 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml @@ -67,11 +67,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" info.contract_code, info.contract_amount, pay.money, + pay.business_type, info.apply_date FROM ps_contract_info info - LEFT JOIN ps_contract_pay pay on pay.contract_code=info.contract_code + LEFT JOIN ps_contract_pay pay on pay.contract_code=info.contract_code and pay.pay_status=#{queryParam.payStatus} - WHERE info.apply_date>="${startDate}" - ORDER BY info.contract_code + WHERE + info.apply_date >= #{queryParam.startDate} and + + info.apply_date <= #{queryParam.endDate} and + + info.contract_status != #{queryParam.contractStatus} and + info.is_cancel != #{queryParam.isCancel}