Commit 4f6fb005 by 王德峰

资产包详情

parent af0f00bb
......@@ -7,29 +7,26 @@ package com.abssqr.plat.biz.api.ast;
import com.abssqr.plat.biz.support.ServiceSupport;
import com.abssqr.plat.common.dal.mysql.auto.paging.AstPackPagePage;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.AstPackItem;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.LoanPackRelSummary;
import com.abssqr.plat.common.facade.enums.AstScreenRuleTypeEnum;
import com.abssqr.plat.common.facade.param.ast.AstPackOprParam;
import com.abssqr.plat.common.facade.param.ast.AstPackQryParam;
import com.abssqr.plat.common.facade.result.BasePage;
import com.abssqr.plat.common.facade.result.pack.AstPackListVO;
import com.abssqr.plat.common.facade.result.pack.AstPackVO;
import com.abssqr.plat.common.facade.service.ast.AstPackService;
import com.abssqr.plat.common.facade.validation.Valid;
import com.abssqr.plat.common.model.convertor.LoanConvert;
import com.abssqr.plat.common.model.convertor.vo.AstPackListVOConvert;
import com.abssqr.plat.common.model.convertor.web.AstPackWebConvert;
import com.abssqr.plat.common.model.domain.ast.AstPack;
import com.abssqr.plat.common.model.exception.AbssqrBizException;
import com.abssqr.plat.common.model.repo.ast.AstPackRepo;
import com.abssqr.plat.core.service.ast.AstPackManager;
import com.general.system.common.util.VarChecker;
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author xiachenxiang
* @version com.abssqr.plat.biz.api.ast: AstPackServiceImpl.java, v 0.1 2020-04-18 3:13 PM xiachenxiang Exp $
......@@ -37,9 +34,9 @@ import java.util.List;
@Service
public class AstPackServiceImpl extends ServiceSupport implements AstPackService {
@Autowired
private AstPackManager astPackManager;
AstPackManager astPackManager;
@Autowired
private AstPackRepo astPackRepository;
AstPackRepo astPackRepository;
@Override
public String edit(@Valid AstPackOprParam param) {
......@@ -56,7 +53,7 @@ public class AstPackServiceImpl extends ServiceSupport implements AstPackService
}
});
}
return this.doOpr(param, () -> astPackManager.add(param));
return this.doOpr(param, () -> astPackManager.add(AstPackWebConvert.param2Model(param)));
}
@Override
......@@ -72,4 +69,17 @@ public class AstPackServiceImpl extends ServiceSupport implements AstPackService
});
}
@Override
public AstPackVO get(AstPackQryParam astPackQryParam) {
VarChecker.checkNotEmpty(astPackQryParam.getPackNo(), "资产包编号必填");
AstPack astPack = astPackManager.get(astPackQryParam.getPackNo());
AstPackVO result = AstPackWebConvert.model2VO(astPack);
if(astPack!=null) {
LoanPackRelSummary summary = astPackRepository.sumAstPack(astPack.getPackNo());
result.setAllCnt(summary.getAllCnt());
result.setPrinBal(summary.getPrinBal());
}
return result;
}
}
<!DOCTYPE table SYSTEM "../config/table-config-1.0.dtd">
<table sqlname="abs_ast_pack" physicalName="abs_ast_pack" remark="资产包">
<column name="AVAL_AMT" javatype="com.general.system.common.model.Money" jdbctype="DECIMAL" remark="资产包规模"/>
<!-- 特殊字符说明 &lt;&gt; <> -->
<!-- baseSql option中 select * 会自动替换为 include -->
<sql id="Base_Column_List">
......
<!DOCTYPE table SYSTEM "../config/table-config-1.0.dtd">
<table sqlname="abs_loan_pack_rel" physicalName="abs_loan_pack_rel" remark="ABS_LOAN_PACK_REL">
<!-- 特殊字符说明 &lt;&gt; <> -->
<!-- baseSql option中 select * 会自动替换为 include -->
<sql id="Base_Column_List">
BACK_COST,BACK_PRIN,AST_NO,BACK_NO,PACK_NO
,STATUS,GMT_CREATE,GMT_MODIFIED,REPAY_FINAL_DATE,BACK_RATE
</sql>
<!-- baseSql option中 select sf.* 会自动替换为 include -->
<sql id="Base_SF_Column_List">
sf.BACK_COST,sf.BACK_PRIN,sf.AST_NO,sf.BACK_NO,sf.PACK_NO
,sf.STATUS,sf.GMT_CREATE,sf.GMT_MODIFIED,sf.REPAY_FINAL_DATE,sf.BACK_RATE
</sql>
<operation name="insert" paramtype="object" remark="插入表:abs_loan_pack_rel" >
<![CDATA[
INSERT INTO abs_loan_pack_rel(
BACK_COST
,BACK_PRIN
,AST_NO
,BACK_NO
,PACK_NO
,STATUS
,GMT_CREATE
,GMT_MODIFIED
,REPAY_FINAL_DATE
,BACK_RATE
)VALUES(
#{backCost,jdbcType=DECIMAL}
, #{backPrin,jdbcType=DECIMAL}
, #{astNo,jdbcType=VARCHAR}
, #{backNo,jdbcType=VARCHAR}
, #{packNo,jdbcType=VARCHAR}
, #{status,jdbcType=VARCHAR}
, sysdate
, sysdate
, #{repayFinalDate,jdbcType=DATE}
, #{backRate,jdbcType=DECIMAL}
)
]]>
</operation>
<!-- foreach 可以自定义类型,paramtype="primitive" foreach->javatype="自己书写的类" -->
<!-- 只有一个参数且为List时必须将参数命名为list -->
<operation name="insertBatch" paramtype="objectList" remark="批量插入表:abs_loan_pack_rel" >
<foreach collection="list" item="item" separator=";">
INSERT INTO abs_loan_pack_rel(
BACK_COST
,BACK_PRIN
,AST_NO
,BACK_NO
,PACK_NO
,STATUS
,GMT_CREATE
,GMT_MODIFIED
,REPAY_FINAL_DATE
,BACK_RATE
)VALUES
(
#{item.backCost,jdbcType=DECIMAL}
, #{item.backPrin,jdbcType=DECIMAL}
, #{item.astNo,jdbcType=VARCHAR}
, #{item.backNo,jdbcType=VARCHAR}
, #{item.packNo,jdbcType=VARCHAR}
, #{item.status,jdbcType=VARCHAR}
, sysdate
, sysdate
, #{item.repayFinalDate,jdbcType=DATE}
, #{item.backRate,jdbcType=DECIMAL}
)
</foreach>
</operation>
<!-- 不推荐使用全 update 有需要自己打开
<operation name="update" paramtype="object" remark="更新表:abs_loan_pack_rel" >
<![CDATA[
UPDATE abs_loan_pack_rel
SET
BACK_COST = #{backCost,jdbcType=DECIMAL}
,BACK_PRIN = #{backPrin,jdbcType=DECIMAL}
,BACK_NO = #{backNo,jdbcType=VARCHAR}
,GMT_MODIFIED = sysdate
,REPAY_FINAL_DATE = #{repayFinalDate,jdbcType=DATE}
,BACK_RATE = #{backRate,jdbcType=DECIMAL}
WHERE
STATUS = #{status,jdbcType=VARCHAR}
AND PACK_NO = #{packNo,jdbcType=VARCHAR}
AND AST_NO = #{astNo,jdbcType=VARCHAR}
]]>
</operation>
-->
<operation name="deleteByAbsLoanPackRelPk" remark="根据主键删除数据:abs_loan_pack_rel">
<![CDATA[
DELETE FROM abs_loan_pack_rel
WHERE
STATUS = #{status,jdbcType=VARCHAR}
AND PACK_NO = #{packNo,jdbcType=VARCHAR}
AND AST_NO = #{astNo,jdbcType=VARCHAR}
]]>
</operation>
<operation name="getByAbsLoanPackRelPk" multiplicity="one" remark="根据主键获取数据:abs_loan_pack_rel">
SELECT *
FROM abs_loan_pack_rel
WHERE
<![CDATA[
STATUS = #{status,jdbcType=VARCHAR}
AND PACK_NO = #{packNo,jdbcType=VARCHAR}
AND AST_NO = #{astNo,jdbcType=VARCHAR}
]]>
</operation>
<!-- 根据普通索引查询数据 -->
<operation name="queryByLoanPackRelPack" multiplicity="many" remark="根据普通索引LoanPackRelPack获取数据:abs_loan_pack_rel">
SELECT *
FROM abs_loan_pack_rel
WHERE
<![CDATA[
PACK_NO = #{packNo,jdbcType=VARCHAR}
]]>
</operation>
<!-- 根据普通索引查询数据 -->
<resultmap name="LoanPackRelSumResultMap" type="LoanPackRelSummary">
<column name="all_cnt" javatype="Long" jdbctype="NUMBER" remark="剩余资产笔数"/>
<column name="prin_bal" javatype="com.general.system.common.model.Money" jdbctype="NUMBER" remark="剩余资产本金"/>
</resultmap>
<operation name="sumAstByPack" multiplicity="one" resultmap="LoanPackRelSumResultMap" remark="根据普通索引LoanPackRelPack获取数据:abs_loan_pack_rel">
SELECT count(*) all_cnt,sum(PRIN_BAL+OVD_PRIN_BAL) prin_bal
FROM abs_loan_pack_rel rel,abs_loan l
WHERE
<![CDATA[
l.ast_no = rel.ast_no
AND rel.status = 'in'
AND rel.PACK_NO = #{packNo,jdbcType=VARCHAR}
AND l.STATUS in ('nor','ovd')
]]>
</operation>
</table>
......@@ -156,6 +156,9 @@ public class BasePage<T> {
* @param limit
*/
public void setLimit(int limit) {
if(limit > 10000){
throw new RuntimeException("非法分页请求");
}
this.limit = limit;
}
......
......@@ -4,16 +4,18 @@
result.setId(param.getId());
//avalAmt 规模
result.setAvalAmt(param.getAvalAmt());
//type 资产包类型: 1. 正常 NORMAL 2.默认(虚拟) DEFAULT
result.setType(param.getType());
//packNo 资产包编号
result.setPackNo(param.getPackNo());
//planNo 产品编号
result.setPlanNo(param.getPlanNo());
//status 状态 1.初始化 INIT 2.筛选中 EXEC 3.筛选完成 SCREEN_FIS 4.已封包 PACK 5.已解包 UNPACK 6.已拆包 BREAK 7.已发行 PUBLISH
result.setStatus(param.getStatus());
//astType 准入资产代码
result.setAstType(param.getAstType());
//packName 资产包名称
result.setPackName(param.getPackName());
//packType 资产包类型: 1. 正常 NORMAL 2.默认(虚拟) DEFAULT
result.setPackType(param.getPackType());
//astPoolNo 资产池编号
result.setAstPoolNo(param.getAstPoolNo());
//packDate 封包日
......@@ -28,11 +30,12 @@
//id
//avalAmt 规模
//type 资产包类型: 1. 正常 NORMAL 2.默认(虚拟) DEFAULT
//packNo 资产包编号
//planNo 产品编号
//status 状态 1.初始化 INIT 2.筛选中 EXEC 3.筛选完成 SCREEN_FIS 4.已封包 PACK 5.已解包 UNPACK 6.已拆包 BREAK 7.已发行 PUBLISH
//astType 准入资产代码
//packName 资产包名称
//packType 资产包类型: 1. 正常 NORMAL 2.默认(虚拟) DEFAULT
//astPoolNo 资产池编号
//packDate 封包日
//gmtCreate 创建时间
......
//id 自增ID
//id 主键
result.setId(param.getId());
//astNo 内部资产编号
result.setAstNo(param.getAstNo());
//ownOrg 所属机构(计划)
result.setOwnOrg(param.getOwnOrg());
//context 扩展属性
result.setContext(param.getContext());
//managerOrgCode 管理机构
result.setManagerOrgCode(param.getManagerOrgCode());
//slice 是否已切片
result.setSlice(param.getSlice());
//termNo 期次号
result.setTermNo(param.getTermNo());
//endDate 分期结束日期-即还款日(YYYYMMDD)
result.setEndDate(param.getEndDate());
//prodNo 外部产品码
result.setProdNo(param.getProdNo());
//astType 准入资产代码
result.setAstType(param.getAstType());
//astPoolNo 资产池编号
result.setAstPoolNo(param.getAstPoolNo());
//astPoolName 资产池名称
result.setAstPoolName(param.getAstPoolName());
//gmtCreate 创建时间
result.setGmtCreate(param.getGmtCreate());
//startDate 分期开始日期(YYYYMMDD)
result.setStartDate(param.getStartDate());
//gmtModified 修改时间
//gmtModified 更新时间
result.setGmtModified(param.getGmtModified());
//id 自增ID
//astNo 内部资产编号
//ownOrg 所属机构(计划)
//context 扩展属性
//managerOrgCode 管理机构
//slice 是否已切片
//termNo 期次号
//endDate 分期结束日期-即还款日(YYYYMMDD)
//id 主键
//prodNo 外部产品码
//astType 准入资产代码
//astPoolNo 资产池编号
//astPoolName 资产池名称
//gmtCreate 创建时间
//startDate 分期开始日期(YYYYMMDD)
//gmtModified 修改时间
//gmtModified 更新时间
}
//backCost 赎回价格
result.setBackCost(param.getBackCost());
//backPrin 赎回本金
result.setBackPrin(param.getBackPrin());
//astNo 资产编号
result.setAstNo(param.getAstNo());
//backNo 赎回编号
result.setBackNo(param.getBackNo());
//packNo 资产包编号
result.setPackNo(param.getPackNo());
//status 状态 归属 IN 赎回 BACK
result.setStatus(param.getStatus());
//gmtCreate 创建时间
result.setGmtCreate(param.getGmtCreate());
//gmtModified 更新时间
result.setGmtModified(param.getGmtModified());
//repayFinalDate 还款最后归属日
result.setRepayFinalDate(param.getRepayFinalDate());
//backRate 赎回定价
result.setBackRate(param.getBackRate());
//backCost 赎回价格
//backPrin 赎回本金
//astNo 资产编号
//backNo 赎回编号
//packNo 资产包编号
//status 状态 归属 IN 赎回 BACK
//gmtCreate 创建时间
//gmtModified 更新时间
//repayFinalDate 还款最后归属日
//backRate 赎回定价
}
......@@ -88,6 +88,11 @@ public class AbssqrCoreConstants{
public static final String Base_SF_Column_List = "sf.ID,sf.TFR_AMT,sf.TFR_PRIN_BAL,sf.MEMO,sf.AST_NO,sf.TERM_NO,sf.SEQ_NO,sf.TFR_OUT,sf.BATCH_NO,sf.TFR_PACK,sf.LAST_HOST,sf.TASK_STATUS,sf.EXEC_TIMES,sf.TFR_DATE,sf.GMT_CREATE,sf.AST_END_DATE,sf.GMT_MODIFIED,sf.LAST_EXEC_TIME,sf.NEXT_EXEC_TIME, sf.TFR_INTR_BAL,sf.TFR_PENAL_FEE_BAL,sf.RISK_CL,sf.PRIN_RATE,sf.INTR_RATE,sf.PENAL_FEE_RATE,sf.PACK_TYPE";
public static final String Base_Column_List = "ID,TFR_AMT,TFR_PRIN_BAL,MEMO,AST_NO,TERM_NO, SEQ_NO,TFR_OUT,BATCH_NO,TFR_PACK, LAST_HOST,TASK_STATUS,EXEC_TIMES,TFR_DATE,GMT_CREATE, AST_END_DATE,GMT_MODIFIED,LAST_EXEC_TIME,NEXT_EXEC_TIME, TFR_INTR_BAL,TFR_PENAL_FEE_BAL,RISK_CL,PRIN_RATE,INTR_RATE,PENAL_FEE_RATE,PACK_TYPE";
}
public static class ABS_LOAN_PACK_REL{
public static final String tableName="ABS_LOAN_PACK_REL";
public static final String Base_SF_Column_List = "sf.BACK_COST,sf.BACK_PRIN,sf.AST_NO,sf.BACK_NO,sf.PACK_NO ,sf.STATUS,sf.GMT_CREATE,sf.GMT_MODIFIED,sf.REPAY_FINAL_DATE,sf.BACK_RATE";
public static final String Base_Column_List = "BACK_COST,BACK_PRIN,AST_NO,BACK_NO,PACK_NO ,STATUS,GMT_CREATE,GMT_MODIFIED,REPAY_FINAL_DATE,BACK_RATE";
}
public static class ABS_PLAN_REPORT_ENTITY_STAT{
public static final String tableName="ABS_PLAN_REPORT_ENTITY_STAT";
public static final String Base_SF_Column_List = "sf.AST_CHG,sf.FEE_AMT,sf.INTR_AMT,sf.PRIN_AMT,sf.OVD_FEE_AMT ,sf.OVD_INTR_AMT,sf.OVD_PRIN_AMT,sf.FEE_PENAL_AMT,sf.INTR_PENAL_AMT,sf.PRIN_PENAL_AMT ,sf.PLAN_NO,sf.STAT_VAL,sf.STAT_TYPE,sf.EVENT_CODE,sf.ACCOUNT_DATE,sf.COST,sf.ORG_DISTPFT_AMT";
......@@ -244,8 +249,8 @@ public class AbssqrCoreConstants{
}
public static class ABS_AST_POOL{
public static final String tableName="ABS_AST_POOL";
public static final String Base_SF_Column_List = "sf.ID,sf.MANAGER_ORG_CODE,sf.AST_NO, sf.TERM_NO,sf.END_DATE,sf.START_DATE, sf.GMT_CREATE,sf.GMT_MODIFIED,sf.CONTEXT,sf.BIZ_DATE ,sf.OWN_ORG,sf.SLICE";
public static final String Base_Column_List = "ID,MANAGER_ORG_CODE,AST_NO, TERM_NO,END_DATE,START_DATE, GMT_CREATE,GMT_MODIFIED,CONTEXT,OWN_ORG,SLICE";
public static final String Base_SF_Column_List = "sf.ID,sf.AST_POOL_NO,sf.GMT_CREATE,sf.AST_POOL_NAME,sf.AST_TYPE ,PROD_NO ,sf.GMT_MODIFIED";
public static final String Base_Column_List = "ID,AST_POOL_NO,GMT_CREATE,AST_POOL_NAME,AST_TYPE ,PROD_NO ,GMT_MODIFIED";
}
public static class ABS_BIZ_DATA_CHANGE{
public static final String tableName="ABS_BIZ_DATA_CHANGE";
......@@ -259,8 +264,8 @@ public class AbssqrCoreConstants{
}
public static class ABS_AST_PACK{
public static final String tableName="ABS_AST_PACK";
public static final String Base_SF_Column_List = "sf.ID,sf.AVAL_AMT,sf.TYPE,sf.PACK_NO,sf.PLAN_NO ,sf.STATUS,sf.PACK_NAME,sf.AST_POOL_NO,sf.PACK_DATE,sf.GMT_CREATE ,sf.GMT_MODIFIED,sf.PACK_SUBMIT_DATE";
public static final String Base_Column_List = "ID,AVAL_AMT,TYPE,PACK_NO,PLAN_NO ,STATUS,PACK_NAME,AST_POOL_NO,PACK_DATE,GMT_CREATE ,GMT_MODIFIED,PACK_SUBMIT_DATE";
public static final String Base_SF_Column_List = "sf.ID,sf.AVAL_AMT,sf.PACK_TYPE,sf.PACK_NO,sf.PLAN_NO ,sf.STATUS,sf.PACK_NAME,sf.AST_POOL_NO,sf.PACK_DATE,sf.GMT_CREATE ,sf.GMT_MODIFIED,sf.PACK_SUBMIT_DATE,sf.AST_TYPE";
public static final String Base_Column_List = "ID,AVAL_AMT,PACK_TYPE,PACK_NO,PLAN_NO ,STATUS,PACK_NAME,AST_POOL_NO,PACK_DATE,GMT_CREATE ,GMT_MODIFIED,PACK_SUBMIT_DATE,AST_TYPE";
}
public static class ABS_PLAN_REPORT_ITEM{
public static final String tableName="ABS_PLAN_REPORT_ITEM";
......
package com.abssqr.plat.common.dal.mysql.auto.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import com.abssqr.plat.common.dal.mysql.auto.dataobject.LoanPackRelDO;
import java.util.List;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.LoanPackRelSummary;
import com.abssqr.plat.common.dal.mysql.auto.mapper.LoanPackRelDOMapper;
/**
* The Table abs_loan_pack_rel.
* ABS_LOAN_PACK_REL
*/
@Repository
public class LoanPackRelDAO{
@Autowired
private LoanPackRelDOMapper loanPackRelDOMapper;
/**
* desc:插入表:abs_loan_pack_rel.<br/>
* @param entity entity
* @return int
*/
public int insert(LoanPackRelDO entity){
return loanPackRelDOMapper.insert(entity);
}
/**
* desc:批量插入表:abs_loan_pack_rel.<br/>
* @param list list
* @return int
*/
public int insertBatch(List<LoanPackRelDO> list){
loanPackRelDOMapper.insertBatch(list);
return list.size();
}
/**
* desc:根据主键删除数据:abs_loan_pack_rel.<br/>
* @param astNo astNo
* @param packNo packNo
* @param status status
* @return int
*/
public int deleteByAbsLoanPackRelPk(String astNo,String packNo,String status){
return loanPackRelDOMapper.deleteByAbsLoanPackRelPk(astNo, packNo, status);
}
/**
* desc:根据主键获取数据:abs_loan_pack_rel.<br/>
* @param astNo astNo
* @param packNo packNo
* @param status status
* @return LoanPackRelDO
*/
public LoanPackRelDO getByAbsLoanPackRelPk(String astNo,String packNo,String status){
return loanPackRelDOMapper.getByAbsLoanPackRelPk(astNo, packNo, status);
}
/**
* desc:根据普通索引LoanPackRelPack获取数据:abs_loan_pack_rel.<br/>
* @param packNo packNo
* @return List<LoanPackRelDO>
*/
public List<LoanPackRelDO> queryByLoanPackRelPack(String packNo){
return loanPackRelDOMapper.queryByLoanPackRelPack(packNo);
}
/**
* desc:根据普通索引LoanPackRelPack获取数据:abs_loan_pack_rel.<br/>
* @param packNo packNo
* @return LoanPackRelSummary
*/
public LoanPackRelSummary sumAstByPack(String packNo){
return loanPackRelDOMapper.sumAstByPack(packNo);
}
}
package com.abssqr.plat.common.dal.mysql.auto.dataobject;
import java.util.Date;
import com.general.system.common.model.Money;
/**
* The table 资产包
......@@ -12,10 +13,6 @@ public class AstPackDO{
*/
private Long id;
/**
* avalAmt 规模.
*/
private Long avalAmt;
/**
* packNo 资产包编号.
*/
private String packNo;
......@@ -59,6 +56,10 @@ public class AstPackDO{
* packSubmitDate 封包提交日.
*/
private Date packSubmitDate;
/**
* avalAmt 规模.
*/
private Money avalAmt;
/**
* Set id .
......@@ -77,22 +78,6 @@ public class AstPackDO{
}
/**
* Set avalAmt 规模.
*/
public void setAvalAmt(Long avalAmt){
this.avalAmt = avalAmt;
}
/**
* Get avalAmt 规模.
*
* @return the string
*/
public Long getAvalAmt(){
return avalAmt;
}
/**
* Set packNo 资产包编号.
*/
public void setPackNo(String packNo){
......@@ -267,4 +252,23 @@ public class AstPackDO{
public Date getPackSubmitDate(){
return packSubmitDate;
}
/**
* Set avalAmt 规模.
*/
public void setAvalAmt(Money avalAmt){
this.avalAmt = avalAmt;
}
/**
* Get avalAmt 规模.
*
* @return the string
*/
public Money getAvalAmt(){
if(avalAmt==null){
return new Money();
}
return avalAmt;
}
}
package com.abssqr.plat.common.dal.mysql.auto.dataobject;
import java.util.Date;
import java.math.BigDecimal;
/**
* The table ABS_LOAN_PACK_REL
*/
public class LoanPackRelDO{
/**
* backCost 赎回价格.
*/
private Long backCost;
/**
* backPrin 赎回本金.
*/
private Long backPrin;
/**
* astNo 资产编号.
*/
private String astNo;
/**
* backNo 赎回编号.
*/
private String backNo;
/**
* packNo 资产包编号.
*/
private String packNo;
/**
* status 状态 归属 IN 赎回 BACK.
*/
private String status;
/**
* gmtCreate 创建时间.
*/
private Date gmtCreate;
/**
* gmtModified 更新时间.
*/
private Date gmtModified;
/**
* repayFinalDate 还款最后归属日.
*/
private Date repayFinalDate;
/**
* backRate 赎回定价.
*/
private BigDecimal backRate;
/**
* Set backCost 赎回价格.
*/
public void setBackCost(Long backCost){
this.backCost = backCost;
}
/**
* Get backCost 赎回价格.
*
* @return the string
*/
public Long getBackCost(){
return backCost;
}
/**
* Set backPrin 赎回本金.
*/
public void setBackPrin(Long backPrin){
this.backPrin = backPrin;
}
/**
* Get backPrin 赎回本金.
*
* @return the string
*/
public Long getBackPrin(){
return backPrin;
}
/**
* Set astNo 资产编号.
*/
public void setAstNo(String astNo){
this.astNo = astNo;
}
/**
* Get astNo 资产编号.
*
* @return the string
*/
public String getAstNo(){
return astNo;
}
/**
* Set backNo 赎回编号.
*/
public void setBackNo(String backNo){
this.backNo = backNo;
}
/**
* Get backNo 赎回编号.
*
* @return the string
*/
public String getBackNo(){
return backNo;
}
/**
* Set packNo 资产包编号.
*/
public void setPackNo(String packNo){
this.packNo = packNo;
}
/**
* Get packNo 资产包编号.
*
* @return the string
*/
public String getPackNo(){
return packNo;
}
/**
* Set status 状态 归属 IN 赎回 BACK.
*/
public void setStatus(String status){
this.status = status;
}
/**
* Get status 状态 归属 IN 赎回 BACK.
*
* @return the string
*/
public String getStatus(){
return status;
}
/**
* Set gmtCreate 创建时间.
*/
public void setGmtCreate(Date gmtCreate){
this.gmtCreate = gmtCreate;
}
/**
* Get gmtCreate 创建时间.
*
* @return the string
*/
public Date getGmtCreate(){
return gmtCreate;
}
/**
* Set gmtModified 更新时间.
*/
public void setGmtModified(Date gmtModified){
this.gmtModified = gmtModified;
}
/**
* Get gmtModified 更新时间.
*
* @return the string
*/
public Date getGmtModified(){
return gmtModified;
}
/**
* Set repayFinalDate 还款最后归属日.
*/
public void setRepayFinalDate(Date repayFinalDate){
this.repayFinalDate = repayFinalDate;
}
/**
* Get repayFinalDate 还款最后归属日.
*
* @return the string
*/
public Date getRepayFinalDate(){
return repayFinalDate;
}
/**
* Set backRate 赎回定价.
*/
public void setBackRate(BigDecimal backRate){
this.backRate = backRate;
}
/**
* Get backRate 赎回定价.
*
* @return the string
*/
public BigDecimal getBackRate(){
return backRate;
}
}
package com.abssqr.plat.common.dal.mysql.auto.mapper;
import com.abssqr.plat.common.dal.mysql.auto.dataobject.LoanPackRelDO;
import java.util.List;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.LoanPackRelSummary;
import org.apache.ibatis.annotations.Param;
/**
* 由于需要对分页支持,请直接使用对应的DAO类
* The Table abs_loan_pack_rel.
* ABS_LOAN_PACK_REL
*/
public interface LoanPackRelDOMapper{
/**
* desc:插入表:abs_loan_pack_rel.<br/>
* @param entity entity
* @return int
*/
int insert(LoanPackRelDO entity);
/**
* desc:批量插入表:abs_loan_pack_rel.<br/>
* @param list list
* @return int
*/
int insertBatch(List<LoanPackRelDO> list);
/**
* desc:根据主键删除数据:abs_loan_pack_rel.<br/>
* @param astNo astNo
* @param packNo packNo
* @param status status
* @return int
*/
int deleteByAbsLoanPackRelPk(@Param("astNo")String astNo,@Param("packNo")String packNo,@Param("status")String status);
/**
* desc:根据主键获取数据:abs_loan_pack_rel.<br/>
* @param astNo astNo
* @param packNo packNo
* @param status status
* @return LoanPackRelDO
*/
LoanPackRelDO getByAbsLoanPackRelPk(@Param("astNo")String astNo,@Param("packNo")String packNo,@Param("status")String status);
/**
* desc:根据普通索引LoanPackRelPack获取数据:abs_loan_pack_rel.<br/>
* @param packNo packNo
* @return List<LoanPackRelDO>
*/
List<LoanPackRelDO> queryByLoanPackRelPack(@Param("packNo")String packNo);
/**
* desc:根据普通索引LoanPackRelPack获取数据:abs_loan_pack_rel.<br/>
* @param packNo packNo
* @return LoanPackRelSummary
*/
LoanPackRelSummary sumAstByPack(@Param("packNo")String packNo);
}
......@@ -152,6 +152,9 @@ public class BasePage<T> {
* @param limit
*/
public void setLimit(int limit) {
if(limit > 10000){
throw new RuntimeException("非法分页请求");
}
this.limit = limit;
}
......
package com.abssqr.plat.common.dal.mysql.auto.resultmap;
import java.io.Serializable;
import com.general.system.common.model.Money;
/**
* The table LoanPackRelSummary
*/
public class LoanPackRelSummary implements Serializable {
private static final long serialVersionUID = -1L;
/**
* allCnt 剩余资产笔数.
*/
private Long allCnt;
/**
* prinBal 剩余资产本金.
*/
private Money prinBal;
/**
* Set allCnt 剩余资产笔数.
*/
public void setAllCnt(Long allCnt){
this.allCnt = allCnt;
}
/**
* Get allCnt 剩余资产笔数.
*
* @return the string
*/
public Long getAllCnt(){
return allCnt;
}
/**
* Set prinBal 剩余资产本金.
*/
public void setPrinBal(Money prinBal){
this.prinBal = prinBal;
}
/**
* Get prinBal 剩余资产本金.
*
* @return the string
*/
public Money getPrinBal(){
return prinBal;
}
}
......@@ -4,7 +4,6 @@
<!-- 自动生成,请修改 ABS_AST_PACK.xml -->
<resultMap id="BaseResultMap" type="com.abssqr.plat.common.dal.mysql.auto.dataobject.AstPackDO">
<id column="ID" property="id" jdbcType="DECIMAL" javaType="Long"/>
<result column="AVAL_AMT" property="avalAmt" jdbcType="DECIMAL" javaType="Long"/>
<result column="PACK_NO" property="packNo" jdbcType="VARCHAR" javaType="String"/>
<result column="PLAN_NO" property="planNo" jdbcType="VARCHAR" javaType="String"/>
<result column="STATUS" property="status" jdbcType="VARCHAR" javaType="String"/>
......@@ -16,6 +15,7 @@
<result column="GMT_CREATE" property="gmtCreate" jdbcType="DATE" javaType="java.util.Date"/>
<result column="GMT_MODIFIED" property="gmtModified" jdbcType="DATE" javaType="java.util.Date"/>
<result column="PACK_SUBMIT_DATE" property="packSubmitDate" jdbcType="DATE" javaType="java.util.Date"/>
<result column="AVAL_AMT" property="avalAmt" jdbcType="DECIMAL" javaType="com.general.system.common.model.Money"/>
</resultMap>
<resultMap id="AstPackResultMap" type="com.abssqr.plat.common.dal.mysql.auto.resultmap.AstPackItem" >
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.abssqr.plat.common.dal.mysql.auto.mapper.LoanPackRelDOMapper">
<!-- 自动生成,请修改 ABS_LOAN_PACK_REL.xml -->
<resultMap id="BaseResultMap" type="com.abssqr.plat.common.dal.mysql.auto.dataobject.LoanPackRelDO">
<result column="BACK_COST" property="backCost" jdbcType="DECIMAL" javaType="Long"/>
<result column="BACK_PRIN" property="backPrin" jdbcType="DECIMAL" javaType="Long"/>
<result column="AST_NO" property="astNo" jdbcType="VARCHAR" javaType="String"/>
<result column="BACK_NO" property="backNo" jdbcType="VARCHAR" javaType="String"/>
<result column="PACK_NO" property="packNo" jdbcType="VARCHAR" javaType="String"/>
<result column="STATUS" property="status" jdbcType="VARCHAR" javaType="String"/>
<result column="GMT_CREATE" property="gmtCreate" jdbcType="DATE" javaType="java.util.Date"/>
<result column="GMT_MODIFIED" property="gmtModified" jdbcType="DATE" javaType="java.util.Date"/>
<result column="REPAY_FINAL_DATE" property="repayFinalDate" jdbcType="DATE" javaType="java.util.Date"/>
<result column="BACK_RATE" property="backRate" jdbcType="DECIMAL" javaType="java.math.BigDecimal"/>
</resultMap>
<resultMap id="LoanPackRelSumResultMap" type="com.abssqr.plat.common.dal.mysql.auto.resultmap.LoanPackRelSummary" >
<result column="all_cnt" property="allCnt" javaType="Long"/>
<result column="prin_bal" property="prinBal" javaType="com.general.system.common.model.Money"/>
</resultMap>
<sql id="Base_SF_Column_List">
sf.BACK_COST,sf.BACK_PRIN,sf.AST_NO,sf.BACK_NO,sf.PACK_NO
,sf.STATUS,sf.GMT_CREATE,sf.GMT_MODIFIED,sf.REPAY_FINAL_DATE,sf.BACK_RATE
</sql>
<sql id="Base_Column_List">
BACK_COST,BACK_PRIN,AST_NO,BACK_NO,PACK_NO
,STATUS,GMT_CREATE,GMT_MODIFIED,REPAY_FINAL_DATE,BACK_RATE
</sql>
<!--插入表:abs_loan_pack_rel mydalgen自动生成,请勿修改-->
<insert id="insert" >
<![CDATA[
INSERT INTO abs_loan_pack_rel(
BACK_COST
,BACK_PRIN
,AST_NO
,BACK_NO
,PACK_NO
,STATUS
,GMT_CREATE
,GMT_MODIFIED
,REPAY_FINAL_DATE
,BACK_RATE
)VALUES(
#{backCost,jdbcType=DECIMAL}
, #{backPrin,jdbcType=DECIMAL}
, #{astNo,jdbcType=VARCHAR}
, #{backNo,jdbcType=VARCHAR}
, #{packNo,jdbcType=VARCHAR}
, #{status,jdbcType=VARCHAR}
, sysdate
, sysdate
, #{repayFinalDate,jdbcType=DATE}
, #{backRate,jdbcType=DECIMAL}
)
]]>
</insert>
<!--批量插入表:abs_loan_pack_rel mydalgen自动生成,请勿修改-->
<insert id="insertBatch" >
begin
<foreach collection="list" item="item" separator=";">
INSERT INTO abs_loan_pack_rel(
BACK_COST
,BACK_PRIN
,AST_NO
,BACK_NO
,PACK_NO
,STATUS
,GMT_CREATE
,GMT_MODIFIED
,REPAY_FINAL_DATE
,BACK_RATE
)VALUES
(
#{item.backCost,jdbcType=DECIMAL}
, #{item.backPrin,jdbcType=DECIMAL}
, #{item.astNo,jdbcType=VARCHAR}
, #{item.backNo,jdbcType=VARCHAR}
, #{item.packNo,jdbcType=VARCHAR}
, #{item.status,jdbcType=VARCHAR}
, sysdate
, sysdate
, #{item.repayFinalDate,jdbcType=DATE}
, #{item.backRate,jdbcType=DECIMAL}
)
</foreach>
;end;
</insert>
<!--根据主键删除数据:abs_loan_pack_rel mydalgen自动生成,请勿修改-->
<delete id="deleteByAbsLoanPackRelPk" >
<![CDATA[
DELETE /*MS-ABS-LOAN-PACK-REL-DELETEBYABSLOANPACKRELPK*/ FROM abs_loan_pack_rel
WHERE
STATUS = #{status,jdbcType=VARCHAR}
AND PACK_NO = #{packNo,jdbcType=VARCHAR}
AND AST_NO = #{astNo,jdbcType=VARCHAR}
]]>
</delete>
<!--根据主键获取数据:abs_loan_pack_rel mydalgen自动生成,请勿修改-->
<select id="getByAbsLoanPackRelPk" resultMap="BaseResultMap" >
SELECT /*MS-ABS-LOAN-PACK-REL-GETBYABSLOANPACKRELPK*/ <include refid="Base_Column_List" />
FROM abs_loan_pack_rel
WHERE
<![CDATA[
STATUS = #{status,jdbcType=VARCHAR}
AND PACK_NO = #{packNo,jdbcType=VARCHAR}
AND AST_NO = #{astNo,jdbcType=VARCHAR}
]]>
</select>
<!--根据普通索引LoanPackRelPack获取数据:abs_loan_pack_rel mydalgen自动生成,请勿修改-->
<select id="queryByLoanPackRelPack" resultMap="BaseResultMap" >
SELECT /*MS-ABS-LOAN-PACK-REL-QUERYBYLOANPACKRELPACK*/ <include refid="Base_Column_List" />
FROM abs_loan_pack_rel
WHERE
<![CDATA[
PACK_NO = #{packNo,jdbcType=VARCHAR}
]]>
</select>
<!--根据普通索引LoanPackRelPack获取数据:abs_loan_pack_rel mydalgen自动生成,请勿修改-->
<select id="sumAstByPack" resultMap="LoanPackRelSumResultMap" >
SELECT /*MS-ABS-LOAN-PACK-REL-SUMASTBYPACK*/ count(*) all_cnt,sum(PRIN_BAL+OVD_PRIN_BAL) prin_bal
FROM abs_loan_pack_rel rel,abs_loan l
WHERE
<![CDATA[
l.ast_no = rel.ast_no
AND rel.status = 'in'
AND rel.PACK_NO = #{packNo,jdbcType=VARCHAR}
AND l.STATUS in ('nor','ovd')
]]>
</select>
</mapper>
/**
* abssqr.com Inc.
* Copyright (c) 2017-2020 All Rights Reserved.
*/
package com.abssqr.plat.common.facade.param.ast;
import com.abssqr.plat.common.facade.base.BaseOprParam;
import com.abssqr.plat.common.facade.enums.EventCodeEnum;
/**
*
* @author bangis.wangdf
* @version com.abssqr.plat.common.facade.param.ast: AstPackSealOprParam.java, v 0.1 2020-04-21 13:41 bangis.wangdf Exp $
*/
public class AstPackSealOprParam extends BaseOprParam {
@Override
public EventCodeEnum getEventCode() {
return EventCodeEnum.ADMIN_EDIT;
}
}
/**
* abssqr.com Inc.
* Copyright (c) 2017-2020 All Rights Reserved.
*/
package com.abssqr.plat.common.facade.result.pack;
import java.util.Date;
import java.util.Map;
import com.abssqr.plat.common.facade.enums.AstPackStatusEnum;
import com.abssqr.plat.common.facade.enums.AstPackTypeEnum;
import com.abssqr.plat.common.facade.enums.AstTypeEnum;
import com.general.system.common.model.BaseEntity;
import com.general.system.common.model.Money;
import com.google.common.collect.Maps;
/**
* @author bangis.wangdf
* @version com.abssqr.plat.common.facade.result.pack: AstPackVO.java, v 0.1 2020-04-21 12:53 bangis.wangdf Exp $
*/
public class AstPackVO extends BaseEntity {
/**
* avalAmt 规模.
*/
private Money avalAmt;
/**
* type 资产包类型: 1. 正常 NORMAL 2.默认(虚拟) DEFAULT.
*/
private AstPackTypeEnum packType;
/**
* packNo 资产包编号.
*/
private String packNo;
/**
* planNo 产品编号.
*/
private String planNo;
/**
* status 状态 1.初始化 INIT 2.筛选中 EXEC 3.筛选完成 SCREEN_FIS 4.已封包 PACK 5.已解包 UNPACK 6.已拆包 BREAK 7.已发行 PUBLISH .
*/
private AstPackStatusEnum status;
/**
* packName 资产包名称.
*/
private String packName;
/**
* astPoolNo 资产池编号.
*/
private String astPoolNo;
/**
* packDate 封包日.
*/
private Date packDate;
/**
* packSubmitDate 封包提交日.
*/
private Date packSubmitDate;
/**
* 筛选规则
*/
private Map<String, AstScreenRuleVO> screenRules = Maps.newHashMap();
/**
* 资产类型
*/
private AstTypeEnum astType;
/**
* allCnt 剩余资产笔数.
*/
private Long allCnt;
/**
* prinBal 剩余资产本金.
*/
private Money prinBal;
public Money getAvalAmt() {
return avalAmt;
}
public void setAvalAmt(Money avalAmt) {
this.avalAmt = avalAmt;
}
public AstPackTypeEnum getPackType() {
return packType;
}
public void setPackType(AstPackTypeEnum packType) {
this.packType = packType;
}
public String getPackNo() {
return packNo;
}
public void setPackNo(String packNo) {
this.packNo = packNo;
}
public String getPlanNo() {
return planNo;
}
public void setPlanNo(String planNo) {
this.planNo = planNo;
}
public AstPackStatusEnum getStatus() {
return status;
}
public void setStatus(AstPackStatusEnum status) {
this.status = status;
}
public String getPackName() {
return packName;
}
public void setPackName(String packName) {
this.packName = packName;
}
public String getAstPoolNo() {
return astPoolNo;
}
public void setAstPoolNo(String astPoolNo) {
this.astPoolNo = astPoolNo;
}
public Date getPackDate() {
return packDate;
}
public void setPackDate(Date packDate) {
this.packDate = packDate;
}
public Date getPackSubmitDate() {
return packSubmitDate;
}
public void setPackSubmitDate(Date packSubmitDate) {
this.packSubmitDate = packSubmitDate;
}
public AstTypeEnum getAstType() {
return astType;
}
public void setAstType(AstTypeEnum astType) {
this.astType = astType;
}
public Map<String, AstScreenRuleVO> getScreenRules() {
return screenRules;
}
public void setScreenRules(
Map<String, AstScreenRuleVO> screenRules) {
this.screenRules = screenRules;
}
public Long getAllCnt() {
return allCnt;
}
public void setAllCnt(Long allCnt) {
this.allCnt = allCnt;
}
public Money getPrinBal() {
return prinBal;
}
public void setPrinBal(Money prinBal) {
this.prinBal = prinBal;
}
}
/**
* abssqr.com Inc.
* Copyright (c) 2017-2020 All Rights Reserved.
*/
package com.abssqr.plat.common.facade.result.pack;
import com.general.system.common.model.BaseEntity;
/**
* @author bangis.wangdf
* @version com.abssqr.plat.common.facade.result.pack: AstScreenRuleVO.java, v 0.1 2020-04-21 13:12 bangis.wangdf Exp $
*/
public class AstScreenRuleVO extends BaseEntity {
/**
* leftValue 左值.
*/
private String leftValue;
/**
* rightValue 右值.
*/
private String rightValue;
/**
* leftCondition 左条件: 1.大于 GT 2.大于等于 GE.
*/
private String leftCondition;
/**
* rightCondition 右条件: 1.小于 LT 2.小于等于 LE 3.等于 EQ 4.包含 IN.
*/
private String rightCondition;
public String getLeftValue() {
return leftValue;
}
public void setLeftValue(String leftValue) {
this.leftValue = leftValue;
}
public String getRightValue() {
return rightValue;
}
public void setRightValue(String rightValue) {
this.rightValue = rightValue;
}
public String getLeftCondition() {
return leftCondition;
}
public void setLeftCondition(String leftCondition) {
this.leftCondition = leftCondition;
}
public String getRightCondition() {
return rightCondition;
}
public void setRightCondition(String rightCondition) {
this.rightCondition = rightCondition;
}
}
......@@ -9,6 +9,7 @@ import com.abssqr.plat.common.facade.param.ast.AstPackOprParam;
import com.abssqr.plat.common.facade.param.ast.AstPackQryParam;
import com.abssqr.plat.common.facade.result.BasePage;
import com.abssqr.plat.common.facade.result.pack.AstPackListVO;
import com.abssqr.plat.common.facade.result.pack.AstPackVO;
/**
* 资产包服务
......@@ -29,4 +30,11 @@ public interface AstPackService {
* @return
*/
BasePage<AstPackListVO> getList(AstPackQryParam astPackQryParam);
/**
* 获取资产包详情
* @param astPackQryParam
* @return
*/
AstPackVO get(AstPackQryParam astPackQryParam);
}
......@@ -27,7 +27,7 @@ public class AstPackConvert {
AstPack result = new AstPack();
//avalAmt 规模
result.setAvalAmt(Money.createWithCent(param.getAvalAmt()));
result.setAvalAmt(param.getAvalAmt());
//type 资产包类型: 1. 正常 NORMAL 2.默认(虚拟) DEFAULT
result.setPackType(AstPackTypeEnum.getByCode(param.getPackType()));
//packNo 资产包编号
......@@ -54,7 +54,7 @@ public class AstPackConvert {
AstPackDO result = new AstPackDO();
//avalAmt 规模
result.setAvalAmt(Optional.ofNullable(param.getAvalAmt()).map(Money::getCent).orElse(null));
result.setAvalAmt(param.getAvalAmt());
//type 资产包类型: 1. 正常 NORMAL 2.默认(虚拟) DEFAULT
result.setPackType(Optional.ofNullable(param.getPackType()).map(AstPackTypeEnum::getCode).orElse(null));
//packNo 资产包编号
......
......@@ -5,17 +5,19 @@
package com.abssqr.plat.common.model.convertor;
import java.util.List;
import java.util.Optional;
import com.abssqr.plat.common.dal.mysql.auto.dataobject.AstScreenRuleDO;
import com.abssqr.plat.common.facade.enums.AstScRuleLeftCondEnum;
import com.abssqr.plat.common.facade.enums.AstScRuleRightCondEnum;
import com.abssqr.plat.common.facade.enums.AstScreenRelTypeEnum;
import com.abssqr.plat.common.facade.enums.AstScreenRuleConditionEnum;
import com.abssqr.plat.common.facade.enums.AstScreenRuleTypeEnum;
import com.abssqr.plat.common.facade.model.rule.AstScreenRule;
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import java.util.List;
import java.util.Optional;
/**
* @author yaphet
* @version com.abssqr.plat.common.model.convertor: AstScreenRuleConvert.java, v 0.1 2018-03-29 上午11:52 yaphet Exp $
......@@ -49,12 +51,44 @@ public class AstScreenRuleConvert {
//rightValue 右值
result.setRightValue(param.getRightValue());
//leftCondition 左条件: 1.大于 GT 2.大于等于 GE
result.setLeftCondition(Optional.ofNullable(param.getLeftCondition()).map(AstScreenRuleConditionEnum::getCode).orElse(null));
result.setLeftCondition(Optional.ofNullable(param.getLeftCondition()).map(AstScRuleLeftCondEnum::getCode)
.orElse(null));
//rightCondition 右条件: 1.小于 LT 2.小于等于 LE 3.等于 EQ 4.包含 IN
result.setRightCondition(Optional.ofNullable(param.getRightCondition()).map(AstScreenRuleConditionEnum::getCode).orElse(null));
result.setRightCondition(Optional.ofNullable(param.getRightCondition()).map(AstScRuleRightCondEnum::getCode)
.orElse(null));
return result;
}
public static List<AstScreenRule> convert2ModelList(List<AstScreenRuleDO> params) {
List<AstScreenRule> result = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(params)) {
params.forEach(astScreenRuleDO -> {
result.add(convert2Modes(astScreenRuleDO));
});
}
return result;
}
public static AstScreenRule convert2Modes(AstScreenRuleDO param) {
if (param == null) {
return null;
}
AstScreenRule result = new AstScreenRule();
//relNo 关联编号
result.setRelNo(param.getRelNo());
//relType 关联类型 1.资产打包 PACK
result.setRelType(AstScreenRelTypeEnum.getByCode(param.getRelType()));
//ruleType 规则类型
result.setRuleType(AstScreenRuleTypeEnum.getByCode(param.getRuleType()));
//leftValue 左值
result.setLeftValue(param.getLeftValue());
//rightValue 右值
result.setRightValue(param.getRightValue());
//leftCondition 左条件: 1.大于 GT 2.大于等于 GE
result.setLeftCondition(AstScRuleLeftCondEnum.getByCode(param.getLeftCondition()));
//rightCondition 右条件: 1.小于 LT 2.小于等于 LE 3.等于 EQ 4.包含 IN
result.setRightCondition(AstScRuleRightCondEnum.getByCode(param.getRightCondition()));
return result;
}
}
......@@ -13,18 +13,20 @@ import com.abssqr.plat.common.facade.enums.AstScreenRuleTypeEnum;
import com.abssqr.plat.common.facade.enums.AstTypeEnum;
import com.abssqr.plat.common.facade.model.rule.AstScreenRule;
import com.abssqr.plat.common.facade.param.ast.AstPackOprParam;
import com.abssqr.plat.common.facade.result.pack.AstPackVO;
import com.abssqr.plat.common.facade.result.pack.AstScreenRuleVO;
import com.abssqr.plat.common.model.domain.ast.AstPack;
import org.activiti.editor.language.json.converter.util.CollectionUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
/**
*
* @author bangis.wangdf
* @version com.abssqr.plat.common.model.convertor.web: AstPackParamConvert.java, v 0.1 2020-04-21 11:27 bangis.wangdf Exp $
* @version com.abssqr.plat.common.model.convertor.web: AstPackWebConvert.java, v 0.1 2020-04-21 11:27 bangis.wangdf
* Exp $
*/
public class AstPackParamConvert {
public static AstPack param2Model(AstPackOprParam param){
public class AstPackWebConvert {
public static AstPack param2Model(AstPackOprParam param) {
AstPack result = new AstPack();
result.setPackNo(param.getPackNo());
......@@ -58,4 +60,45 @@ public class AstPackParamConvert {
}
return result;
}
public static AstPackVO model2VO(AstPack param) {
AstPackVO result = new AstPackVO();
if (param != null) {
//avalAmt 规模
result.setAvalAmt(param.getAvalAmt());
//type 资产包类型: 1. 正常 NORMAL 2.默认(虚拟) DEFAULT
result.setPackType(param.getPackType());
//packNo 资产包编号
result.setPackNo(param.getPackNo());
//planNo 产品编号
result.setPlanNo(param.getPlanNo());
//status 状态 1.初始化 INIT 2.筛选中 EXEC 3.筛选完成 SCREEN_FIS 4.已封包 PACK 5.已解包 UNPACK 6.已拆包 BREAK 7.已发行 PUBLISH
result.setStatus(param.getStatus() == AstPackStatusEnum.INIT ? AstPackStatusEnum.EXEC : param.getStatus());
//packName 资产包名称
result.setPackName(param.getPackName());
//astPoolNo 资产池编号
result.setAstPoolNo(param.getAstPoolNo());
//packDate 封包日
result.setPackDate(param.getPackDate());
//packSubmitDate 封包提交日
result.setPackSubmitDate(param.getPackSubmitDate());
if (CollectionUtils.isNotEmpty(param.getScreenRuleList())) {
param.getScreenRuleList().forEach(astScreenRule -> {
result.getScreenRules().put(astScreenRule.getRelType().getCode(), param2RVO(astScreenRule));
});
}
}
return result;
}
public static AstScreenRuleVO param2RVO(AstScreenRule param) {
AstScreenRuleVO result = new AstScreenRuleVO();
if (param != null) {
result.setLeftCondition(param.getLeftCondition() == null ? null : param.getLeftCondition().getCode());
result.setRightCondition(param.getRightCondition() == null ? null : param.getRightCondition().getCode());
result.setLeftValue(param.getLeftValue());
result.setRightValue(param.getRightValue());
}
return result;
}
}
......@@ -7,6 +7,7 @@ package com.abssqr.plat.common.model.repo.ast;
import com.abssqr.plat.common.dal.mysql.auto.dataobject.AstPackDO;
import com.abssqr.plat.common.dal.mysql.auto.paging.AstPackPagePage;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.LoanPackRelSummary;
import com.abssqr.plat.common.facade.param.ast.AstPackQryParam;
import com.abssqr.plat.common.model.domain.ast.AstPack;
......@@ -38,4 +39,10 @@ public interface AstPackRepo {
* @return
*/
AstPackPagePage getList(AstPackQryParam param);
/**
* 汇总资产包情况
* @param packNo
*/
LoanPackRelSummary sumAstPack(String packNo);
}
......@@ -8,7 +8,9 @@ package com.abssqr.plat.common.model.repo.ast.impl;
import java.util.List;
import com.abssqr.plat.common.dal.mysql.auto.dao.AstPackDAO;
import com.abssqr.plat.common.dal.mysql.auto.dao.LoanPackRelDAO;
import com.abssqr.plat.common.dal.mysql.auto.paging.AstPackPagePage;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.LoanPackRelSummary;
import com.abssqr.plat.common.facade.enums.AstPackStatusEnum;
import com.abssqr.plat.common.facade.param.ast.AstPackQryParam;
import com.abssqr.plat.common.model.convertor.AstPackConvert;
......@@ -28,7 +30,8 @@ import org.springframework.stereotype.Component;
public class AstPackRepoImpl implements AstPackRepo {
@Autowired
private AstPackDAO astPackDAO;
@Autowired
private LoanPackRelDAO loanPackRelDAO;
@Override
public AstPack getByAbsPackPackNo(String packNo) {
......@@ -63,4 +66,9 @@ public class AstPackRepoImpl implements AstPackRepo {
page.setCurrPageNo(param.getPageNum());
return astPackDAO.getList(page);
}
@Override
public LoanPackRelSummary sumAstPack(String packNo) {
return loanPackRelDAO.sumAstByPack(packNo);
}
}
......@@ -28,4 +28,11 @@ public interface AstScreenRuleRepo {
* @return
*/
int insertBatch(List<AstScreenRule> list);
/**
* 获取筛选规则
* @param packNo
* @return
*/
List<AstScreenRule> getScreenRuleList(String packNo);
}
......@@ -36,4 +36,10 @@ public class AstScreenRuleRepoImpl implements AstScreenRuleRepo {
return astScreenRuleDAO.insertBatch(AstScreenRuleConvert.convert2DOList(list));
}
@Override
public List<AstScreenRule> getScreenRuleList(String packNo) {
List<AstScreenRuleDO> astScreenRuleDOS = astScreenRuleDAO.queryByAbsAstScreenRuleRelNo(packNo);
return AstScreenRuleConvert.convert2ModelList(astScreenRuleDOS);
}
}
......@@ -5,10 +5,15 @@
package com.abssqr.plat.core.service.ast;
import com.abssqr.plat.common.facade.enums.*;
import java.util.List;
import com.abssqr.plat.common.facade.enums.AstPackStatusEnum;
import com.abssqr.plat.common.facade.enums.AstPackTypeEnum;
import com.abssqr.plat.common.facade.enums.AstScRuleRightCondEnum;
import com.abssqr.plat.common.facade.enums.AstScreenRelTypeEnum;
import com.abssqr.plat.common.facade.enums.AstTypeEnum;
import com.abssqr.plat.common.facade.enums.CommonTaskTypeEnum;
import com.abssqr.plat.common.facade.model.rule.AstScreenRule;
import com.abssqr.plat.common.facade.param.ast.AstPackOprParam;
import com.abssqr.plat.common.model.convertor.web.AstPackParamConvert;
import com.abssqr.plat.common.model.domain.ast.AstPack;
import com.abssqr.plat.common.model.domain.task.CommonTask;
import com.abssqr.plat.common.model.repo.ast.AstPackRepo;
......@@ -21,8 +26,6 @@ import org.assertj.core.util.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xiachenxiang
* @version com.abssqr.plat.core.service.ast: AstPackManager.java, v 0.1 2020-04-18 4:16 PM xiachenxiang Exp $
......@@ -39,26 +42,24 @@ public class AstPackManager {
/**
* 新增资产包
*
* @param param
* @param astPack
* @return
*/
public String add(AstPackOprParam param) {
public String add(AstPack astPack) {
// 1. 校验重复
AstPack astPack = astPackRepository.getByAbsPackPackNo(param.getPackNo());
VarChecker.checkArgument(astPack == null, "资产包已存在{0}", param.getPackNo());
Long cnt = astPackRepository.cntByPackName(param.getPackName());
AstPack checkAstPack = astPackRepository.getByAbsPackPackNo(astPack.getPackNo());
VarChecker.checkArgument(astPack == null, "资产包已存在{0}", astPack.getPackNo());
Long cnt = astPackRepository.cntByPackName(checkAstPack.getPackName());
VarChecker.checkEquals(cnt, 0L, "资产包名重复");
// 2. 保存资产包
astPack = AstPackParamConvert.param2Model(param);
astPackRepository.insert(astPack);
// 3. 保存筛选规则
astScreenRuleRepo.insertBatch(astPack.getScreenRuleList());
// 4. 插入资产筛选任务
CommonTask commonTask = CommonTaskUtil.buildCommonTaskWithContext(param.getPackNo(),CommonTaskTypeEnum.PACK_MATCH,param.getAstPoolNo());
CommonTask commonTask = CommonTaskUtil.buildCommonTaskWithContext(astPack.getPackNo(),CommonTaskTypeEnum.PACK_MATCH,astPack.getAstPoolNo());
commonTaskRepository.create(commonTask);
return param.getPackNo();
return astPack.getPackNo();
}
/**
......@@ -78,6 +79,20 @@ public class AstPackManager {
}
/**
* 获取资产包
* @param packNo
* @return
*/
public AstPack get(String packNo) {
VarChecker.checkNotEmpty(packNo,"包编号必填");
AstPack astPack = astPackRepository.getByAbsPackPackNo(packNo);
VarChecker.checkNotNull(astPack,"找不到对应的资产包{0}",packNo);
List<AstScreenRule> ruleList = astScreenRuleRepo.getScreenRuleList(packNo);
astPack.setScreenRuleList(ruleList);
return astPack;
}
/**
* 创建产品默认的筛选规则(去数据仓库筛选产品编码对应的的资产)
* @param prodNo
* @param packNo
......
package com.abssqr.plat;
import com.abssqr.plat.biz.shared.dispatcher.DispatcherStarter;
import java.util.HashMap;
import java.util.Map;
import com.abssqr.plat.biz.shared.scheduler.QuartzScheduler;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.alibaba.fastjson.serializer.SerializeConfig;
......@@ -20,9 +23,6 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScans;
import org.springframework.context.annotation.FilterType;
import java.util.HashMap;
import java.util.Map;
@RefreshScope
@SpringBootApplication
@ComponentScans(value = {
......
......@@ -31,7 +31,7 @@ public class PackAddUnitTest extends BaseAutoTests {
} finally {
// 校验数据
super.checkDB(iCase);
super.clearDB(iCase);
// super.clearDB(iCase);
}
}
}
#Generated by Apache Maven
#Mon Apr 13 14:12:08 CST 2020
#Tue Apr 21 13:33:19 CST 2020
version=1.0
groupId=com.abssqr.bbplat
artifactId=test
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="secondsuite" verbose="1">
<test name="testsInclasses" preserve-order="true">
<classes>
<class name="com.abssqr.plat.test.unittest.org.OrgUnitTest"></class>
<class name="com.abssqr.plat.test.unittest.plan.planDraftTest"></class>
<class name="com.abssqr.plat.test.unittest.report.FundPlanFileTest"></class>
<class name="com.abssqr.plat.test.unittest.report.PlanReportChartTest">
<methods>
<include name="createPlanTestChart"/>
<include name="dailyJobChart"/>
<include name="overviewAmtTest"/>
<include name="overviewAstTest"/>
<include name="formationAstTest"/>
<include name="chartNodeTest"/>
<include name="testAnalyseSpvPlan"/>
<include name="testFundCalcView"/>
<include name="testFundCalcView"/>
<include name="testQueryAnalyseSpvPlan"/>
<include name="MonthReport"/>
</methods>
</class>
<class name="com.abssqr.plat.test.unittest.util.DecimalCalcUtilUnitTest"></class>
<class name="com.abssqr.plat.test.unittest.workflow.PlanWorkOrderTest">
<methods>
<include name="createWorkOrderPlan"/>
<include name="operatePlan"/>
</methods>
</class>
<class name="com.abssqr.plat.test.unittest.workflow.ProdWorkOrderTest">
<methods>
<include name="createWorkOrderProd"/>
<include name="operateProd"/>
</methods>
</class>
<class name="com.abssqr.plat.test.testlink.plan.PlanReportNormalTest">
<methods>
<include name="createPlanTestLink"></include>
<include name="dailyJobTest"></include>
</methods>
</class>
<class name="com.abssqr.plat.test.testlink.link.PreRepayFeeNormalTest"></class>
</classes>
</test>
</suite>
--- !!com.abssqr.test.icase.Case
id: pack_add_case0001
desc: 资产包新增测试
context:
clearDBContext:
- abs_ast_pack:
PACK_NO: packAdd01
- abs_ast_pack:
PACK_NAME: 资产包01
- abs_ast_screen_rule:
REL_NO: packAdd01
REL_TYPE: PACK
- ABS_COMMON_TASK:
BIZ_NO: packAdd01
initDBContext:
checkDBContext:
- ABS_COMMON_TASK:
ENV:
MEMO:
BIZ_NO[C]: packAdd01
CONTEXT: astPool01
LAST_HOST:
TASK_TYPE: PACK_MATCH
TASK_STATUS: init
EXEC_TIMES: 0
LAST_EXEC_TIME:
NEXT_EXEC_TIME:
- ABS_AST_SCREEN_RULE:
REL_NO[C]: packAdd01
REL_TYPE: PACK
RULE_TYPE: QCDK_RISK_TYPE
LEFT_CONDITION:
LEFT_VALUE:
RIGHT_CONDITION: eq
RIGHT_VALUE: 1,2,3
- ABS_AST_PACK:
PACK_NO[C]: packAdd01
PACK_NAME: 资产包01
AVAL_AMT: 1000000000
AST_POOL_NO: astPool01
PLAN_NO:
STATUS: init
PACK_DATE:
PACK_SUBMIT_DATE:
PACK_TYPE: normal
AST_TYPE: QCDK
###
--- !!com.abssqr.plat.common.facade.param.ast.AstPackOprParam
packNo: packAdd01
packName: 资产包01
avalAmt: 10000000
astPoolNo: astPool01
astType: QCDK
screenRuleList:
- ruleType: QCDK_RISK_TYPE
leftValue:
rightValue: '1,2,3'
rightCondition: 'eq'
\ No newline at end of file
--- !!com.abssqr.test.icase.Case
id: pack_list_case0001
desc: 资产包列表查询
context:
clearDBContext:
- abs_ast_pack:
PACK_NO: packAdd01
- abs_ast_pack:
PACK_NAME: 资产包01
initDBContext:
- ABS_AST_PACK:
ID: "{nextval}"
PACK_NO: packAdd01
PACK_NAME: 资产包01
AVAL_AMT: 1000000000
AST_POOL_NO: astPool01
PLAN_NO:
STATUS: 'init'
PACK_DATE:
PACK_SUBMIT_DATE:
PACK_TYPE: normal
AST_TYPE: QCDK
GMT_CREATE: sysdate
GMT_MODIFIED: sysdate
checkDBContext:
###
--- !!com.abssqr.plat.common.facade.param.ast.AstPackQryParam
packNo:
packName:
status:
---
"{\"avalAmt\":{\"amount\":10000000.00,\"ttAmt\":1000.00},\"packName\":\"资产包01\",\"packNo\":\"packAdd01\",\"status\":{\"code\":\"exec\",\"desc\":\"筛选中\"}}"
---
false
\ No newline at end of file
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="firstsuite" verbose="1">
<test name="allTestsInAPackage">
<packages>
<package name="com.abssqr.plat.test.testlink.*"/>
<package name="com.abssqr.plat.test.unittest.*"/>
</packages>
</test>
</suite>
......@@ -10,7 +10,7 @@ import com.abssqr.plat.common.facade.param.ast.AstPackQryParam;
import com.abssqr.plat.common.facade.result.BasePage;
import com.abssqr.plat.common.facade.result.pack.AstPackListVO;
import com.abssqr.plat.common.facade.service.ast.AstPackService;
import com.abssqr.plat.common.facade.validation.Valid;
import com.general.enhanced.controller.annotation.RestJsonController;
import com.general.system.common.model.BaseResult;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -42,6 +42,27 @@ public class PackController {
/**
* 编辑
*
* @param astPackQryParam
* @return
*/
@RequestMapping(value = "astPack/get.json", method = RequestMethod.GET)
public BaseResult<String> get(@RequestBody AstPackQryParam astPackQryParam) {
return BaseResult.success(astPackService.get(astPackQryParam));
}
/**
* 封包
*
* @param astPackQryParam
* @return
*/
@RequestMapping(value = "astPack/sealPack.json", method = RequestMethod.GET)
public BaseResult<String> sealPack(@RequestBody AstPackQryParam astPackQryParam) {
return BaseResult.success(astPackService.get(astPackQryParam));
}
/**
* 编辑
* @param astPackQryParam
* @return
*/
......
CREATE TABLE ABS_LOAN_PACK_REL
CREATE TABLE ABS_LOAN_PACK_REL
(
AST_NO VARCHAR2(64) NOT NULL
, PACK_NO VARCHAR2(64) NOT NULL
, STATUS VARCHAR2(16) NOT NULL
, REPAY_FINAL_DATE DATE
, BACK_NO VARCHAR2(64)
, BACK_COST NUMBER(20)
, BACK_PRIN NUMBER(20)
, BACK_RATE NUMBER(19,6)
, GMT_CREATE DATE
, GMT_MODIFIED DATE
, CONSTRAINT ABS_LOAN_PACK_REL_PK PRIMARY KEY
(
AST_NO
, PACK_NO
, STATUS
)
ENABLE
);
COMMENT ON COLUMN ABS_LOAN_PACK_REL.AST_NO IS '资产编号';
COMMENT ON COLUMN ABS_LOAN_PACK_REL.PACK_NO IS '资产包编号';
COMMENT ON COLUMN ABS_LOAN_PACK_REL.STATUS IS '状态 归属 in 赎回 back';
COMMENT ON COLUMN ABS_LOAN_PACK_REL.REPAY_FINAL_DATE IS '还款最后归属日';
COMMENT ON COLUMN ABS_LOAN_PACK_REL.BACK_NO IS '赎回编号';
COMMENT ON COLUMN ABS_LOAN_PACK_REL.BACK_COST IS '赎回价格';
COMMENT ON COLUMN ABS_LOAN_PACK_REL.BACK_PRIN IS '赎回本金';
COMMENT ON COLUMN ABS_LOAN_PACK_REL.BACK_RATE IS '赎回定价';
COMMENT ON COLUMN ABS_LOAN_PACK_REL.GMT_CREATE IS '创建时间';
COMMENT ON COLUMN ABS_LOAN_PACK_REL.GMT_MODIFIED IS '更新时间';
CREATE INDEX IDX_LOAN_PACK_REL_PACK ON ABS_LOAN_PACK_REL (PACK_NO);
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