提供自动测算入口,需要后续补上测算信息

This commit is contained in:
zhulh 2019-08-13 16:22:24 +08:00
parent 678d81355e
commit a7d4d301ad
4 changed files with 198 additions and 86 deletions

View File

@ -68,7 +68,7 @@ import com.tenwa.reckon.util.ObjectConvertUtils;
import com.tenwa.reckon.util.TbBeanTools;
/**
*
*
* @author chuang 租金测算主入口
*/
public class CreateTransactionExecutor implements Transaction {
@ -88,7 +88,7 @@ public class CreateTransactionExecutor implements Transaction {
private String orgID;
private String flow_name;
private String ebanknumber;
public String getStartDate() {
return startDate;
}
@ -124,7 +124,7 @@ public class CreateTransactionExecutor implements Transaction {
FundRentPlanBean rentPlan = this.createRentPlan(bean,tx);
this.createFundPlan(rentPlan, bean,tx);
irr = this.createCashFlow(bean,tx);
//额外生成分润的租金计划
String splittingRatio = ProductParamUtil.getProductParameterValue(productId, "PRD0350", "product_rate", "splitting_ratio");
System.out.println("==========================分润利率:"+splittingRatio+"==========================");
@ -137,7 +137,7 @@ public class CreateTransactionExecutor implements Transaction {
bean_sp.getCb().setYearRate(splittingRatio);
FundRentPlanBean rentPlan_sp = this.createRentPlan(bean_sp,tx);
}
jsonObject.appendElement("result", "true");
this.callBack(jsonObject, bean.getCb(), bean,rentPlan,false,tx);
// 返回参数上做处理
@ -172,7 +172,51 @@ public class CreateTransactionExecutor implements Transaction {
}
}
/**
* 正常测算
*/
@Override
public void runTrans( JBOTransaction tx ) throws Exception {
JSONObject jsonObject = JSONObject.createObject();
TabCalBean bean = TbBeanTools.getTabInfoTrans( calType, flowunid, plannumber, productId, tx );
this.deletePayCondition(this.getFlowunid(),bean.getPlanCName(), bean.getPlanCValue(), tx);
DictTools.setYearRate(bean);
String yearRate = bean.getCb().getYearRate();
this.preHandle(bean.getCb(),bean);
if(bean.getCb().getRentOrRate().equals("rent")&&new BigDecimal(bean.getCb().getIncomeNumber()).multiply(new BigDecimal(bean.getCb().getRentValue())).compareTo(new BigDecimal(bean.getCb().getCleanLeaseMoney()))<0){
throw new BusinessException("按租金算年利率租金总和必须大于融资额");
}
//获取产品类型
com.amarsoft.awe.util.Transaction Sqlca = com.amarsoft.awe.util.Transaction.createTransaction(tx);
String productType = Sqlca.getString(new SqlObject("select attribute2 from business_type where typeno='"+productId+"'"));
bean.setProductType(productType);
bean.getCb().setProductType(productType);
jsonObject.appendElement("year_rate", yearRate);
FundRentPlanBean rentPlan = this.createRentPlan(bean,tx);
this.createFundPlan(rentPlan, bean,tx);
String irr = this.createCashFlow(bean,tx);
//额外生成分润的租金计划
String splittingRatio = ProductParamUtil.getProductParameterValue(productId, "PRD0350", "product_rate", "splitting_ratio");
System.out.println("==========================分润利率:"+splittingRatio+"==========================");
if("".equals(splittingRatio)||splittingRatio==null){}
else{
TabCalBean bean_sp = TbBeanTools.getTabInfo(calType, flowunid,plannumber,productId);
bean_sp.setProductType(productType);
bean_sp.getCb().setProductType(productType);
bean_sp.setRentPlan_tb("jbo.app.tenwa.calc.LC_RENT_PLAN_SP_TEMP");
bean_sp.getCb().setYearRate(splittingRatio);
FundRentPlanBean rentPlan_sp = this.createRentPlan(bean_sp,tx);
}
jsonObject.appendElement("result", "true");
this.callBack(jsonObject, bean.getCb(), bean,rentPlan,false,tx);
}
/**
* 起租测算
*/
@ -211,12 +255,12 @@ public class CreateTransactionExecutor implements Transaction {
}
}
}
/**
* 车贷起租测算
* @param Sqlca
* @return
* @throws Exception
* @throws Exception
*/
public String carRunOnhire(com.amarsoft.awe.util.Transaction Sqlca) throws Exception {
JBOTransaction tx=null;
@ -264,9 +308,9 @@ public class CreateTransactionExecutor implements Transaction {
Sqlca.executeSQL(new SqlObject("update lc_fund_plan set plan_date = '" + startDate + "' where payment_number = '" + this.plannumber + "' and pay_type = 'pay_type_in' and fee_type != 'feetype4' and fee_type != 'feetype12'"));
Sqlca.executeSQL(new SqlObject("update lc_fund_plan set plan_date = '" + startDate + "' where payment_number = '" + this.plannumber + "' and fee_type = 'feetype10'"));
this.setCashFlow(this.plannumber, this.productId, Sqlca);
}
return "success";
}
@ -281,7 +325,7 @@ public class CreateTransactionExecutor implements Transaction {
sql += ",net_flow";
//sql += ",flowunid";//create_date,creator_ "+DateUtil.getSystemDate()+"' create_date ,'"+SecurityUtil.getPrincipal().getId()+"' creator_"
sql += " )";
sql +=" select replace(uuid(),'-','') id,max(t.project_id),max(t.project_plan_number),max(t.contract_id),max(t.contract_plan_number),max(t.payment_number),t.plan_date,sum(t.flowin) fundin,ifnull(group_concat(if(t.flowindetail='',null,t.flowindetail)),'-') fundindetails, ";
sql +=" sum(t.flowout) fundout ,ifnull(group_concat(if(t.flowoutdetail='',null,t.flowoutdetail)),'-')fundoutdetails ,sum(t.cleanfow)netflow " ;
sql +=" from (" ;
@ -314,7 +358,7 @@ public class CreateTransactionExecutor implements Transaction {
sql +=" )t group by t.plan_date ";
Sqlca.executeSQL(new SqlObject(sql));
}
//固定还款日
public static List<String> getPlanDateListFixed(int incomeNumber, String periodType, String incomeIntervalMonth, String startDate) throws ParseException {
List<String> planDate = new ArrayList<String>();
@ -360,8 +404,8 @@ public class CreateTransactionExecutor implements Transaction {
}
return planDate;
}
//起租日即为还款日
public static List<String> getPlanDateList(int incomeNumber, String periodType, String incomeIntervalMonth, String startDate) throws ParseException {
List<String> planDate = new ArrayList<String>();
@ -384,7 +428,7 @@ public class CreateTransactionExecutor implements Transaction {
}
return planDate;
}
/**
* 中途中止
*/
@ -416,14 +460,14 @@ public class CreateTransactionExecutor implements Transaction {
}
return JSONEncoder.encode(jsonObject);
}
/**
* 删除方案
* @param tx
* @return
*/
public String deletePlan(JBOTransaction tx){
Map<String,String> condtion=new HashMap<String, String>();
condtion.put("flowunid", flowunid);
condtion.put(this.planCName, plannumber);
@ -457,11 +501,11 @@ public class CreateTransactionExecutor implements Transaction {
}
JBOFactory.getBizObjectManager(LC_PAY_CONDTION_TEMP.CLASS_NAME, tx).createQuery(sql).setParameter("flowunid", flowunid).setParameter("plannumber", planCValue).executeUpdate();
}
@Override
public FundRentPlanBean createRentPlan(TabCalBean bean,JBOTransaction tx) throws Exception {
ConditionBean cb = bean.getCb();
bean.setCb(cb);
DictTools.getReversDict(cb);
String settleMethod = cb.getSettleMethod();
@ -512,7 +556,7 @@ public class CreateTransactionExecutor implements Transaction {
FundFundPlanExecutor fundFundExecutor = new FundFundPlanExecutor();
fundFundExecutor.runTerminate(bean.getCb(), bean, planBean,tx,bo);
}
@Override
public String createCashFlow(TabCalBean bean,JBOTransaction tx) throws Exception {
CashFlowExecutor executor = new CashFlowExecutor(tx);
@ -536,9 +580,9 @@ public class CreateTransactionExecutor implements Transaction {
helper.run(jsonObject, cb, bean, rentPlan,flag);
}
/**
* 删除已知规则
*/
@ -550,13 +594,13 @@ public class CreateTransactionExecutor implements Transaction {
bm.createQuery("delete from O where flowunid=:flowunid and "+this.planCName+"=:plannumber").setParameter("flowunid",this.flowunid).setParameter("plannumber",this.plannumber).executeUpdate();
BizObjectManager bm2=JBOFactory.getBizObjectManager(tcb.getPeriodTb());
bm2.createQuery("delete from O where flowunid=:flowunid and "+this.planCName+"=:plannumber").setParameter("flowunid",this.flowunid).setParameter("plannumber",this.plannumber).executeUpdate();
return null;
}
/**
* 删除
* @return
* @throws Exception
* @throws Exception
*/
public String runDeleSubsection() throws Exception{
TabCalBean tcb=TbBeanTools.getTabInfo(this.calType);
@ -566,7 +610,7 @@ public class CreateTransactionExecutor implements Transaction {
}
/**
* 已知规则
* @throws Exception
* @throws Exception
*/
@SuppressWarnings("unchecked")
@Override
@ -627,7 +671,7 @@ public class CreateTransactionExecutor implements Transaction {
*/
@Override
public String runRentChange() throws Exception{
JSONObject jsonObject = JSONObject.createObject();
JBOTransaction tx=null;
try {
@ -689,7 +733,7 @@ public class CreateTransactionExecutor implements Transaction {
return "false";
}
return "true";
}
/**
* 判断租金变更信息是否存在
@ -707,7 +751,7 @@ public class CreateTransactionExecutor implements Transaction {
return "false";
}
}
/**
* 判断商务条件是否保存
*/
@ -757,7 +801,7 @@ public class CreateTransactionExecutor implements Transaction {
for(String key:map.keySet()){
fundColMoney.put(fundCol.get(key), map.get(key).toString());
}
Map<String,Map<String,String>> fundmap=ProductParamUtil.getProductComponentType(productId, "PRD0315");
Map<String,String> fundColMoneyRatio=new HashMap<String, String>();
fundColMoneyRatio.putAll(fundColMoney);
@ -817,7 +861,7 @@ public class CreateTransactionExecutor implements Transaction {
* @param sourceFile
* @param sourceMap
* @return
* @throws Exception
* @throws Exception
*/
public String importRentOrCorpusTable(String fileName, InputStream sourceFile,Map<String,String>sourceMap) throws Exception{
@ -846,7 +890,7 @@ public class CreateTransactionExecutor implements Transaction {
KnowingTableBean.checkKnowingTableBean(table, i);
tableBeans.add(table);
}
//先校验本金之和是否等于融资额
BigDecimal moneyTotal = BigDecimal.ZERO;
Date upperDate=null;
@ -865,7 +909,7 @@ public class CreateTransactionExecutor implements Transaction {
}else if(rentOrRate.equals("corpus_period")&&moneyTotal.compareTo(new BigDecimal(cleanLeaseMoney).subtract(new BigDecimal(sourceMap.get("EQUIP_END_VALUE"))))!=0){
throw new BusinessException("上传Excel中的本金之和需要等于融资额请核实后再进行上传");
}
BizObjectManager bm=JBOFactory.getBizObjectManager(tcb.getPeriodTb());
bm.createQuery("delete from O where flowunid=:flowunid and "+sourceMap.get("planCName")+"=:plannumber").setParameter("flowunid", sourceMap.get("flowunid")).setParameter("plannumber", sourceMap.get("plannumber")).executeUpdate();
JSONObject json=JSONObject.createObject();
@ -888,7 +932,7 @@ public class CreateTransactionExecutor implements Transaction {
json.appendElement("index", tableBeans.size());
return JSONEncoder.encode(json);
}
/**
* 不规则测算 导入租金计划
* */
@ -922,7 +966,7 @@ public class CreateTransactionExecutor implements Transaction {
tx.rollback();
throw e;
}catch(Exception e){
tx.rollback();
return 0;
}finally{
@ -930,14 +974,14 @@ public class CreateTransactionExecutor implements Transaction {
tx.commit();
}
}
}
}
/**
* 租金计划变更 更新现金流前先计算增值税
* @param tx
* @return
* @throws Exception
* @throws Exception
*/
public String updateRentTax() throws Exception{
BizObjectManager bm=JBOFactory.getBizObjectManager(LC_RENT_PLAN_TEMP.CLASS_NAME);
@ -1000,8 +1044,8 @@ public class CreateTransactionExecutor implements Transaction {
otherProperty1.put("flow_name", flow_name);
LeaseFlowBaseService service1=new LeaseFlowBaseServiceImp();
service1.copyEbankInfoToProcess(tx, fromCondtion1, null,otherProperty1, ServiceOperatorEnum.FormalToTemp);
String sMessage="true";
String sMessage="true";
return "";
}
/**
@ -1039,7 +1083,7 @@ public class CreateTransactionExecutor implements Transaction {
tx.commit();
return "Success";
}
//提前结清更新LC_EBANK_TEMP表
public String deleteEbank(JBOTransaction tx)throws Exception{
BizObjectManager letManage = JBOFactory.getBizObjectManager(LC_EBANK_TEMP.CLASS_NAME, tx);
@ -1054,7 +1098,7 @@ public class CreateTransactionExecutor implements Transaction {
tx.commit();
return "Success";
}
public String getCalType() {
return calType;
}
@ -1063,7 +1107,7 @@ public class CreateTransactionExecutor implements Transaction {
this.calType = calType;
}
public String getFlowunid() {
return flowunid;
}
@ -1080,8 +1124,8 @@ public class CreateTransactionExecutor implements Transaction {
this.rentOrRate = rentOrRate;
}
public String getCleanLeasemoney() {
return cleanLeasemoney;
}
@ -1090,8 +1134,8 @@ public class CreateTransactionExecutor implements Transaction {
this.cleanLeasemoney = cleanLeasemoney;
}
public String getEquipEndValue() {
return equipEndValue;
}
@ -1173,5 +1217,5 @@ public class CreateTransactionExecutor implements Transaction {
}
}

View File

@ -13,10 +13,11 @@ import com.tenwa.reckon.bean.TabCalBean;
public interface Transaction {
/**
*
*
* @param 组装商务报价
*/
public String run();
public void runTrans( JBOTransaction tx ) throws Exception;
public FundRentPlanBean createRentPlan(TabCalBean bean,JBOTransaction tx) throws Exception;
public void createFundPlan(FundRentPlanBean rentPlan, TabCalBean bean,JBOTransaction tx) throws Exception;
public String createCashFlow(TabCalBean bean,JBOTransaction tx) throws Exception;
@ -37,29 +38,29 @@ public interface Transaction {
* @return
*/
public String runDelteKnowing() throws Exception;
public String runOnhire();
public String checkKnowingConfig() throws Exception;
public String updateCashFlow() throws Exception;
/**
* 租金计划变更
* @return
*/
public String runRentChange() throws Exception;
public String cancelRentChange(JBOTransaction tx) throws Exception;
public String checkIsRentChange() throws Exception;
/**
* 中途终止操作
* @return
*
*
*/
public String runTerminate() throws Exception;
public int importRentPlan(String fileName,InputStream sourceFile,Map<String,String>sourceMap) throws Exception;
public void createFundPlanTerminate(FundRentPlanBean rentPlan, TabCalBean bean,JBOTransaction tx,BizObject bo) throws Exception;
}

View File

@ -3,6 +3,7 @@ package com.tenwa.reckon.util;
import java.util.ArrayList;
import java.util.List;
import com.amarsoft.are.jbo.JBOTransaction;
import jbo.com.tenwa.entity.comm.flow.FLOW_BUSSINESS_OBJECT;
import com.amarsoft.are.ARE;
@ -18,7 +19,7 @@ import com.tenwa.reckon.bean.TabCalBean;
/**
*
*
* @author SHIHONGFEI
* @version 1.0
* @copyright (C) TENWA 2016
@ -26,16 +27,16 @@ import com.tenwa.reckon.bean.TabCalBean;
* @desc ( 此类用于根据流程类型得出交易结构租金计划所用的表信息)
*/
public class TbBeanTools {
public static Log logger=ARE.getLog();
public static Log logger=ARE.getLog();
/**
*
*
* ( 根据交易结构信息测算类型得到测算所涉及的表信息)
*
*
* @param calType
* @param cb
* @return
* @throws Exception
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static TabCalBean getTabInfo(String calType, String flowunid,String plannumber,String productId) throws Exception {
@ -61,7 +62,7 @@ public class TbBeanTools {
tables.add(ObjectConvertUtils.converBizObjectToBean(KnowingTableBean.class, obj));
}
tcb.setKnowingTables(tables);
//分段测算
BizObjectManager breakBm=JBOFactory.getBizObjectManager(tcb.getSubsectionTb());
List<BizObject> subList=breakBm.createQuery("flowunid=:flowunid and "+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"' order by START_LIST asc").setParameter("flowunid", flowunid).getResultList(false);
@ -70,8 +71,8 @@ public class TbBeanTools {
subs.add(ObjectConvertUtils.converBizObjectToBean(SubsectionBean.class, obj));
}
tcb.setSubsections(subs);
tcb.setDocId(flowunid);
if(productId==null||productId==""){
BizObject flow=JBOFactory.createBizObjectQuery(FLOW_BUSSINESS_OBJECT.CLASS_NAME,"flow_unid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false);
@ -81,10 +82,55 @@ public class TbBeanTools {
logger.info("方法getTabInfo处理结束");
return tcb;
}
@SuppressWarnings("unchecked")
public static TabCalBean getTabInfoTrans( String calType, String flowunid, String plannumber, String productId, JBOTransaction tx ) throws Exception {
logger.info("进入方法:getTabInfo");
TabCalBean tcb = new TabCalBean();
tcb = getTabInfo(calType);
tcb.setPlanCValue(plannumber);
BizObject condition = JBOFactory.getBizObjectManager( tcb.getCondition_tb(), tx ).createQuery( "select * from O where flowunid = :flowunid and "+tcb.getPlanCName()+"='"+plannumber+"'" ).setParameter( "flowunid", flowunid ).getSingleResult( false );
tcb.setCondition(condition);
//设置已知规则
BizObjectManager m2 = JBOFactory.getBizObjectManager( tcb.getRuleTb(), tx );
List<BizObject> objs = m2.createQuery("flowunid=:flowunid and "+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"' order by start_list asc").setParameter("flowunid", flowunid).getResultList(false);
List<KnowingConfigBean> configs = new ArrayList<KnowingConfigBean>();
for(BizObject obj : objs){
configs.add(ObjectConvertUtils.converBizObjectToBean(KnowingConfigBean.class, obj));
}
tcb.setKnowingConfigs(configs);
//设置已知租金表
BizObjectManager m3 = JBOFactory.getBizObjectManager( tcb.getPeriodTb(), tx );
List<BizObject> objs3 = m3.createQuery("flowunid=:flowunid and "+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"' order by PLAN_LIST asc").setParameter("flowunid", flowunid).getResultList(false);
List<KnowingTableBean> tables = new ArrayList<KnowingTableBean>();
for(BizObject obj : objs3){
tables.add(ObjectConvertUtils.converBizObjectToBean(KnowingTableBean.class, obj));
}
tcb.setKnowingTables(tables);
//分段测算
BizObjectManager breakBm=JBOFactory.getBizObjectManager( tcb.getSubsectionTb(), tx );
List<BizObject> subList=breakBm.createQuery("flowunid=:flowunid and "+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"' order by START_LIST asc").setParameter("flowunid", flowunid).getResultList(false);
List<SubsectionBean> subs=new ArrayList<SubsectionBean>();
for(BizObject obj:subList){
subs.add(ObjectConvertUtils.converBizObjectToBean(SubsectionBean.class, obj));
}
tcb.setSubsections(subs);
tcb.setDocId(flowunid);
if(productId==null||productId==""){
BizObject flow = JBOFactory.getBizObjectManager( FLOW_BUSSINESS_OBJECT.CLASS_NAME, tx ).createQuery( "flow_unid=:flowunid" ).setParameter( "flowunid", flowunid ).getSingleResult( false );
productId=flow.getAttribute("productId").getString();
}
tcb.setProductId(productId);
logger.info("方法getTabInfo处理结束");
return tcb;
}
/**
*
*
* 根据calType 类型返回在该类型下查询的表和字段名 该方法流程类型返回要和该类中其他重载方法一致
* <BR>在这里返回的都是表名,可以通过tabcalbean中的方法转换为视图或者正式表
* <BR>该方法中会吧userid存为查询客户名的表,实际上应该为当前登录人所以需要在其他方法中覆盖

View File

@ -2,6 +2,7 @@ package com.tenwa.lease.flow.project.commbusiness;
import com.tenwa.util.SerialNumberUtil;
import jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP;
import jbo.app.tenwa.customer.CUSTOMER_ACCOUNT_TEMP;
import jbo.app.tenwa.customer.CUSTOMER_ADDRESS;
@ -59,7 +60,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
public String serial = null;
@Override
public Object run(Transaction Sqlca) throws Exception {
this.initBussinessParam(Sqlca);
this.initBussinessParam(Sqlca);
if(this.getAttribute("serial")!=null)
serial = this.getAttribute("serial").toString();
ASUser asUser=new ASUser(this.getAttribute("CurUserID").toString());
@ -80,7 +81,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
}
BizObjectManager bmCTT =JBOFactory.getBizObjectManager(CUSTOMER_TYPE_TEMP.CLASS_NAME,tx);
BizObjectManager bomC = JBOFactory.getBizObjectManager(className); //自然人表或者法人信息表
BizObjectManager bm = JBOFactory.getBizObjectManager(LB_PROJECT_INFO_TEMP.CLASS_NAME,tx);
BizObjectManager bm = JBOFactory.getBizObjectManager(LB_PROJECT_INFO_TEMP.CLASS_NAME,tx);
BizObjectManager bmLULT = JBOFactory.getBizObjectManager(LB_UNION_LESSEE_TEMP.CLASS_NAME,tx);
BizObjectManager bmLECT = JBOFactory.getBizObjectManager(LB_EQUIPMENT_CAR_TEMP.CLASS_NAME,tx);
BizObjectManager bmCI = JBOFactory.getBizObjectManager(CUSTOMER_INFO_TEMP.CLASS_NAME,tx);
@ -95,13 +96,13 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
//证件表中如果这个人做过承租人也做过担保有 相同的证件号码就有2条信息一个作为担保人一个承租人
List<BizObject> boCT1 = bomCT1.createQuery("certtype='"+certType+"' and certid='"+certId+"'").getResultList(false);
if(boCT1.size()>0){
for(BizObject CT1:boCT1){
for(BizObject CT1:boCT1){
String customeridForCust = CT1.getAttribute("customerid").getString();
BizObject boCTT1 = bomCTT1.createQuery("customerid='"+customeridForCust+"'").getSingleResult(false);
if(boCTT1!=null){
custType = boCTT1.getAttribute("CUSTTYPE").getString();
if("cust_type.cust".equals(custType)){
break;
break;
}
}
}
@ -127,7 +128,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
Map<String,String>otherProperty=new HashMap<String, String>();
otherProperty.put("FLOWUNID", flowunid);
otherProperty.put(CUSTOMER_INFO_TEMP.customerid, customerId);
//更新customer_info,CUSTOMER_CERT
Map<String,String>infoProperty=new HashMap<String, String>();
infoProperty.put("FLOWUNID", flowunid);
@ -148,10 +149,10 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
companyProperty.put("FLOWUNID", flowunid);
companyProperty.put(CUSTOMER_INFO_TEMP.customerid, customerId);
companyProperty.put("enterprisename", custName);
Map<String,String>fromCondtion=new HashMap<String, String>();
fromCondtion.put("CUSTOMERID",customerId);
//otherProperty.put(CUSTOMER_INFO_TEMP.distributor_id, distributoIid);
//拷到临时表
DataOperatorUtil.copySingleJBO(CUSTOMER_INFO.CLASS_NAME, fromCondtion, CUSTOMER_INFO_TEMP.CLASS_NAME, null, infoProperty, tx);
@ -166,11 +167,11 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
}
DataOperatorUtil.copySingleJBO(CUSTOMER_TYPE.CLASS_NAME, fromCondtion, CUSTOMER_TYPE_TEMP.CLASS_NAME, null, otherProperty, tx);
BizObject lul = JBOFactory.getBizObjectManager(LB_UNION_LESSEE.CLASS_NAME,tx).createQuery(" customer_id=:customer_id ").setParameter("customer_id", customerId).getSingleResult(false);
BizObject lpi = JBOFactory.getBizObjectManager(LB_PROJECT_INFO.CLASS_NAME,tx).createQuery(" id=:project_id ").setParameter("project_id", lul == null ?"":lul.getAttribute("project_id").toString()).getSingleResult(false);
//无论是不是存量客户都在 项目表 客户和项目关联表 中都新增一条数据客户和项目是一对多的
this.saveProjInfo(bm, tx, asUser,distributoIid,lpi == null ? null : lpi.getAttribute("is_netcar").toString());
this.saveProjInfo(bm, tx, asUser,distributoIid,lpi == null ? null : lpi.getAttribute("is_netcar").toString());
this.saveEquipmentCar(bmLECT, tx, asUser,vndrName); //车辆租赁物信息表
this.saveUnionLessee(bmLULT,tx,customerId,asUser);
this.saveBusinessStatus(bsbom, tx, asUser);//项目进度表
@ -195,7 +196,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
this.saveUnionLessee(bmLULT, tx, customerId, asUser);//union表
this.saveProjInfo(bm, tx, asUser,distributoIid,null);//保存项目信息表
this.saveBusinessStatus(bsbom, tx, asUser);//项目进度表
/**接口平台初始化数据*/
if(serial!=null){
//共同申请人
@ -205,7 +206,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
cftbo.setAttributeValue("flowunid",this.getAttribute("FlowUnid"));
cftbo.setAttributeValue("PROJECT_ID",this.getAttribute("ProjectId"));
BusinessApplicationPfToTemp.savePartner(cftbo,cftbom,serial);
//担保人拷表
Map<String, String> fromCondtion = new HashMap<String,String>();
fromCondtion.put("SERIAL",serial);
@ -213,24 +214,44 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
otherProperty.put("FLOWUNID",this.getAttribute("FlowUnid").toString());
otherProperty.put("PROJECT_ID",this.getAttribute("ProjectId").toString());
DataOperatorUtil.copyJBOSet(PF_GUARANTEE_UNIT.CLASS_NAME,fromCondtion,LB_GUARANTEE_UNIT_TEMP.CLASS_NAME,null,otherProperty,null,tx);
//扣款卡信息拷表
otherProperty.put("customerid",customerId);
otherProperty.put("acc_info","Debit");
otherProperty.put("acc_type","Debit");
otherProperty.put("CUSTTYPE","lessee");
DataOperatorUtil.copyJBOSet(PF_CUSTOMER_ACCOUNT.CLASS_NAME,fromCondtion,CUSTOMER_ACCOUNT_TEMP.CLASS_NAME,null,otherProperty,null,tx);
//商务条件拷表
String calType = "proj_process";
otherProperty.clear();
otherProperty.put("FLOWUNID",this.getAttribute("FlowUnid").toString());
BizObject proj = JBOFactory.getBizObjectManager( "jbo.com.tenwa.lease.comm.LB_PROJECT_INFO_TEMP", tx ).createQuery( "flowunid=:flowunid" ).setParameter( "flowunid", flowunid ).getSingleResult( false );
String sSerialType = ( proj == null ) ? "" : proj.getAttribute( "PROJECT_NO" ).getString();
String planNumber = SerialNumberUtil.getPlannumber( sSerialType, calType, tx );
otherProperty.put("PROJECT_PLAN_NUMBER", planNumber);
// TO DO 补上商务条件剩余信息
DataOperatorUtil.copyJBOSet(PF_CALC_CONDITION.CLASS_NAME,fromCondtion,LC_CALC_CONDITION_TEMP.CLASS_NAME,null,otherProperty,null,tx);
// 自动测算
autoCalc( flowunid, calType, planNumber, this.getAttribute("ProductId").toString(), tx );
}
}
String sMessage="true";
String sMessage="true";
return sMessage;
}
public void autoCalc( String flowunid, String calType, String planNumber, String productId, JBOTransaction tx ) throws Exception {
CreateTransactionExecutor cte = new CreateTransactionExecutor();
cte.setCalType( calType );
cte.setFlowunid( flowunid );
cte.setPlannumber( planNumber );
cte.setProductId( productId );
cte.runTrans( tx );
}
private BizObject saveCustomerInfo(BizObjectManager bomCI,JBOTransaction tx,ASUser asUser,String distributoIid)throws JBOException{
BizObject bmC = bomCI.newObject();//保存客户信息
try {
@ -259,7 +280,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
e.printStackTrace();
}
return bmC;
}
}
private void savePersonOrCompany(BizObjectManager bomC,JBOTransaction tx,String colName,String customerId,ASUser asUser)throws JBOException{
BizObject boCRT = bomC.newObject();//新建自然人||法人
try {
@ -296,7 +317,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
}
}
}else{
}
bomC.saveObject(boCRT);
} catch (Exception e) {
@ -306,7 +327,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
}
//存储客户类型信息(仅用于承租人)
private void saveCustomerType(BizObjectManager bomCT,JBOTransaction tx,String customerId,ASUser asUser) throws JBOException{
BizObject boCT = bomCT.newObject();//保存客户类型
try {
boCT.setAttributeValue("CUSTOMERID", customerId);