package com.tenwa.flow.comm.status; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP; import jbo.com.tenwa.lease.carbrand.BUSINESS_STATUS; import jbo.com.tenwa.lease.comm.LB_PROJECT_INFO; import com.amarsoft.are.jbo.BizObject; import com.amarsoft.are.jbo.BizObjectManager; import com.amarsoft.are.jbo.JBOFactory; import com.amarsoft.are.util.StringFunction; import com.amarsoft.awe.util.ASResultSet; import com.amarsoft.awe.util.SqlObject; import com.amarsoft.awe.util.Transaction; import com.amarsoft.context.ASUser; import com.tenwa.flow.baseBussion.BaseBussiness; /** * * @author jianghd * */ public class UpdateStatusAndSaveDetail extends BaseBussiness{ public Object run(Transaction Sqlca) throws Exception{ this.initBussinessParam(Sqlca.getTransaction()); String sFlowUnid = (String)this.getAttribute("ObjectNo"); String ProjectId = (String)this.getAttribute("ProjectId"); String ContractId = (String)this.getAttribute("ContractId"); String statusCode = (String)this.getAttribute("statusCode"); String contractNumber = (String)this.getAttribute("ContractNumber"); String userId = (String)this.getAttribute("CurUserID"); String PhaseNo = (String)this.getAttribute("PhaseNo"); if(!"0010".equals(PhaseNo)&&PhaseNo!=null){ userId = (String)this.getAttribute("CurFlowUserId"); } String orgId = new ASUser(userId).getOrgID(); String apprlyType = (String)this.getAttribute("applyType"); if("ActualPaymentApply".equals(apprlyType)){//实际放款流程 BizObjectManager lfitBom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME,Sqlca); List lfitBos=lfitBom.createQuery("FLOWUNID=:FlowUnid").setParameter("FlowUnid", sFlowUnid).getResultList(false); for (BizObject lfitbo : lfitBos) {//对批量的合同更新进度 ProjectId = lfitbo.getAttribute("PROJECT_ID").getString(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); String now = sdf.format(new Date(System.currentTimeMillis())); JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,Sqlca) .createQuery("UPDATE O SET BUSINESS_STATUS='"+statusCode+"',UPDATEUSERID='"+userId+"',UPDATEORGID='"+orgId+"',UPDATETIME='"+now+"' WHERE CONTRACT_NUMBER=(SELECT LPI.CONTRACT_NUMBER FROM "+LB_PROJECT_INFO.CLASS_NAME+" LPI WHERE LPI.ID='"+ProjectId+"')").executeUpdate(); SqlObject so = new SqlObject("INSERT INTO BUSINESS_DETAIL(ID,CONTRACT_NUMBER,BUSINESS_STATUS,INPUTUSERID,INPUTORGID,INPUTTIME) SELECT SYS_GUID(),CONTRACT_NUMBER,'"+statusCode+"','"+userId+"','"+orgId+"','"+StringFunction.getTodayNow().replaceAll(":", "△")+"' FROM LB_PROJECT_INFO WHERE ID='"+ProjectId+"'"); so.setDebugSql(so.getDebugSql().replaceAll("△", ":")); so.setOriginalSql(so.getOriginalSql().replaceAll("△", ":")); so.setRunSql(so.getRunSql().replaceAll("△", ":")); Sqlca.executeSQL(so); } }else{ if(contractNumber==null){ //FlowKey,ProjectName,ContractId String sql = ""; if(ContractId!=null){ sql = "SELECT LPI.CONTRACT_NUMBER FROM LB_CONTRACT_INFO LPI WHERE LPI.ID='"+ContractId+"'"; }else{ sql = "SELECT LPI.CONTRACT_NUMBER FROM LB_PROJECT_INFO LPI WHERE LPI.ID='"+ProjectId+"'"; } SqlObject lpisql = new SqlObject(sql); ASResultSet ass = Sqlca.getASResultSet(lpisql); if(ass.next()){ contractNumber = ass.getString("CONTRACT_NUMBER"); } } BizObjectManager bsBom = JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,Sqlca); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); String now = sdf.format(new Date(System.currentTimeMillis())); BizObject bo = bsBom.createQuery("CONTRACT_NUMBER=:ContractNumber").setParameter("ContractNumber", contractNumber).getSingleResult(true); String bStatus = ""; if(bo!=null){ bStatus = bo.getAttribute("BUSINESS_STATUS").getString(); }else{//初始化BussinessStatus bo = bsBom.newObject(); bo.setAttributeValue("BUSINESS_STATUS","1"); bo.setAttributeValue("CONTRACT_NUMBER",contractNumber); bo.setAttributeValue("INPUTUSERID",userId); bo.setAttributeValue("INPUTORGID",orgId); bo.setAttributeValue("INPUTTIME",now); bsBom.saveObject(bo); bStatus = "1"; } bsBom.createQuery("UPDATE O SET BUSINESS_STATUS='"+statusCode+"',UPDATEUSERID='"+userId+"',UPDATEORGID='"+orgId+"',UPDATETIME='"+now+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate(); SqlObject so = new SqlObject("INSERT INTO BUSINESS_DETAIL(ID,CONTRACT_NUMBER,BUSINESS_STATUS,INPUTUSERID,INPUTORGID,INPUTTIME,BEFORE_STATUS) SELECT replace(uuid(),'-',''),CONTRACT_NUMBER,'"+statusCode+"','"+userId+"','"+orgId+"','"+StringFunction.getTodayNow().replaceAll(":", "△")+"','"+bStatus+"' FROM LB_PROJECT_INFO WHERE ID='"+ProjectId+"'"); so.setDebugSql(so.getDebugSql().replaceAll("△", ":")); so.setOriginalSql(so.getOriginalSql().replaceAll("△", ":")); so.setRunSql(so.getRunSql().replaceAll("△", ":")); Sqlca.executeSQL(so); } String sMessage="true"; return sMessage; } }