# Conflicts:
#	pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java
#	pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java
This commit is contained in:
1073413548 2024-09-10 09:13:04 +08:00
commit ed5eb89c90
6 changed files with 82 additions and 9 deletions

View File

@ -7,6 +7,7 @@ import com.pusong.business.domain.vo.PsSalaryContractVo;
import com.pusong.business.domain.vo.PsSalaryVo; import com.pusong.business.domain.vo.PsSalaryVo;
import com.pusong.business.domain.vo.home.MakeAmountVo; import com.pusong.business.domain.vo.home.MakeAmountVo;
import com.pusong.business.domain.vo.home.ReturnAmountVo; 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.HomeService;
import com.pusong.business.service.IPsSalaryService; import com.pusong.business.service.IPsSalaryService;
import com.pusong.common.core.domain.R; import com.pusong.common.core.domain.R;
@ -54,7 +55,7 @@ public class HomeController extends BaseController {
*/ */
@SaCheckPermission("business:salary:list") @SaCheckPermission("business:salary:list")
@GetMapping("/returnMoney") @GetMapping("/returnMoney")
public R<ReturnAmountVo> returnMoney(@RequestParam() Integer type) { public R<ReturnMoneyInfoVo> returnMoney(@RequestParam() Integer type) {
return R.ok(homeService.returnMoney(type)); return R.ok(homeService.returnMoney(type));
} }
/** /**

View File

@ -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;
}

View File

@ -14,7 +14,9 @@ import com.pusong.common.mybatis.annotation.DataPermission;
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 合同基本信息Mapper接口 * 合同基本信息Mapper接口
@ -40,4 +42,5 @@ public interface PsContractInfoMapper extends BaseMapperPlus<PsContractInfo, PsC
List<PsSalaryContract> querySalaryListByCodes(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper); List<PsSalaryContract> querySalaryListByCodes(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
List<Map<String,Object>> homePageReturnMoneyInfo(@Param("startDate") LocalDate startDate);
} }

View File

@ -2,6 +2,7 @@ package com.pusong.business.service;
import com.pusong.business.domain.vo.home.MakeAmountVo; import com.pusong.business.domain.vo.home.MakeAmountVo;
import com.pusong.business.domain.vo.home.ReturnAmountVo; import com.pusong.business.domain.vo.home.ReturnAmountVo;
import com.pusong.business.domain.vo.home.ReturnMoneyInfoVo;
/** /**
* 首页相关接口 * 首页相关接口
@ -10,7 +11,7 @@ public interface HomeService {
MakeAmountVo selectMakeAmount(Integer type); MakeAmountVo selectMakeAmount(Integer type);
ReturnAmountVo returnMoney(Integer type); ReturnMoneyInfoVo returnMoney(Integer type);
/** /**
* 首页大盘数据各渠道成交 * 首页大盘数据各渠道成交

View File

@ -6,6 +6,7 @@ import com.pusong.business.domain.PsContractInfo;
import com.pusong.business.domain.PsContractPay; import com.pusong.business.domain.PsContractPay;
import com.pusong.business.domain.vo.home.MakeAmountVo; import com.pusong.business.domain.vo.home.MakeAmountVo;
import com.pusong.business.domain.vo.home.ReturnAmountVo; import com.pusong.business.domain.vo.home.ReturnAmountVo;
import com.pusong.business.domain.vo.home.ReturnMoneyInfoVo;
import com.pusong.business.domain.vo.home.DataAmountVo; import com.pusong.business.domain.vo.home.DataAmountVo;
import com.pusong.business.enums.CommonStatusEnum; import com.pusong.business.enums.CommonStatusEnum;
import com.pusong.business.enums.ContractStatusEnum; import com.pusong.business.enums.ContractStatusEnum;
@ -135,21 +136,42 @@ public class HomeServiceImpl implements HomeService {
return map; return map;
} }
public ReturnAmountVo returnMoney(Integer type){ public ReturnMoneyInfoVo returnMoney(Integer type){
Map<String, Object> mapParam = this.getDate(type); Map<String, Object> mapParam = this.getDate(type);
LocalDate startDate = (LocalDate)mapParam.get("startDate"); LocalDate startDate = (LocalDate)mapParam.get("startDate");
LocalDate endDate = (LocalDate)mapParam.get("endDate"); LocalDate endDate = (LocalDate)mapParam.get("endDate");
String date = (String)mapParam.get("date"); String date = (String)mapParam.get("date");
List<PsContractInfo> list = psContractInfoMapper.selectList(Wrappers.<PsContractInfo>lambdaQuery() //当月合同款总数
.select(PsContractInfo::getContractCode).ne(PsContractInfo::getIsCancel, CommonStatusEnum.SUCCESS.getCode()) BigDecimal sumMoney= new BigDecimal(0);
.ge(startDate != null,PsContractInfo::getApplyDate,startDate) //当月已支付合同金额
.le(endDate != null,PsContractInfo::getApplyDate,endDate)); BigDecimal payMoney=new BigDecimal(0);
//当月合同总数
Integer contractNum=0;
List<Map<String,Object>> list = psContractInfoMapper.homePageReturnMoneyInfo(startDate);
//记录合同编码防止重复
Map<String,Integer> repeatNum=new HashMap<>();
for(Map<String,Object> m : list){
BigDecimal money =m.get("money")==null?new BigDecimal(0):(BigDecimal) m.get("money");
payMoney=payMoney.add(money);
payMapper.selectList(Wrappers.<PsContractPay>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;
} }

View File

@ -61,5 +61,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join ps_company_info com on info.company_id = com.id left join ps_company_info com on info.company_id = com.id
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </select>
<select id="homePageReturnMoneyInfo" resultType="java.util.Map">
SELECT
info.contract_code,
info.contract_amount,
pay.money,
info.apply_date
FROM ps_contract_info info
LEFT JOIN ps_contract_pay pay on pay.contract_code=info.contract_code
WHERE info.apply_date>="${startDate}"
ORDER BY info.contract_code
</select>
</mapper> </mapper>