#使用技巧#-(EAS Cloud)资金-融资管理-借款单增加调息标识字段,记录是否进行过借款利息调整业务原创
金蝶云社区-言鱼
言鱼
17人赞赏了该文章 417次浏览 未经作者许可,禁止转载编辑于2024年06月22日 21:37:06
封面


一、业务背景

B企业的上线了资金管理的【融资管理】模块,使用“借款单”处理相关的融资业务,由于每一笔借款单对应的合同会随着LPR贷款市场报价利率、重新议定借款合同的“利率条款”、存量借款置换、债务重组等诸多因素的影响,导致发生了利率类型变化的业务,这时候,我们就要使用EAS Cloud利息管理的【借款利率调整】进行处理;

image.png


二、痛点

借款单序时簿中,没有预设的“是否利率调整”字段,因此想要查看那笔借款单调整过利率,就得一个个进行下查,去看发生是否有关联的“借款利息调整单”,对于集团化大型企业来说,拥有海量的融资借款数据,一个个下查去看,是一件头大的事情!

image.png


三、解决思路

1、借款单在DEP中,增加布尔字段“借款单.是否利率调整

2、在借款单默认没调息时,借款单.是否利率调整字段默认值不进行勾选;【默认值=“0”】

3、在借款单发生调息业务时,通过DEP拓展“借款利率调整单”【实体】中增加“集合新增”的拓展定义脚本,给“借款单.是否利率调整”赋值“1”;

4、当调整过利率的借款单,将对应的“借款利息调整单”全部进行删除操作时,通过DEP拓展“借款利率调整单”【实体】中增加“集合删除”的拓展定义脚本,给“是否利率调整”赋值“0”;



四、关键步骤

1、增加“是否利率调整”布尔字段;


进入“动态拓展平台(高级版)【DEP】”中,拓展“借款”方案;


给借款单【编辑界面】增加布尔字段“是否利率调整”;

image.png


image.png


2、在借款利息调整单【实体】的“集合新增”放置【后置脚本】


进入“动态拓展平台(高级版)【DEP】”中,,拓展“借款利息调整单”方案;


借款利息调整单【实体】中的【拓展定义】,放置【集合新增】的如下【后置脚本】;


PS:之所以放置后置脚本,是因为要在新增之后才会给调整单对应的借款单的“是否利率调整”打上标识(即1);


image.png


脚本如下:

var imp = JavaImporter();
imp.importPackage(Packages.com.kingdee.eas.util.app);
imp.importPackage(Packages.java.sql);
imp.importPackage(Packages.com.kingdee.eas.util.client);
imp.importPackage(Packages.com.kingdee.bos.dao.query);
with(imp){ 

	var ctx = pluginCtx.getContext();
	var model =methodCtx.getParamValue(0);
	var id=	model.getId();
	//获取单据对象
	//获取单据id
	if(id != null){
	     var sql = "select FLOANID from T_FIN_LOANADJUSTINTEREST where fid = '" + id + "'";
	     var rs=com.kingdee.eas.util.app.DbUtil.executeQuery(ctx,sql);
		var fid = null;
		 if( rs != null && rs.next()){
		      fid = rs.getString(1);     	           
		 }
    
          var status = "1";
		 if(fid != null){
	          var sqls = "update T_FIN_Loan SET CFISADJUSTED = '" + status + "' WHERE FID = '"+fid+"'";
	          com.kingdee.eas.util.app.DbUtil.execute(ctx,sqls);
		 }
	 }
}


2、在借款利息调整单【实体】的“集合删除”放置【前置脚本】


进入“动态拓展平台(高级版)【DEP】”中,,拓展“借款利息调整单”方案;


给借款利息调整单【实体】中的【拓展定义】,放置【集合删除】的如下【前置脚本】;


PS:之所以放置前置脚本,是因为要在删除之前为了找到借款利息调整单对应的借款单,需要获取删除的数据,并在删除前给借款单的“是否利率调整”取消标识(即改为0)


image.png


脚本如下:

var ctx = pluginCtx.getContext();
var model =methodCtx.getParamValue(0);
var id=	model.toString();
var sql = "select distinct FLOANID from T_FIN_LOANADJUSTINTEREST where fid  in ('" + id.toString()+ "')"; 
var rs = com.kingdee.eas.util.app.DbUtil.executeQuery(ctx,sql);
while(rs.next()){
	var LoanId=rs.getString("FLOANID") //获取借款单id
	var sql1="select count(fid) cou from t_bot_relation where fsrcobjectid='"+LoanId+"'";
	var rs1=com.kingdee.eas.util.app.DbUtil.executeQuery(ctx,sql1);
	while(rs1.next()){

		if(rs1.getInt("cou")==1){//如果rs1.getInt("cou")==1,说明没有借款利率调整单,可以更新借款单状态为0
			var sqls = "update T_FIN_Loan SET CFISADJUSTED =0 WHERE FID = '"+LoanId+"'";
           com.kingdee.eas.util.app.DbUtil.execute(ctx,sqls);
		}
	}
}



五、效果展示

1、找到一笔借款单“JK-SW01-000004”,进行借款利率调整;

image.png


2、输入必要的调整信息,点击“确认”生成一张借款利息调整单;

image.png

image.png



3、调整后,系统会自动更新借款单的“最新利率”字段,并给“是否利率调整”打上标识!

image.png

image.png



4、删除后,该标识会复原!

image.png

image.png



注意:本文提供的脚本也包含了下述业务场景!

利率调整可进行多次,但该标识字段,只表示“是否存在借款利率调整单”

因此只有对应借款单完全没有了调整单,标识字段才会清空!

否则,不论调整多少次,均会标识该字段!



附上如果是中途上线的该方案的话,历史数据的处理sql:

--借款利息调整单对应的借款单内码

select FLOANID from T_FIN_LOANADJUSTINTEREST

--查询进行过借款利息调整的借款单

select * from T_FIN_Loan where FID in (select FLOANID from T_FIN_LOANADJUSTINTEREST) 

--给历史已调整过利率的借款单赋值“是否利率调整”标识=1
--update T_FIN_Loan set CFFRATEADJUST = 1  where FID in (select FLOANID from T_FIN_LOANADJUSTINTEREST) 

--查询调整的效果
select * from T_FIN_Loan where CFFRATEADJUST = 1





文末感谢@郑南通 提供的技术支持!


另附上相关问答!


DEP拓展脚本:新增借款利息调整单,update“是否调息”=“是”,编辑界面无法实现即时调整,需要把脚本改到实体上;


DEP拓展脚本:删除借款利率调整单,update“是否调息”=“否”,麻烦大佬看看,这个脚本有什么问题么?




赞 17