From dc30f170c5da57b852f7540d11428008a412a68c Mon Sep 17 00:00:00 2001 From: jianghongdong Date: Wed, 18 Jul 2018 19:48:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=88=E5=90=8C=E6=92=A4?= =?UTF-8?q?=E9=94=80=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../message/controller/BusinessCancelJob.java | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 src_core/com/tenwa/comm/message/controller/BusinessCancelJob.java diff --git a/src_core/com/tenwa/comm/message/controller/BusinessCancelJob.java b/src_core/com/tenwa/comm/message/controller/BusinessCancelJob.java new file mode 100644 index 000000000..7e2ee2ebd --- /dev/null +++ b/src_core/com/tenwa/comm/message/controller/BusinessCancelJob.java @@ -0,0 +1,102 @@ +package com.tenwa.comm.message.controller; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import jbo.com.tenwa.entity.comm.message.BT_BUSSINESS_MESSAGE_CONFIG; +import jbo.com.tenwa.lease.comm.LB_BUSINESS_OVERDATE; +import jbo.com.tenwa.lease.comm.LB_CANCLE_INFO; +import jbo.com.tenwa.lease.comm.LB_PROJECT_INFO; + +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.JBOException; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.are.jbo.JBOTransaction; +import com.amarsoft.are.util.StringFunction; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +/** + * 对业务审批结束后超过指定时间未合同制作的业务合同进行 + * 业务撤销操作 + * @author jianghd + * + */ +public class BusinessCancelJob implements Job { + + private String overDate; + @Override + public void execute(JobExecutionContext arg0) throws JobExecutionException { + JBOTransaction tx=null; + try { + tx= JBOFactory.createJBOTransaction(); + this.executeMessage(tx); + tx.commit(); + } catch (Exception e) { + try { + if(tx!=null){ + tx.rollback(); + } + } catch (JBOException e1) { + e1.printStackTrace(); + } + e.printStackTrace(); + } + } + /** + * 获取符合合同撤销条件的项目基本信息 + * @param tx + * @return + * @throws Exception + */ + public List> loadMessageNo(JBOTransaction tx ) throws Exception{ + //1.获取配置的超时天数 + String sql1 = "SELECT max(INPUTTIME) inputtime,over_date FROM lb_business_overdate where inputtime is not null and over_date>0 group by INPUTTIME"; + List> ds = DataOperatorUtil.getDataBySql(tx, sql1, null); + overDate = ""; + if(ds.size()>0){ + overDate = ds.get(0).get("over_date"); + } + if(overDate ==""||Integer.parseInt(overDate)==0){ + return null; + } + //2.获取超时的未制作合同的业务记录 + String sql="select ID from lb_project_info O where O.project_status='13'"+ + " and not EXISTS (select 1 from flow_bussiness_object fbo where fbo.proj_id=O.id and fbo.flow_name='合同制作流程')"+ + " and not EXISTS (select 1 from lb_contract_info_temp lci where lci.project_id=O.id)"+ + " and TO_DAYS(SYSDATE())-TO_DAYS(O.end_date)>"+overDate; + ds = DataOperatorUtil.getDataBySql(tx, sql, null); + if(ds.size()>0){ + return ds; + } + return null; + } + public void executeMessage( JBOTransaction tx ) throws Exception{ + List> ds=this.loadMessageNo(tx); + BizObjectManager lpibom = JBOFactory.getBizObjectManager(LB_PROJECT_INFO.CLASS_NAME, tx); + BizObjectManager lcibom = JBOFactory.getBizObjectManager(LB_CANCLE_INFO.CLASS_NAME, tx); + if(ds!=null){ + for (Map map : ds) { + //1.更新项目表状态为104 + lpibom.createQuery("update O set project_status='104' where id=:id").setParameter("ID", map.get("ID")).executeUpdate(); + //2.新增项目对应撤销详情 + BizObject lcibo = lcibom.newObject(); + lcibo.setAttributeValue(LB_CANCLE_INFO.CANCLE_DATE, StringFunction.getTodayNow()); + lcibo.setAttributeValue(LB_CANCLE_INFO.CANCLE_RESON,"系统检测到该业务超过合同制作等待发起时间:"+overDate+"天,故自动撤销该业务。"); + lcibo.setAttributeValue(LB_CANCLE_INFO.INPUTTIME,StringFunction.getTodayNow()); + lcibo.setAttributeValue(LB_CANCLE_INFO.INPUTUSERID,"system"); + lcibo.setAttributeValue(LB_CANCLE_INFO.INPUTORGID,"system"); + lcibo.setAttributeValue(LB_CANCLE_INFO.PROJECT_ID,map.get("ID")); +// lcibo.setAttributeValue(LB_CANCLE_INFO.CANCLE_TYPE,""); + lcibom.saveObject(lcibo); + } + } + } + +}