package quartz; import java.util.HashMap; import java.util.List; import java.util.Map; import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO; import jbo.com.tenwa.lease.comm.VI_NORMALEND_CONTRACT; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import com.amarsoft.are.jbo.BizObject; import com.amarsoft.are.jbo.BizObjectManager; import com.amarsoft.are.jbo.JBOFactory; import com.amarsoft.are.jbo.JBOTransaction; import com.amarsoft.are.util.StringFunction; import com.amarsoft.awe.util.Transaction; import com.amarsoft.context.ASUser; import com.base.util.QuartzUtil; //import com.tenwa.action.channelportal.ContractSignAction; //import com.tenwa.action.channelportal.comm.ContractTransferRightForEnd; import com.tenwa.comm.util.jboutil.DataOperatorUtil; import com.tenwa.comm.util.jboutil.SaveBusinessStatus; import com.tenwa.lease.app.quartzmession.JobInitUserName; import com.tenwa.officetempalte.action.CreateOfficeAction; //import com.tenwa.quartz.BeforeSerialTimingTask; //import com.tenwa.quartz.service.BeforeSerialTimingTaskService; //import com.tenwa.quartz.serviceImpl.BeforeSerialTimingTaskServiceImpl; import com.tenwa.reckon.util.UUIDUtil; import org.apache.log4j.Logger; public class ContractInfoForNomalEndSign implements Job{ private JobInitUserName jboName; @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { String startime = StringFunction.getTodayNow(); try { JBOTransaction tx = JBOFactory.createJBOTransaction(); ownershipTransferSign(tx,arg0); tx.commit(); QuartzUtil.insertLog(startime, "quartz.ContractInfoForNomalEndSign", "success", "成功"); } catch (Exception e) { QuartzUtil.insertLog(startime, "quartz.ContractInfoForNomalEndSign", "success", "失败"); e.printStackTrace(); } } /* *检索一天里面正常结束的合同,并生成所有权转移证明,并电子签章 *7个合同大概40s * */ // public void ownershipTransferSign(JBOTransaction tx ) throws Exception{ // MakeContractInfo makeContract = new MakeContractInfo(); // String conInfo1 = makeContract.getContractId(tx); // if(!(conInfo1 == null || conInfo1.length() <= 0)){ // String[] conInfos = conInfo1.split(","); // ContractSignAction conSign=new ContractSignAction(); // for(String conInfo:conInfos){ // String customerName = conInfo.split("@")[1]; // String contractId = conInfo.split("@")[0]; // String businessStatus = conInfo.split("@")[2]; // //生成理赔关联附件 // Map param = new HashMap(); // param.put("contract_id", contractId); // param.put("flow_unid", contractId); // param.put("OBJECTTYPE", "产权转移单"); // param.put("NEW_TIME", StringFunction.getTodayNow()); // param.put("Flag", "true");//关联签约表 // param.put("Display", "true"); // param.put("ID", UUIDUtil.getUUID());//为了使用同一条Relative记录 // Transaction tran = Transaction.createTransaction("als"); // String templateParam = makeContract.initClaimsParams(param,tran,contractId); // CreateOfficeAction coa = new CreateOfficeAction(); // makeContract.deleteAttrAndContractInfo(tx, contractId); // if("37".equals(businessStatus)){ // //提前结清 // makeContract.createOfficeByTemplate(coa, templateParam, "所有权转移单","dc51c2a8661846528da47a03461e9f24" , customerName, null, tx); // }else if("35".equals(businessStatus)){ // //保险理赔(一辆车) // makeContract.createOfficeByTemplate(coa, templateParam, "所有权转移单(保险理赔)","efc6e5dfa79148ad84074d0203e6ed1d" , customerName, null, tx); // }else { // //正常结束 // makeContract.createOfficeByTemplate(coa, templateParam, "所有权转移单","041df2e804c54f8a8955457d586e8980" , customerName, null, tx); // } // //电子签约 // String sReturn = conSign.transferSign(tx, contractId); // if("success".equals(sReturn)){ // //如果签约成功,将合同状态改为105(结束) // ContractTransferRightForEnd ctrf = new ContractTransferRightForEnd(); // ctrf.setContract_id(contractId); // ctrf.updateContractStatues(tx); // } // } // } // } public void ownershipTransferSign(JBOTransaction tx ,JobExecutionContext arg0) throws Exception{ // MakeContractInfo makeContract = new MakeContractInfo(); String conInfo1 = getContractId(tx); if(!(conInfo1 == null || conInfo1.length() <= 0)){ String[] conInfos = conInfo1.split(","); // ContractSignAction conSign=new ContractSignAction(); for(String conInfo:conInfos){ String customerName = conInfo.split("@")[1]; String contractId = conInfo.split("@")[0]; String businessStatus = conInfo.split("@")[2]; //生成理赔关联附件 // Map param = new HashMap(); // param.put("contract_id", contractId); // param.put("flow_unid", contractId); // param.put("OBJECTTYPE", "产权转移单"); // param.put("NEW_TIME", StringFunction.getTodayNow()); // param.put("Flag", "true");//关联签约表 // param.put("Display", "true"); // param.put("CUSTOMER_NAME", customerName); // param.put("ID", UUIDUtil.getUUID());//为了使用同一条Relative记录 // String templateParam = initClaimsParams(param,tx,contractId); // CreateOfficeAction coa = new CreateOfficeAction(); // deleteAttrAndContractInfo(tx, contractId); // if("37".equals(businessStatus)){ // //提前结清 // makeContract.createOfficeByTemplate(coa, templateParam, "所有权转移单","dc51c2a8661846528da47a03461e9f24" , customerName, null, tx); // }else if("35".equals(businessStatus)){ // //保险理赔(一辆车) // makeContract.createOfficeByTemplate(coa, templateParam, "所有权转移单(保险理赔)","efc6e5dfa79148ad84074d0203e6ed1d" , customerName, null, tx); // }else { // //正常结束 // createOfficeByTemplate(coa, templateParam, "所有权转移单","041df2e804c54f8a8955457d586e8980" , customerName, null, tx); // } //电子签约 // String sReturn = conSign.transferSign(tx, contractId); // if("success".equals(sReturn)){ //如果签约成功,将合同状态改为105(结束) Transaction tran = Transaction.createTransaction("als"); BizObjectManager bm = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME, tran); bm.createQuery("update O set contract_status = '105' where id = '"+contractId+"'").executeUpdate(); SaveBusinessStatus.saveByContractId(contractId, tx, "61", jboName.getUserId(arg0, tx)); tran.commit(); // } } } } public String initClaimsParams(Map param,JBOTransaction sqlca,String contractId) throws Exception { //初始化一下基础参数 String fileSavePath = "d:/tmp/als/Upload"; StringBuffer templateParam = new StringBuffer(); templateParam.append("{"); for(String p:param.keySet()){ if("Flag".equals(p)||"Display".equals(p)){ templateParam.append("\""+p+"\"" + ":\"" + param.get(p) + "\"@"); }else{ templateParam.append("\""+p.toUpperCase()+"\"" + ":\"" + param.get(p) + "\"@"); } } templateParam.append("\"CurUserId\":\""); templateParam.append("admin"); templateParam.append("\"@\"CurOrgId\":\""); templateParam.append("8001007"); templateParam.append("\"@\"fileSavePath\":\""); templateParam.append(fileSavePath+"\""); return templateParam.toString(); } //获取正常结束的合同没有电子签约的合同号 public String getContractId(JBOTransaction tx ) throws Exception{ BizObjectManager bom=JBOFactory.getBizObjectManager(VI_NORMALEND_CONTRACT.CLASS_NAME,tx); List boList = bom.createQuery("contract_status <> '105'").getResultList(true); String conInfos = new String(); for(BizObject bo : boList){ conInfos += bo.getAttribute("id")+"@"; conInfos += bo.getAttribute("customername")+"@"; conInfos += bo.getAttribute("BUSINESS_STATUS")+","; } return conInfos; } public void createOfficeByTemplate(CreateOfficeAction coa,String templateParam,String docName,String templetNo,String otherName,String otherParam,JBOTransaction sqlca) throws Exception{ StringBuffer sql = new StringBuffer(); sql.append(templateParam.toString()); sql.append("@"); sql.append("\"DOCNAME\":\""); sql.append(docName); sql.append("\""); sql.append("@"); sql.append("\"OTHERNAME\":\""); sql.append(otherName); sql.append("\""); if(otherParam != null){ sql.append(otherParam); } sql.append("}"); coa.setTemplateParam(sql.toString()); coa.setTemplateNo(templetNo); coa.createOfficeByTemplate(sqlca); } public void deleteAttrAndContractInfo(JBOTransaction tx,String contract_id) throws Exception{ BizObjectManager LdrBom=JBOFactory.getBizObjectManager(jbo.app.tenwa.doc.LB_DOCRELATIVE.CLASS_NAME); BizObjectManager LdclBom=JBOFactory.getBizObjectManager(jbo.app.tenwa.doc.LB_DOC_CONTRACT_LIST.CLASS_NAME); BizObjectManager LdlBom=JBOFactory.getBizObjectManager(jbo.app.tenwa.doc.LB_DOCLIBRARY.CLASS_NAME); BizObjectManager LdaBom=JBOFactory.getBizObjectManager(jbo.app.tenwa.doc.LB_DOCATTRIBUTE.CLASS_NAME); BizObject LdrBo = LdrBom.createQuery("contract_id = :contract_id and objecttype = '产权转移单'").setParameter("contract_id",contract_id).getSingleResult(true); if(LdrBo!=null){ BizObject LdlBo = LdlBom.createQuery("relative_id=:id and doc_class_itemno = '010003'").setParameter("id",LdrBo.getAttribute("id").toString()).getSingleResult(true); if(LdlBo!=null){ LdaBom.createQuery("delete from O where library_id = :id").setParameter("id",LdlBo.getAttribute("id").toString()).executeUpdate(); } } int LdclBo = LdclBom.createQuery("delete from O where flow_unid = :contract_id and doc_name like '所有权%'").setParameter("contract_id",contract_id).executeUpdate(); } }