diff --git a/calc/com/tenwa/reckon/product/ProductCondition.java b/calc/com/tenwa/reckon/product/ProductCondition.java index f99440a16..df84939e2 100644 --- a/calc/com/tenwa/reckon/product/ProductCondition.java +++ b/calc/com/tenwa/reckon/product/ProductCondition.java @@ -8,6 +8,7 @@ import java.util.Map.Entry; import java.util.Vector; import jbo.com.tenwa.lease.comm.CONFIGURATE; +import jbo.prd.BUSINESS_TYPE; import jbo.sys.CODE_LIBRARY; import apx.com.amarsoft.als.apzl.apply.business.loan.product.ProductBaseLoanTools; @@ -49,6 +50,24 @@ public class ProductCondition { return sb.toString(); } + public String getProductRulesBusiness(ASObjectModel doTemp,String productId,Vector vali) throws Exception{ + doTemp.setDefaultValue("LEASE_AMT_DATE", DateUtil.getToday()); + StringBuilder sb=new StringBuilder(); + sb.append("{"); + sb.append("'fund':"+getProductFundRules(doTemp, productId,vali));//资金配置项 + sb.append(",'grace':"+this.getProductGraceRules(doTemp, productId, vali));//宽限期 + sb.append(",'method':"+this.getProductSettleRulesBusiness(doTemp, productId));//计算方式 + sb.append("}"); + setRentOrRate(doTemp, productId);//租金推算方法 + this.getOtherRule(doTemp, productId);//其它配置 + this.getProductPenaRules(doTemp, productId);//罚息 + this.getProductAdjustRules(doTemp, productId);//调息 + this.getGrossRules(doTemp, productId);// + //this.setDateRule(doTemp, productId);//日期 + this.getCautionRatio(doTemp, productId);//保证金比例 + return sb.toString(); + } + public String getProductRulesApp(List> appList,String productId,Vector vali) throws Exception{ ProductBaseLoanTools.addAppList(appList, "LEASE_AMT_DATE", "coldefaultvalue", DateUtil.getToday()); StringBuilder sb=new StringBuilder(); @@ -569,9 +588,16 @@ public class ProductCondition { doTemp.setColumnAttribute("FREE_DEFA_INTER_DAY","colreadonly", "1"); } }*/ + BizObject bo1 = JBOFactory.createBizObjectQuery(BUSINESS_TYPE.CLASS_NAME,"typeno=:productId") + .setParameter("productId",productId).getSingleResult(false); + String attribute2=(bo1==null)?"":bo1.getAttribute("ATTRIBUTE2").getString(); BizObject bo = JBOFactory.createBizObjectQuery(CONFIGURATE.CLASS_NAME,"ATTR_ID=:attrId") .setParameter("attrId","免罚息天数配置").getSingleResult(false); - String day = (bo==null)?"":bo.getAttribute("ATTR_VALUE").getString(); + String day="0"; + if(attribute2!=""&&"car_product".equals(attribute2)){ + day = (bo==null)?"":bo.getAttribute("ATTR_VALUE").getString(); + } + doTemp.setDefaultValue("FREE_DEFA_INTER_DAY", day); if(map.containsKey("PENALTY_RATE_DAY")){//罚息日利率 @@ -727,6 +753,68 @@ public class ProductCondition { return "{"+sJson+"}"; } + /** + * 设置计算方式 + * @param doTemp + * @param productId + * @return + * @throws Exception + */ + public String getProductSettleRulesBusiness(ASObjectModel doTemp,String productId) throws Exception{ + + //租金计算方式 + Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0301"); + //分段 + Map> submap=ProductParamUtil.getProductComponentType(productId, "PRD0321"); + String s=""; + + String sJson=""; + for(Map.Entry> entry:map.entrySet()){ + if(s.length()>0)s+=","; + s+="'"+entry.getKey()+"'"; + if(sJson.length()>0)sJson+=","; + sJson+="'"+entry.getKey()+"':"+FileOperatorUtil.getMapToJsonStr(entry.getValue()); + + if(entry.getKey().equals( doTemp.getColumnAttribute("SETTLE_METHOD", "coldefaultvalue"))){ + Map values=entry.getValue(); + if(values.containsKey("HolidayAdjust")){ + doTemp.setDefaultValue("PLAN_DATE_HOILDAY", values.get("HolidayAdjust")); + } + if(values.containsKey("InterestHolidayAdjust")){ + doTemp.setDefaultValue("INTEREST_DATE_HOLIDAY", values.get("InterestHolidayAdjust")); + } + if(values.containsKey("RATE")){ + doTemp.setDefaultValue("RATE", values.get("RATE")); + } + if(values.containsKey("AdditionalRate")){ + doTemp.setDefaultValue("ADDITIONAL_RATE", values.get("AdditionalRate")); + } + if(values.containsKey("InterestDayType")){ + doTemp.setDefaultValue("INTEREST_DAY_TYPE", values.get("InterestDayType")); + } + } + } + if(submap.containsKey("ISSUBSECTION")){ + if(s.length()>0)s+=","; + s+="'even_subsection'"; + } + + /*if(s.indexOf("even_rent") != -1) { + s = "'even_rent'"; + } else if(s.indexOf("even_corpus") != -1) { + s = "'even_corpus'"; + } else { + s = "'even_interest'"; + }*/ + // doTemp.setReadOnly("SETTLE_METHOD", true); + doTemp.setColumnAttribute("SETTLE_METHOD","coleditsource","jbo.sys.CODE_LIBRARY,itemno,itemname,codeno='settle_method' and itemno in ("+s+") order by sortno"); + doTemp.setDefaultValue("SETTLE_METHOD", s.replaceAll("'", "")); + + + return "{"+sJson+"}"; + } + + public String getProductSettleRulesApp(List> appList,String productId) throws Exception{ //租金计算方式