Commit 2d6b2366 by zhaoyang

下载资产包资产列表

parent 09139817
package com.abssqr.plat.biz.api.astPool;
package com.abssqr.plat.biz.api.ast;
import com.abssqr.plat.biz.support.ServiceSupport;
import com.abssqr.plat.common.dal.mysql.auto.paging.AstPoolLoanPage;
......@@ -12,7 +12,7 @@ import com.abssqr.plat.common.facade.param.astPool.AstPoolPageQryParam;
import com.abssqr.plat.common.facade.result.BasePage;
import com.abssqr.plat.common.facade.result.ast.AstPoolLoanVO;
import com.abssqr.plat.common.facade.result.astPool.AstPoolVO;
import com.abssqr.plat.common.facade.service.AstPoolService;
import com.abssqr.plat.common.facade.service.ast.AstPoolService;
import com.abssqr.plat.common.facade.validation.Valid;
import com.abssqr.plat.common.model.convertor.web.AstPoolLoanWebConvert;
import com.abssqr.plat.common.model.convertor.web.AstPoolWebConvert;
......@@ -27,7 +27,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import static com.abssqr.plat.common.model.convertor.web.AstPoolWebConvert.convertParam2Page;
......
package com.abssqr.plat.biz.api.ast;
import com.abssqr.plat.biz.support.ServiceSupport;
import com.abssqr.plat.common.dal.mysql.auto.paging.PackAstPage;
import com.abssqr.plat.common.facade.param.ast.AstDownLoadParam;
import com.abssqr.plat.common.facade.service.ast.AstService;
import com.abssqr.plat.common.facade.validation.Valid;
import com.abssqr.plat.common.model.repo.ast.LoanRepository;
import com.abssqr.plat.core.service.ast.DownLoadAstManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.util.*;
@Component
public class AstServiceImpl extends ServiceSupport implements AstService {
protected final Logger LOGGER = LoggerFactory.getLogger(getClass());
private final int limit=2000;
@Autowired
LoanRepository loanRepository;
@Autowired
DownLoadAstManager downLoadAstManager;
@Override
public void downLoadAstFile(@Valid AstDownLoadParam astDownLoadParam, HttpServletResponse response) {
PackAstPage packAstPage=new PackAstPage();
packAstPage.setPackNo(astDownLoadParam.getPackCode());
packAstPage.setCurrPageNo(1);
packAstPage.setLimit(limit);
List<String> loanFieldCodes = astDownLoadParam.getLoanFieldCodes();
try {
downLoadAstManager.writeData2Stream(packAstPage,loanFieldCodes,getOutputStream(astDownLoadParam.getPackCode(),response));
} catch (Exception e) {
LOGGER.error("写入数据失败错误信息[0]",e.getMessage());
}
}
private ServletOutputStream getOutputStream(String packNo,HttpServletResponse response) throws Exception{
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("multipart/form-data");
String outfileName = null;
try {
outfileName = new String((packNo+".xls").getBytes(), "ISO-8859-1");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e.getMessage());
}
response.setHeader("Content-Disposition", "attachment;fileName=" + outfileName);
return response.getOutputStream();
}
}
......@@ -396,7 +396,7 @@
</operation>
<operation name="getLoanListByAstPoolNo" resultmap="AstPoolLoan" multiplicity="paging" paging="" remark="根据资产池编号查询对应的资产">
<operation name="getLoanListByAstPoolNo" resultmap="AstPoolLoan" multiplicity="paging" paging="AstPoolLoan" remark="根据资产池编号查询对应的资产">
SELECT
L1.AST_NO, --资产编号
L1.PRIN_BAL, --贷款剩余本金
......@@ -418,4 +418,15 @@
R2.STATUS='in'
AND R3.AST_POOL_NO=#{astPoolNo,jdbcType=VARCHAR}
</operation>
<operation name="getLoanPageByPackNo" multiplicity="paging" paging="PackAst" remark="根据资产包编号分页获取所有的资产">
SELECT sf.*
FROM ABS_LOAN L1
LEFT JOIN ABS_LOAN_PACK_REL R1 ON L1.AST_NO=R1.AST_NO
WHERE
R1.PACK_NO=#{packNo,jdbcType=VARCHAR}
</operation>
</table>
......@@ -10,6 +10,7 @@ import com.abssqr.plat.common.dal.mysql.auto.paging.CapitalAstMatchPage;
import com.abssqr.plat.common.dal.mysql.auto.paging.CapitalAstUnMatchPage;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.AstPoolLoanStat;
import com.abssqr.plat.common.dal.mysql.auto.paging.AstPoolLoanPage;
import com.abssqr.plat.common.dal.mysql.auto.paging.PackAstPage;
import com.abssqr.plat.common.dal.mysql.auto.mapper.LoanDOMapper;
/**
......@@ -169,4 +170,20 @@ public class LoanDAO{
astPoolLoan.setTotal(total);
return astPoolLoan;
}
/**
* desc:根据资产包编号分页获取所有的资产.<br/>
* @param packAst packAst
* @return PackAstPage
*/
public PackAstPage getLoanPageByPackNo(PackAstPage packAst){
int total = loanDOMapper.getLoanPageByPackNoCount(packAst);
if(total>0){
packAst.setDatas(loanDOMapper.getLoanPageByPackNoResult(packAst));
}else{
packAst.setDatas(new ArrayList());
}
packAst.setTotal(total);
return packAst;
}
}
......@@ -10,6 +10,7 @@ import com.abssqr.plat.common.dal.mysql.auto.paging.CapitalAstUnMatchPage;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.AstPoolLoanStat;
import com.abssqr.plat.common.dal.mysql.auto.paging.AstPoolLoanPage;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.AstPoolLoan;
import com.abssqr.plat.common.dal.mysql.auto.paging.PackAstPage;
import org.apache.ibatis.annotations.Param;
/**
......@@ -123,4 +124,16 @@ public interface LoanDOMapper{
* @return List<AstPoolLoan>
*/
List<AstPoolLoan> getLoanListByAstPoolNoResult(AstPoolLoanPage astPoolLoan);
/**
* desc:根据资产包编号分页获取所有的资产.<br/>
* @param packAst packAst
* @return int
*/
int getLoanPageByPackNoCount(PackAstPage packAst);
/**
* desc:根据资产包编号分页获取所有的资产.<br/>
* @param packAst packAst
* @return List<LoanDO>
*/
List<LoanDO> getLoanPageByPackNoResult(PackAstPage packAst);
}
......@@ -556,4 +556,32 @@
) table_alias
where table_alias.rowno &gt; #{startRow}
</select>
<!--根据资产包编号分页获取所有的资产 pageCount mydalgen自动生成,请勿修改-->
<select id="getLoanPageByPackNoCount" resultType="int" >
SELECT
COUNT(*) AS total
FROM
ABS_LOAN L1
LEFT JOIN ABS_LOAN_PACK_REL R1 ON L1.AST_NO=R1.AST_NO
WHERE
R1.PACK_NO=#{packNo,jdbcType=VARCHAR}
</select>
<!--根据资产包编号分页获取所有的资产 pageResult mydalgen自动生成,请勿修改-->
<select id="getLoanPageByPackNoResult" resultMap="BaseResultMap" >
select
*
from(
select
tt.*,ROWNUM AS rowno
from(
SELECT /*MS-ABS-LOAN-GETLOANPAGEBYPACKNO*/ <include refid="Base_SF_Column_List" />
FROM ABS_LOAN L1
LEFT JOIN ABS_LOAN_PACK_REL R1 ON L1.AST_NO=R1.AST_NO
WHERE
R1.PACK_NO=#{packNo,jdbcType=VARCHAR}
) tt where ROWNUM &lt;= #{endRow}
) table_alias
where table_alias.rowno &gt; #{startRow}
</select>
</mapper>
package com.abssqr.plat.common.facade.enums;
import com.general.system.common.model.IEnum;
import java.util.HashMap;
import java.util.Map;
public enum LoanFieldEnum implements IEnum {
AST_NO("astNO","资金编号",0),
PAID_INTR_AMT("paidIntrAmt","利息余额",1),
PAID_PRIN_AMT("paidPrinAmt","本金余额",2),
INTR_PENAL_BAL("intrPenalAmt","由逾期利息产生的罚息",3),
PRIN_PENAL_BAL("prinPenalAmt","由逾期本金产生的罚息",4),
PAID_FEE_PENAL_AMT("paidFeePenalAmt","由分期费用逾期产生的滞纳金余额",5),
PAID_OTHER_FEE_AMT("paidOtherFeeAmt","其他费用余额",6),
OTHER_FEE_PENAL_BAL("otherFeePenalBal","其他费用滞纳金余额",7),
PAID_INTR_PENAL_AMT("paidIntrPenalAmt","由逾期利息产生的罚息",8),
PAID_PRIN_PENAL_AMT("paidPrinPenalAmt","由逾期本金产生的罚息",9),
PAID_OTHER_FEE_PENAL_AMT("paidOtherFeePenalAmt","其他费用滞纳金余额",10),
TRANS_CNT("transCnt","交易次数",11),
CAPITAL_NO("capitalNo","资金编号",12);
private static final Map<String, LoanFieldEnum> codeMap = new HashMap<>();
static {
for (LoanFieldEnum item : LoanFieldEnum.values()) {
codeMap.put(item.getCode().toString(), item);
}
}
private String code;
private String desc;
private int sort;
private LoanFieldEnum(String code, String desc,int sort) {
this.code = code;
this.desc = desc;
this.sort=sort;
}
public static LoanFieldEnum getByCode(String code) {
return codeMap.get(code);
}
@Override
public String getCode() {
return this.code;
}
@Override
public String getDesc() {
return this.desc;
}
public int getSort() {
return sort;
}
}
package com.abssqr.plat.common.facade.model.ast;
import java.util.Date;
/**
* The table 信贷资产
*/
public class DownLoadLoanEntity{
/**
* transCnt 交易次数.
*/
private Long transCnt;
/**
* astNo 资产编号.
*/
private String astNo;
/**
* certNo .
*/
private String certNo;
/**
* extInf 扩展信息.
*/
private String extInf;
/**
* ownOrg 所属资产池编号.
*/
private String ownOrg;
/**
* prodNo 产品码.
*/
private String prodNo;
/**
* riskCl 资产五级分类.
*/
private String riskCl;
/**
* status NORMAL:正常OVERDUE:逾期CLEARED:结清.
*/
private String status;
/**
* userId .
*/
private String userId;
/**
* ownPack 所属资产包.
*/
private String ownPack;
/**
* outAstNo 外部资产编号.
*/
private String outAstNo;
/**
* capitalNo 资金编号.
*/
private String capitalNo;
/**
* layerName 投资结构名称.
*/
private String layerName;
/**
* outProdNo 外部产品码.
*/
private String outProdNo;
/**
* ownStatus .
*/
private String ownStatus;
/**
* wtfStatus .
*/
private String wtfStatus;
/**
* contractNo 合同编号.
*/
private String contractNo;
/**
* lastOwnOrg 前所属机构(计划).
*/
private String lastOwnOrg;
/**
* lenderOrgCode 原始权益机构(计划).
*/
private String lenderOrgCode;
/**
* managerOrgCode 资产管理服务机构.
*/
private String managerOrgCode;
/**
* sponserOrgCode 业务牵头机构.
*/
private String sponserOrgCode;
/**
* curTerm 当前期.
*/
private Integer curTerm;
/**
* ovdDays 逾期天数.
*/
private Integer ovdDays;
/**
* termCnt 总期次.
*/
private Integer termCnt;
/**
* inDate 资产流入时间(YYYYMMDD).
*/
private Date inDate;
/**
* endDate 借据到期日(YYYYMMDD).
*/
private Date endDate;
/**
* disbDate .
*/
private Date disbDate;
/**
* clearDate 结清日期.
*/
private Date clearDate;
/**
* gmtCreate 创建时间.
*/
private Date gmtCreate;
/**
* startDate 借据开始日期(YYYYMMDD).
*/
private Date startDate;
/**
* gmtModified 修改时间.
*/
private Date gmtModified;
/**
* lastUpdateDate 最近数据更新日.
*/
private Date lastUpdateDate;
/**
* feeBal 单指分期手续费,其他费用如,提前还款费等不在此列.
*/
private String feeBal;
/**
* intrBal 利息余额.
*/
private String intrBal;
/**
* prinBal 本金余额.
*/
private String prinBal;
/**
* ovdFeeBal .
*/
private String ovdFeeBal;
/**
* ovdIntrBal .
*/
private String ovdIntrBal;
/**
* ovdPrinBal .
*/
private String ovdPrinBal;
/**
* paidFeeAmt 单指分期手续费,其他费用如,提前还款费等不在此列.
*/
private String paidFeeAmt;
/**
* feePenalBal 由分期费用逾期产生的滞纳金余额.
*/
private String feePenalBal;
/**
* otherFeeBal 其他费用余额.
*/
private String otherFeeBal;
/**
* paidIntrAmt 利息余额.
*/
private String paidIntrAmt;
/**
* paidPrinAmt 本金余额.
*/
private String paidPrinAmt;
/**
* intrPenalBal 由逾期利息产生的罚息.
*/
private String intrPenalBal;
/**
* prinPenalBal 由逾期本金产生的罚息.
*/
private String prinPenalBal;
/**
* paidFeePenalAmt 由分期费用逾期产生的滞纳金余额.
*/
private String paidFeePenalAmt;
/**
* paidOtherFeeAmt 其他费用余额.
*/
private String paidOtherFeeAmt;
/**
* otherFeePenalBal 其他费用滞纳金余额.
*/
private String otherFeePenalBal;
/**
* paidIntrPenalAmt 由逾期利息产生的罚息.
*/
private String paidIntrPenalAmt;
/**
* paidPrinPenalAmt 由逾期本金产生的罚息.
*/
private String paidPrinPenalAmt;
/**
* paidOtherFeePenalAmt 其他费用滞纳金余额.
*/
private String paidOtherFeePenalAmt;
/**
* Set transCnt 交易次数.
*/
public void setTransCnt(Long transCnt){
this.transCnt = transCnt;
}
/**
* Get transCnt 交易次数.
*
* @return the string
*/
public Long getTransCnt(){
return transCnt;
}
/**
* Set astNo 资产编号.
*/
public void setAstNo(String astNo){
this.astNo = astNo;
}
/**
* Get astNo 资产编号.
*
* @return the string
*/
public String getAstNo(){
return astNo;
}
/**
* Set certNo .
*/
public void setCertNo(String certNo){
this.certNo = certNo;
}
/**
* Get certNo .
*
* @return the string
*/
public String getCertNo(){
return certNo;
}
/**
* Set extInf 扩展信息.
*/
public void setExtInf(String extInf){
this.extInf = extInf;
}
/**
* Get extInf 扩展信息.
*
* @return the string
*/
public String getExtInf(){
return extInf;
}
/**
* Set ownOrg 所属资产池编号.
*/
public void setOwnOrg(String ownOrg){
this.ownOrg = ownOrg;
}
/**
* Get ownOrg 所属资产池编号.
*
* @return the string
*/
public String getOwnOrg(){
return ownOrg;
}
/**
* Set prodNo 产品码.
*/
public void setProdNo(String prodNo){
this.prodNo = prodNo;
}
/**
* Get prodNo 产品码.
*
* @return the string
*/
public String getProdNo(){
return prodNo;
}
/**
* Set riskCl 资产五级分类.
*/
public void setRiskCl(String riskCl){
this.riskCl = riskCl;
}
/**
* Get riskCl 资产五级分类.
*
* @return the string
*/
public String getRiskCl(){
return riskCl;
}
/**
* Set status NORMAL:正常OVERDUE:逾期CLEARED:结清.
*/
public void setStatus(String status){
this.status = status;
}
/**
* Get status NORMAL:正常OVERDUE:逾期CLEARED:结清.
*
* @return the string
*/
public String getStatus(){
return status;
}
/**
* Set userId .
*/
public void setUserId(String userId){
this.userId = userId;
}
/**
* Get userId .
*
* @return the string
*/
public String getUserId(){
return userId;
}
/**
* Set ownPack 所属资产包.
*/
public void setOwnPack(String ownPack){
this.ownPack = ownPack;
}
/**
* Get ownPack 所属资产包.
*
* @return the string
*/
public String getOwnPack(){
return ownPack;
}
/**
* Set outAstNo 外部资产编号.
*/
public void setOutAstNo(String outAstNo){
this.outAstNo = outAstNo;
}
/**
* Get outAstNo 外部资产编号.
*
* @return the string
*/
public String getOutAstNo(){
return outAstNo;
}
/**
* Set capitalNo 资金编号.
*/
public void setCapitalNo(String capitalNo){
this.capitalNo = capitalNo;
}
/**
* Get capitalNo 资金编号.
*
* @return the string
*/
public String getCapitalNo(){
return capitalNo;
}
/**
* Set layerName 投资结构名称.
*/
public void setLayerName(String layerName){
this.layerName = layerName;
}
/**
* Get layerName 投资结构名称.
*
* @return the string
*/
public String getLayerName(){
return layerName;
}
/**
* Set outProdNo 外部产品码.
*/
public void setOutProdNo(String outProdNo){
this.outProdNo = outProdNo;
}
/**
* Get outProdNo 外部产品码.
*
* @return the string
*/
public String getOutProdNo(){
return outProdNo;
}
/**
* Set ownStatus .
*/
public void setOwnStatus(String ownStatus){
this.ownStatus = ownStatus;
}
/**
* Get ownStatus .
*
* @return the string
*/
public String getOwnStatus(){
return ownStatus;
}
/**
* Set wtfStatus .
*/
public void setWtfStatus(String wtfStatus){
this.wtfStatus = wtfStatus;
}
/**
* Get wtfStatus .
*
* @return the string
*/
public String getWtfStatus(){
return wtfStatus;
}
/**
* Set contractNo 合同编号.
*/
public void setContractNo(String contractNo){
this.contractNo = contractNo;
}
/**
* Get contractNo 合同编号.
*
* @return the string
*/
public String getContractNo(){
return contractNo;
}
/**
* Set lastOwnOrg 前所属机构(计划).
*/
public void setLastOwnOrg(String lastOwnOrg){
this.lastOwnOrg = lastOwnOrg;
}
/**
* Get lastOwnOrg 前所属机构(计划).
*
* @return the string
*/
public String getLastOwnOrg(){
return lastOwnOrg;
}
/**
* Set lenderOrgCode 原始权益机构(计划).
*/
public void setLenderOrgCode(String lenderOrgCode){
this.lenderOrgCode = lenderOrgCode;
}
/**
* Get lenderOrgCode 原始权益机构(计划).
*
* @return the string
*/
public String getLenderOrgCode(){
return lenderOrgCode;
}
/**
* Set managerOrgCode 资产管理服务机构.
*/
public void setManagerOrgCode(String managerOrgCode){
this.managerOrgCode = managerOrgCode;
}
/**
* Get managerOrgCode 资产管理服务机构.
*
* @return the string
*/
public String getManagerOrgCode(){
return managerOrgCode;
}
/**
* Set sponserOrgCode 业务牵头机构.
*/
public void setSponserOrgCode(String sponserOrgCode){
this.sponserOrgCode = sponserOrgCode;
}
/**
* Get sponserOrgCode 业务牵头机构.
*
* @return the string
*/
public String getSponserOrgCode(){
return sponserOrgCode;
}
/**
* Set curTerm 当前期.
*/
public void setCurTerm(Integer curTerm){
this.curTerm = curTerm;
}
/**
* Get curTerm 当前期.
*
* @return the string
*/
public Integer getCurTerm(){
return curTerm;
}
/**
* Set ovdDays 逾期天数.
*/
public void setOvdDays(Integer ovdDays){
this.ovdDays = ovdDays;
}
/**
* Get ovdDays 逾期天数.
*
* @return the string
*/
public Integer getOvdDays(){
return ovdDays;
}
/**
* Set termCnt 总期次.
*/
public void setTermCnt(Integer termCnt){
this.termCnt = termCnt;
}
/**
* Get termCnt 总期次.
*
* @return the string
*/
public Integer getTermCnt(){
return termCnt;
}
/**
* Set inDate 资产流入时间(YYYYMMDD).
*/
public void setInDate(Date inDate){
this.inDate = inDate;
}
/**
* Get inDate 资产流入时间(YYYYMMDD).
*
* @return the string
*/
public Date getInDate(){
return inDate;
}
/**
* Set endDate 借据到期日(YYYYMMDD).
*/
public void setEndDate(Date endDate){
this.endDate = endDate;
}
/**
* Get endDate 借据到期日(YYYYMMDD).
*
* @return the string
*/
public Date getEndDate(){
return endDate;
}
/**
* Set disbDate .
*/
public void setDisbDate(Date disbDate){
this.disbDate = disbDate;
}
/**
* Get disbDate .
*
* @return the string
*/
public Date getDisbDate(){
return disbDate;
}
/**
* Set clearDate 结清日期.
*/
public void setClearDate(Date clearDate){
this.clearDate = clearDate;
}
/**
* Get clearDate 结清日期.
*
* @return the string
*/
public Date getClearDate(){
return clearDate;
}
/**
* Set gmtCreate 创建时间.
*/
public void setGmtCreate(Date gmtCreate){
this.gmtCreate = gmtCreate;
}
/**
* Get gmtCreate 创建时间.
*
* @return the string
*/
public Date getGmtCreate(){
return gmtCreate;
}
/**
* Set startDate 借据开始日期(YYYYMMDD).
*/
public void setStartDate(Date startDate){
this.startDate = startDate;
}
/**
* Get startDate 借据开始日期(YYYYMMDD).
*
* @return the string
*/
public Date getStartDate(){
return startDate;
}
/**
* Set gmtModified 修改时间.
*/
public void setGmtModified(Date gmtModified){
this.gmtModified = gmtModified;
}
/**
* Get gmtModified 修改时间.
*
* @return the string
*/
public Date getGmtModified(){
return gmtModified;
}
/**
* Set lastUpdateDate 最近数据更新日.
*/
public void setLastUpdateDate(Date lastUpdateDate){
this.lastUpdateDate = lastUpdateDate;
}
/**
* Get lastUpdateDate 最近数据更新日.
*
* @return the string
*/
public Date getLastUpdateDate(){
return lastUpdateDate;
}
/**
* Set feeBal 单指分期手续费,其他费用如,提前还款费等不在此列.
*/
public void setFeeBal(String feeBal){
this.feeBal = feeBal;
}
/**
* Get feeBal 单指分期手续费,其他费用如,提前还款费等不在此列.
*
* @return the string
*/
public String getFeeBal(){
if(feeBal==null){
return new String();
}
return feeBal;
}
/**
* Set intrBal 利息余额.
*/
public void setIntrBal(String intrBal){
this.intrBal = intrBal;
}
/**
* Get intrBal 利息余额.
*
* @return the string
*/
public String getIntrBal(){
if(intrBal==null){
return new String();
}
return intrBal;
}
/**
* Set prinBal 本金余额.
*/
public void setPrinBal(String prinBal){
this.prinBal = prinBal;
}
/**
* Get prinBal 本金余额.
*
* @return the string
*/
public String getPrinBal(){
if(prinBal==null){
return new String();
}
return prinBal;
}
/**
* Set ovdFeeBal .
*/
public void setOvdFeeBal(String ovdFeeBal){
this.ovdFeeBal = ovdFeeBal;
}
/**
* Get ovdFeeBal .
*
* @return the string
*/
public String getOvdFeeBal(){
if(ovdFeeBal==null){
return new String();
}
return ovdFeeBal;
}
/**
* Set ovdIntrBal .
*/
public void setOvdIntrBal(String ovdIntrBal){
this.ovdIntrBal = ovdIntrBal;
}
/**
* Get ovdIntrBal .
*
* @return the string
*/
public String getOvdIntrBal(){
if(ovdIntrBal==null){
return new String();
}
return ovdIntrBal;
}
/**
* Set ovdPrinBal .
*/
public void setOvdPrinBal(String ovdPrinBal){
this.ovdPrinBal = ovdPrinBal;
}
/**
* Get ovdPrinBal .
*
* @return the string
*/
public String getOvdPrinBal(){
if(ovdPrinBal==null){
return new String();
}
return ovdPrinBal;
}
/**
* Set paidFeeAmt 单指分期手续费,其他费用如,提前还款费等不在此列.
*/
public void setPaidFeeAmt(String paidFeeAmt){
this.paidFeeAmt = paidFeeAmt;
}
/**
* Get paidFeeAmt 单指分期手续费,其他费用如,提前还款费等不在此列.
*
* @return the string
*/
public String getPaidFeeAmt(){
if(paidFeeAmt==null){
return new String();
}
return paidFeeAmt;
}
/**
* Set feePenalBal 由分期费用逾期产生的滞纳金余额.
*/
public void setFeePenalBal(String feePenalBal){
this.feePenalBal = feePenalBal;
}
/**
* Get feePenalBal 由分期费用逾期产生的滞纳金余额.
*
* @return the string
*/
public String getFeePenalBal(){
if(feePenalBal==null){
return new String();
}
return feePenalBal;
}
/**
* Set otherFeeBal 其他费用余额.
*/
public void setOtherFeeBal(String otherFeeBal){
this.otherFeeBal = otherFeeBal;
}
/**
* Get otherFeeBal 其他费用余额.
*
* @return the string
*/
public String getOtherFeeBal(){
if(otherFeeBal==null){
return new String();
}
return otherFeeBal;
}
/**
* Set paidIntrAmt 利息余额.
*/
public void setPaidIntrAmt(String paidIntrAmt){
this.paidIntrAmt = paidIntrAmt;
}
/**
* Get paidIntrAmt 利息余额.
*
* @return the string
*/
public String getPaidIntrAmt(){
if(paidIntrAmt==null){
return new String();
}
return paidIntrAmt;
}
/**
* Set paidPrinAmt 本金余额.
*/
public void setPaidPrinAmt(String paidPrinAmt){
this.paidPrinAmt = paidPrinAmt;
}
/**
* Get paidPrinAmt 本金余额.
*
* @return the string
*/
public String getPaidPrinAmt(){
if(paidPrinAmt==null){
return new String();
}
return paidPrinAmt;
}
/**
* Set intrPenalBal 由逾期利息产生的罚息.
*/
public void setIntrPenalBal(String intrPenalBal){
this.intrPenalBal = intrPenalBal;
}
/**
* Get intrPenalBal 由逾期利息产生的罚息.
*
* @return the string
*/
public String getIntrPenalBal(){
if(intrPenalBal==null){
return new String();
}
return intrPenalBal;
}
/**
* Set prinPenalBal 由逾期本金产生的罚息.
*/
public void setPrinPenalBal(String prinPenalBal){
this.prinPenalBal = prinPenalBal;
}
/**
* Get prinPenalBal 由逾期本金产生的罚息.
*
* @return the string
*/
public String getPrinPenalBal(){
if(prinPenalBal==null){
return new String();
}
return prinPenalBal;
}
/**
* Set paidFeePenalAmt 由分期费用逾期产生的滞纳金余额.
*/
public void setPaidFeePenalAmt(String paidFeePenalAmt){
this.paidFeePenalAmt = paidFeePenalAmt;
}
/**
* Get paidFeePenalAmt 由分期费用逾期产生的滞纳金余额.
*
* @return the string
*/
public String getPaidFeePenalAmt(){
if(paidFeePenalAmt==null){
return new String();
}
return paidFeePenalAmt;
}
/**
* Set paidOtherFeeAmt 其他费用余额.
*/
public void setPaidOtherFeeAmt(String paidOtherFeeAmt){
this.paidOtherFeeAmt = paidOtherFeeAmt;
}
/**
* Get paidOtherFeeAmt 其他费用余额.
*
* @return the string
*/
public String getPaidOtherFeeAmt(){
if(paidOtherFeeAmt==null){
return new String();
}
return paidOtherFeeAmt;
}
/**
* Set otherFeePenalBal 其他费用滞纳金余额.
*/
public void setOtherFeePenalBal(String otherFeePenalBal){
this.otherFeePenalBal = otherFeePenalBal;
}
/**
* Get otherFeePenalBal 其他费用滞纳金余额.
*
* @return the string
*/
public String getOtherFeePenalBal(){
if(otherFeePenalBal==null){
return new String();
}
return otherFeePenalBal;
}
/**
* Set paidIntrPenalAmt 由逾期利息产生的罚息.
*/
public void setPaidIntrPenalAmt(String paidIntrPenalAmt){
this.paidIntrPenalAmt = paidIntrPenalAmt;
}
/**
* Get paidIntrPenalAmt 由逾期利息产生的罚息.
*
* @return the string
*/
public String getPaidIntrPenalAmt(){
if(paidIntrPenalAmt==null){
return new String();
}
return paidIntrPenalAmt;
}
/**
* Set paidPrinPenalAmt 由逾期本金产生的罚息.
*/
public void setPaidPrinPenalAmt(String paidPrinPenalAmt){
this.paidPrinPenalAmt = paidPrinPenalAmt;
}
/**
* Get paidPrinPenalAmt 由逾期本金产生的罚息.
*
* @return the string
*/
public String getPaidPrinPenalAmt(){
if(paidPrinPenalAmt==null){
return new String();
}
return paidPrinPenalAmt;
}
/**
* Set paidOtherFeePenalAmt 其他费用滞纳金余额.
*/
public void setPaidOtherFeePenalAmt(String paidOtherFeePenalAmt){
this.paidOtherFeePenalAmt = paidOtherFeePenalAmt;
}
/**
* Get paidOtherFeePenalAmt 其他费用滞纳金余额.
*
* @return the string
*/
public String getPaidOtherFeePenalAmt(){
if(paidOtherFeePenalAmt==null){
return new String();
}
return paidOtherFeePenalAmt;
}
}
package com.abssqr.plat.common.facade.param.ast;
import com.abssqr.plat.common.facade.base.BaseParam;
import com.abssqr.plat.common.facade.enums.EventCodeEnum;
import com.abssqr.plat.common.facade.validation.VldEnums;
import com.abssqr.plat.common.facade.validation.VldString;
import java.util.ArrayList;
import java.util.List;
public class AstDownLoadParam extends BaseParam{
private List<String> loanFieldCodes=new ArrayList<>();
@VldString(nullable = false)
private String packCode;
public List<String> getLoanFieldCodes() {
return loanFieldCodes;
}
public void setLoanFieldCodes(List<String> loanFieldCodes) {
this.loanFieldCodes = loanFieldCodes;
}
public String getPackCode() {
return packCode;
}
public void setPackCode(String packCode) {
this.packCode = packCode;
}
@Override
public EventCodeEnum getEventCode() {
return EventCodeEnum.ADMIN_DTL_QRY;
}
}
package com.abssqr.plat.common.facade.service;
package com.abssqr.plat.common.facade.service.ast;
import com.abssqr.plat.common.facade.param.ast.AstPageQryParam;
import com.abssqr.plat.common.facade.param.astPool.AstPoolOprParam;
......
package com.abssqr.plat.common.facade.service.ast;
import com.abssqr.plat.common.facade.param.ast.AstDownLoadParam;
import javax.servlet.Servlet;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
public interface AstService {
void downLoadAstFile(AstDownLoadParam astDownLoadParam, HttpServletResponse response);
}
......@@ -8,6 +8,7 @@ package com.abssqr.plat.common.model.convertor;
import com.abssqr.plat.common.dal.mysql.auto.dataobject.LoanBakDO;
import com.abssqr.plat.common.dal.mysql.auto.dataobject.LoanDO;
import com.abssqr.plat.common.facade.enums.*;
import com.abssqr.plat.common.facade.model.ast.DownLoadLoanEntity;
import com.abssqr.plat.common.model.domain.ast.Loan;
import com.abssqr.plat.common.model.domain.ast.LoanBak;
import com.abssqr.plat.common.model.domain.ast.LoanRisk;
......@@ -217,4 +218,37 @@ public class LoanConvert {
return instance;
}
public static DownLoadLoanEntity convert2DownLoadEntity(LoanDO var){
DownLoadLoanEntity instance = new DownLoadLoanEntity();
instance.setAstNo(var.getAstNo());
instance.setCurTerm(var.getCurTerm());
instance.setTermCnt(var.getTermCnt());
instance.setPrinBal(var.getPrinBal().getAmount().toPlainString());
instance.setOvdPrinBal(var.getOvdPrinBal().getAmount().toPlainString());
instance.setOvdIntrBal(var.getOvdIntrBal().getAmount().toPlainString());
instance.setOvdFeeBal(var.getOvdFeeBal().getAmount().toPlainString());
instance.setPrinPenalBal(var.getPrinPenalBal().getAmount().toPlainString());
instance.setIntrBal(var.getIntrBal().getAmount().toPlainString());
instance.setIntrPenalBal(var.getIntrPenalBal().getAmount().toPlainString());
instance.setFeeBal(var.getFeeBal().getAmount().toPlainString());
instance.setFeePenalBal( var.getFeePenalBal().getAmount().toPlainString());
instance.setOtherFeeBal(var.getOtherFeeBal().getAmount().toPlainString());
instance.setOtherFeePenalBal( var.getOtherFeePenalBal().getAmount().toPlainString());
instance.setPaidPrinAmt(var.getPaidPrinAmt().getAmount().toPlainString());
instance.setPaidPrinPenalAmt( var.getPaidPrinPenalAmt().getAmount().toPlainString());
instance.setPaidIntrAmt(var.getPaidIntrAmt().getAmount().toPlainString());
instance.setLastUpdateDate(var.getLastUpdateDate());
instance.setOutProdNo(var.getOutProdNo());
instance.setCertNo(var.getCertNo());
instance.setTransCnt((var.getTransCnt() == null) ? 0 : var.getTransCnt());
instance.setCapitalNo(var.getCapitalNo() == null ? CapitalAstMatchEnum.DEFAULT.getCode() : var.getCapitalNo());
instance.setLayerName(var.getLayerName());
return instance;
}
}
......@@ -114,4 +114,10 @@ public interface LoanRepository {
AstPoolLoanPage getLoanPageByAstPoolNo(AstPoolLoanPage astPoolPage);
PackAstPage getLoanPageByPackNo(PackAstPage packAstPage);
}
......@@ -173,9 +173,16 @@ public class LoanRepositoryImpl implements LoanRepository {
@Override
public AstPoolLoanPage getLoanPageByAstPoolNo(AstPoolLoanPage astPoolPage) {
AstPoolLoanPage astPoolLoanPage = loanDAO.getLoanListByAstPoolNo(astPoolPage);
return astPoolLoanPage;
}
@Override
public PackAstPage getLoanPageByPackNo(PackAstPage packAstPage){
PackAstPage result = loanDAO.getLoanPageByPackNo(packAstPage);
return result;
}
}
package com.abssqr.plat.core.service.ast;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.abssqr.plat.common.dal.mysql.auto.paging.PackAstPage;
import com.abssqr.plat.common.facade.enums.LoanFieldEnum;
import com.abssqr.plat.common.model.repo.ast.LoanRepository;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.*;
import java.util.stream.Collectors;
@Component
public class DownLoadAstManager {
@Autowired
LoanRepository loanRepository;
/**
* 查询资产并写入前端流
* @param packAstPage
* @param fieldCodes
* @param outputStream
*/
public void writeData2Stream(PackAstPage packAstPage,List<String> fieldCodes,OutputStream outputStream){
Map<String, String> alias = buildAliasMap(fieldCodes);
ExcelWriter writer = ExcelUtil.getBigWriter();
writer.setOnlyAlias(true);
writer.setHeaderAlias(alias);
do{
packAstPage = loanRepository.getLoanPageByPackNo(packAstPage);
writer.write(packAstPage.getDatas());
}while(packAstPage.hasNextPage());
writer.flush(outputStream);
IOUtils.closeQuietly(outputStream);
}
private Map<String,String> buildAliasMap(List<String> fieldCodes){
//根据序号排序
Set<LoanFieldEnum> loanFieldEnumSet=new TreeSet(Comparator.comparing(LoanFieldEnum::getSort));
fieldCodes.forEach(v->{
LoanFieldEnum fieldEnum = LoanFieldEnum.getByCode(v);
loanFieldEnumSet.add(fieldEnum);
});
Map<String, String> result = loanFieldEnumSet.stream().collect(Collectors.toMap(LoanFieldEnum::getCode
, LoanFieldEnum::getDesc));
return result;
}
}
......@@ -5,10 +5,9 @@ package com.abssqr.plat.test.unittest.astPool; /**
import com.abssqr.plat.common.facade.param.ast.AstPageQryParam;
import com.abssqr.plat.common.facade.param.astPool.AstPoolOprParam;
import com.abssqr.plat.common.facade.result.BasePage;
import com.abssqr.plat.common.facade.result.ast.AstPoolLoanVO;
import com.abssqr.plat.common.facade.service.AstPoolService;
import com.abssqr.plat.common.facade.service.ast.AstPoolService;
import com.abssqr.plat.test.BaseAutoTests;
import com.abssqr.test.annotation.XTest;
import com.abssqr.test.icase.ICase;
......
......@@ -5,7 +5,7 @@ package com.abssqr.plat.test.unittest.astPool; /**
import com.abssqr.plat.common.facade.param.astPool.AstPoolOprParam;
import com.abssqr.plat.common.facade.service.AstPoolService;
import com.abssqr.plat.common.facade.service.ast.AstPoolService;
import com.abssqr.plat.test.BaseAutoTests;
import com.abssqr.test.annotation.XTest;
import com.abssqr.test.icase.ICase;
......
package com.abssqr.plat.test.unittest.astPool;
import com.abssqr.plat.common.facade.result.astPool.AstPoolVO;
import com.abssqr.plat.common.facade.service.AstPoolService;
import com.abssqr.plat.common.facade.service.ast.AstPoolService;
import com.abssqr.plat.test.BaseAutoTests;
import com.abssqr.test.annotation.XTest;
import com.abssqr.test.icase.ICase;
......
......@@ -3,7 +3,7 @@ package com.abssqr.plat.test.unittest.astPool;
import com.abssqr.plat.common.facade.param.astPool.AstPoolPageQryParam;
import com.abssqr.plat.common.facade.result.BasePage;
import com.abssqr.plat.common.facade.result.astPool.AstPoolVO;
import com.abssqr.plat.common.facade.service.AstPoolService;
import com.abssqr.plat.common.facade.service.ast.AstPoolService;
import com.abssqr.plat.test.BaseAutoTests;
import com.abssqr.test.annotation.XTest;
import com.abssqr.test.icase.ICase;
......
......@@ -12,6 +12,7 @@ import java.util.Map;
import cn.hutool.core.util.StrUtil;
import com.abssqr.plat.common.facade.enums.AstScreenRuleTypeEnum;
import com.abssqr.plat.common.facade.enums.AstTypeEnum;
import com.abssqr.plat.common.facade.enums.LoanFieldEnum;
import com.general.system.common.model.IEnum;
import com.general.system.common.util.LogUtil;
import com.general.system.modular.result.DictResult;
......@@ -42,6 +43,8 @@ public class DictConfigRealize extends DictStaticConfig {
// 渠道编号
dictMap.put("astType", AstTypeEnum.values());
dictMap.put("astScreenRuleType", AstScreenRuleTypeEnum.values());
dictMap.put("loanField", LoanFieldEnum.values());
return dictMap;
}
......
package com.abssqr.plat.web.controller.ast;
import com.abssqr.plat.common.facade.param.astPool.AstPoolOprParam;
import com.abssqr.plat.common.facade.service.AstPoolService;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.abssqr.plat.common.facade.enums.LoanFieldEnum;
import com.abssqr.plat.common.facade.param.ast.AstDownLoadParam;
import com.abssqr.plat.common.facade.service.ast.AstPoolService;
import com.abssqr.plat.common.facade.service.ast.AstService;
import com.general.enhanced.controller.annotation.RestJsonController;
import com.general.system.common.model.BaseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
@RestJsonController
@RequestMapping("ast")
public class AstController {
@Autowired
private AstPoolService astPoolService;
private AstService astService;
@GetMapping("ast/getField.json")
public BaseResult<LoanFieldEnum> getField(){
return BaseResult.success(LoanFieldEnum.values());
}
@PostMapping("query.json")
public BaseResult add(@RequestBody AstPoolOprParam astPoolOprParam){
return BaseResult.success(astPoolService.add(astPoolOprParam));
@PostMapping("ast/downLoadLoans")
public void downLoadPackExcel(@RequestBody AstDownLoadParam astDownLoadParam,HttpServletResponse response){
astService.downLoadAstFile(astDownLoadParam,response);
}
}
......@@ -6,7 +6,7 @@ import com.abssqr.plat.common.facade.param.astPool.AstPoolPageQryParam;
import com.abssqr.plat.common.facade.result.BasePage;
import com.abssqr.plat.common.facade.result.ast.AstPoolLoanVO;
import com.abssqr.plat.common.facade.result.astPool.AstPoolVO;
import com.abssqr.plat.common.facade.service.AstPoolService;
import com.abssqr.plat.common.facade.service.ast.AstPoolService;
import com.general.enhanced.controller.annotation.RestJsonController;
import com.general.system.common.model.BaseResult;
import org.springframework.beans.factory.annotation.Autowired;
......
......@@ -356,6 +356,13 @@
<artifactId>commons-dbutils</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.1</version>
</dependency>
</dependencies>
</dependencyManagement>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment