214 lines
9.6 KiB
Java
214 lines
9.6 KiB
Java
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<String,String> param = new HashMap<String,String>();
|
||
// 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<String,String> param = new HashMap<String,String>();
|
||
// 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<String,String> 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<BizObject> 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();
|
||
}
|
||
}
|