From 2d34bed3fdf7225a1886c5c19641ce8823be4791 Mon Sep 17 00:00:00 2001 From: LIUFL Date: Mon, 9 Sep 2024 18:02:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=93=E6=9C=88=E5=9B=9E=E6=AC=BE=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/controller/HomeController.java | 3 +- .../domain/vo/home/ReturnMoneyInfoVo.java | 34 ++++++++++++++++++ .../business/mapper/PsContractInfoMapper.java | 3 ++ .../pusong/business/service/HomeService.java | 3 +- .../service/impl/HomeServiceImpl.java | 36 +++++++++++++++---- .../mapper/business/PsContractInfoMapper.xml | 12 +++++++ 6 files changed, 82 insertions(+), 9 deletions(-) create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java index 2872014..4da5db8 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java @@ -7,6 +7,7 @@ import com.pusong.business.domain.vo.PsSalaryContractVo; import com.pusong.business.domain.vo.PsSalaryVo; import com.pusong.business.domain.vo.home.MakeAmountVo; import com.pusong.business.domain.vo.home.ReturnAmountVo; +import com.pusong.business.domain.vo.home.ReturnMoneyInfoVo; import com.pusong.business.service.HomeService; import com.pusong.business.service.IPsSalaryService; import com.pusong.common.core.domain.R; @@ -54,7 +55,7 @@ public class HomeController extends BaseController { */ @SaCheckPermission("business:salary:list") @GetMapping("/returnMoney") - public R returnMoney(@RequestParam() Integer type) { + public R returnMoney(@RequestParam() Integer type) { return R.ok(homeService.returnMoney(type)); } 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 new file mode 100644 index 0000000..f76837c --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java @@ -0,0 +1,34 @@ +package com.pusong.business.domain.vo.home; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class ReturnMoneyInfoVo { + /** + * 当月合同总数 + */ + private Integer contractNum; + /** + * 当月合同回款金额 + */ + private BigDecimal sumMoney; + /** + * 当月已回款金额 + */ + private BigDecimal payMoney; + /** + * 当月未回款金额 + */ + private BigDecimal unPayMoney; + + /** + * 已回款金额占比 + */ + private String payMoneyPer; + /** + * 未回款金额占比 + */ + private String unPayMoneyPer; +} 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 932872e..1b44612 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 @@ -14,7 +14,9 @@ import com.pusong.common.mybatis.annotation.DataPermission; import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; +import java.time.LocalDate; import java.util.List; +import java.util.Map; /** * 合同基本信息Mapper接口 @@ -40,4 +42,5 @@ public interface PsContractInfoMapper extends BaseMapperPlus querySalaryListByCodes(@Param(Constants.WRAPPER) Wrapper queryWrapper); + List> homePageReturnMoneyInfo(@Param("startDate") LocalDate startDate); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java index 424f951..dd5c4fd 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java @@ -2,6 +2,7 @@ package com.pusong.business.service; import com.pusong.business.domain.vo.home.MakeAmountVo; import com.pusong.business.domain.vo.home.ReturnAmountVo; +import com.pusong.business.domain.vo.home.ReturnMoneyInfoVo; /** * 首页相关接口 @@ -10,5 +11,5 @@ public interface HomeService { MakeAmountVo selectMakeAmount(Integer type); - ReturnAmountVo returnMoney(Integer type); + ReturnMoneyInfoVo returnMoney(Integer type); } 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 c43d44b..df9f04e 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 @@ -6,6 +6,7 @@ import com.pusong.business.domain.PsContractInfo; import com.pusong.business.domain.PsContractPay; import com.pusong.business.domain.vo.home.MakeAmountVo; import com.pusong.business.domain.vo.home.ReturnAmountVo; +import com.pusong.business.domain.vo.home.ReturnMoneyInfoVo; import com.pusong.business.enums.CommonStatusEnum; import com.pusong.business.enums.PayStatusEnum; import com.pusong.business.mapper.PsContractInfoMapper; @@ -133,20 +134,41 @@ public class HomeServiceImpl implements HomeService { return map; } - public ReturnAmountVo returnMoney(Integer type){ + public ReturnMoneyInfoVo returnMoney(Integer type){ Map mapParam = this.getDate(type); LocalDate startDate = (LocalDate)mapParam.get("startDate"); LocalDate endDate = (LocalDate)mapParam.get("endDate"); String date = (String)mapParam.get("date"); - List list = psContractInfoMapper.selectList(Wrappers.lambdaQuery() - .select(PsContractInfo::getContractCode).ne(PsContractInfo::getIsCancel, CommonStatusEnum.SUCCESS.getCode()) - .ge(startDate != null,PsContractInfo::getApplyDate,startDate) - .le(endDate != null,PsContractInfo::getApplyDate,endDate)); + //当月合同款总数 + BigDecimal sumMoney= new BigDecimal(0); + //当月已支付合同金额 + BigDecimal payMoney=new BigDecimal(0); + //当月合同总数 + Integer contractNum=0; + List> list = psContractInfoMapper.homePageReturnMoneyInfo(startDate); + //记录合同编码,防止重复 + 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); - payMapper.selectList(Wrappers.query().select("business_type", "sum(money) money").lambda()); + String contractCode=m.get("contract_code").toString(); + if(repeatNum.get(contractCode)==null){ + repeatNum.put(contractCode,1); + sumMoney=sumMoney.add((BigDecimal) m.get("contract_amount")); + contractNum++; + } + } - return null; + ReturnMoneyInfoVo res = new ReturnMoneyInfoVo(); + res.setContractNum(contractNum); + res.setSumMoney(sumMoney); + res.setPayMoney(payMoney); + res.setUnPayMoney(sumMoney.subtract(payMoney)); + res.setPayMoneyPer(payMoney.multiply(new BigDecimal("100.0")).divide(sumMoney,2, RoundingMode.HALF_UP).toPlainString()+"%"); + res.setUnPayMoneyPer(res.getUnPayMoney().multiply(new BigDecimal("100.0")).divide(sumMoney,2, RoundingMode.HALF_UP).toPlainString()+"%"); + return res; } } 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 18a14e4..729529b 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 @@ -61,5 +61,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join ps_company_info com on info.company_id = com.id ${ew.getCustomSqlSegment} + +