当月回款统计数据接口开发
This commit is contained in:
parent
2fa8673bb7
commit
2d34bed3fd
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
}
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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,5 +11,5 @@ public interface HomeService {
|
|||||||
|
|
||||||
MakeAmountVo selectMakeAmount(Integer type);
|
MakeAmountVo selectMakeAmount(Integer type);
|
||||||
|
|
||||||
ReturnAmountVo returnMoney(Integer type);
|
ReturnMoneyInfoVo returnMoney(Integer type);
|
||||||
}
|
}
|
||||||
|
@ -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.enums.CommonStatusEnum;
|
import com.pusong.business.enums.CommonStatusEnum;
|
||||||
import com.pusong.business.enums.PayStatusEnum;
|
import com.pusong.business.enums.PayStatusEnum;
|
||||||
import com.pusong.business.mapper.PsContractInfoMapper;
|
import com.pusong.business.mapper.PsContractInfoMapper;
|
||||||
@ -133,20 +134,41 @@ 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
|
Loading…
Reference in New Issue
Block a user