From 7bebae10d7551e5dec08a0cf2963d11235c66ad7 Mon Sep 17 00:00:00 2001 From: liuzhao Date: Wed, 9 Jan 2019 14:17:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E9=80=BE?= =?UTF-8?q?=E6=9C=9F=E5=A4=A9=E6=95=B0=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=90=88?= =?UTF-8?q?=E5=90=8C=E6=AD=A3=E5=B8=B8=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comm/util/jboutil/SaveBusinessStatus.java | 7 ++- src_tenwa/quartz/ContractInfoForOverdue.java | 58 ++++++++++++++----- 2 files changed, 50 insertions(+), 15 deletions(-) diff --git a/src_core/com/tenwa/comm/util/jboutil/SaveBusinessStatus.java b/src_core/com/tenwa/comm/util/jboutil/SaveBusinessStatus.java index 05d92ce78..eecb6f453 100644 --- a/src_core/com/tenwa/comm/util/jboutil/SaveBusinessStatus.java +++ b/src_core/com/tenwa/comm/util/jboutil/SaveBusinessStatus.java @@ -48,11 +48,14 @@ public class SaveBusinessStatus { */ public static void saveByContractId(String contractId ,JBOTransaction tx ,String statusCode,String userid) throws JBOException{ BizObject lcibo = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME).createQuery("ID=:ID").setParameter("ID", contractId).getSingleResult(false); - String cn = lcibo.getAttribute(LB_CONTRACT_INFO.CONTRACT_NUMBER).getString(); + String cn = ""; + if (lcibo !=null){ + cn = lcibo.getAttribute(LB_CONTRACT_INFO.CONTRACT_NUMBER)==null?"":lcibo.getAttribute(LB_CONTRACT_INFO.CONTRACT_NUMBER).getString(); + } BizObject contractOverdue = JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.VI_CONTRACT_OVERDUE", "contract_id=:contract_id").setParameter("contract_id", contractId).getSingleResult(false); String overDays = ""; if(contractOverdue !=null){ - overDays = contractOverdue.getAttribute("over_days").toString(); + overDays = contractOverdue.getAttribute("over_days")==null?"":contractOverdue.getAttribute("over_days").toString(); } ASUser user = new ASUser(userid); BizObjectManager bsbom = JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME, tx); diff --git a/src_tenwa/quartz/ContractInfoForOverdue.java b/src_tenwa/quartz/ContractInfoForOverdue.java index e1cbc4665..0b5e94e3f 100644 --- a/src_tenwa/quartz/ContractInfoForOverdue.java +++ b/src_tenwa/quartz/ContractInfoForOverdue.java @@ -1,8 +1,10 @@ package quartz; import java.util.List; +import java.util.Map; import jbo.app.tenwa.calc.VI_CONTRACT_OVERDUE; +import jbo.com.tenwa.lease.carbrand.BUSINESS_STATUS; import org.quartz.Job; import org.quartz.JobExecutionContext; @@ -10,10 +12,12 @@ 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.base.util.QuartzUtil; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; //import com.tenwa.action.channelportal.ContractSignAction; //import com.tenwa.action.channelportal.comm.ContractTransferRightForEnd; import com.tenwa.comm.util.jboutil.SaveBusinessStatus; @@ -33,6 +37,7 @@ public class ContractInfoForOverdue implements Job{ try { JBOTransaction tx = JBOFactory.createJBOTransaction(); ownershipTransferSign(tx,arg0); + contractNormal(tx,arg0); tx.commit(); QuartzUtil.insertLog(startime, "quartz.ContractInfoForOverdue", "success", "成功", curUserId); } catch (Exception e) { @@ -40,6 +45,43 @@ public class ContractInfoForOverdue implements Job{ e.printStackTrace(); } } + /** + * 将逾期的合同改为正常状态 + * @param tx + * @param arg0 + */ + private void contractNormal(JBOTransaction tx, JobExecutionContext arg0) { + String sql = "SELECT O.contract_number,O.over_days,lci.id FROM business_status O LEFT JOIN lb_contract_info lci ON lci.contract_number = O.contract_number WHERE (O.over_days IS NOT NULL OR O.over_days = '') AND DATE_FORMAT(O.inputtime, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY)"; + String contractNumber = ""; + String contractId = ""; + try { + //查询合同状态表中前一天的逾期合同 + List> list = DataOperatorUtil.getDataBySql(tx, sql, null); + if(list.size()>0){ + //循环遍历每一条逾期的合同 + for (Map map : list) { + contractNumber = map.get("contract_number"); + contractId = map.get("id"); + BizObject obj = JBOFactory.createBizObjectQuery(VI_CONTRACT_OVERDUE.CLASS_NAME, "contract_number=:contract_number").setParameter("contract_number", contractNumber).getSingleResult(false); + if(obj == null){//昨天逾期,今天未逾期,证明合同正常 + + //防止重复插入数据 + String sql1 = "SELECT business_status,contract_number,inputtime FROM business_status WHERE business_status='64' AND contract_number='"+contractNumber+"' AND LEFT(inputtime,10)=DATE_FORMAT(SYSDATE(), '%Y/%m/%d')"; + List> list2 = DataOperatorUtil.getDataBySql(tx, sql1, null); + if(list2.size()==0){ + + SaveBusinessStatus.saveByContractId(contractId, tx, "64", jboName.getUserId(arg0, tx)); + } + + } + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + + } public void ownershipTransferSign(JBOTransaction tx ,JobExecutionContext arg0) throws Exception{ String conInfo1 = getContractId(tx); @@ -47,19 +89,9 @@ public class ContractInfoForOverdue implements Job{ if(!(conInfo1 == null || conInfo1.length() <= 0)){ String[] conInfos = conInfo1.split(","); for(String conInfo:conInfos){ - String contractId = conInfo.split("@")[0]; - //String over_days = conInfo.split("@")[1]; - //BizObject lcibo = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME).createQuery("ID=:ID").setParameter("ID", contractId).getSingleResult(false); - //String contract_number = lcibo.getAttribute(LB_CONTRACT_INFO.CONTRACT_NUMBER).getString(); - //BizObject businessStatusObject = businessStatusManagr.createQuery("contract_number=:contract_number and business_status=:business_status") - //.setParameter("contract_number", contract_number).setParameter("business_status", "46").getSingleResult(false); - //if(businessStatusObject==null){ - SaveBusinessStatus.saveByContractId(contractId, tx, "46", jboName.getUserId(arg0, tx)); - //}else{ - //businessStatusManagr.createQuery("update O set over_days = '"+over_days+"',inputtime='"+StringFunction.getTodayNow()+"' where business_status='46' AND contract_number = '"+contract_number+"'").executeUpdate(); - //} - //BizObjectManager bm = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME, tx); - //bm.createQuery("update O set contract_status = '105' where id = '"+contractId+"'").executeUpdate(); + String contractId = conInfo.split("@")[0]; + SaveBusinessStatus.saveByContractId(contractId, tx, "46", jboName.getUserId(arg0, tx)); + } } }