package com.tenwa.flow.bussinessapprove; import java.text.SimpleDateFormat; import java.util.Date; import jbo.com.tenwa.lease.carbrand.BUSINESS_STATUS; import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO; 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.jbo.JBOTransaction; 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.reckon.util.UUIDUtil; /** * 更新业务状态与业务详情表记录 * @author jianghd * */ public class BussinessStatusAndDetailAction { //1.后续随项目进行到一定阶段时对业务状态与详情的处理 public static String stageRun(JBOTransaction tx,String CurUserID,String ProjectIdOrContractId,String statusCode) throws Exception{ BizObjectManager bsBom = JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx); Transaction tran = Transaction.createTransaction(tx); ASUser user = ASUser.getUser(CurUserID, tran); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); String now = sdf.format(new Date(System.currentTimeMillis())); SqlObject lpi = new SqlObject("SELECT LPI.CONTRACT_NUMBER FROM LB_PROJECT_INFO LPI WHERE LPI.ID='"+ProjectIdOrContractId+"'"); SqlObject lci = new SqlObject("SELECT LPI.CONTRACT_NUMBER FROM LB_CONTRACT_INFO LPI WHERE LPI.ID='"+ProjectIdOrContractId+"'"); ASResultSet ass = tran.getASResultSet(lpi); String contractNumber = ""; SqlObject so; String bStatus =""; if(ass.next()){ contractNumber = ass.getString("CONTRACT_NUMBER"); bStatus = bsBom.createQuery("CONTRACT_NUMBER=:ContractNumber").setParameter("ContractNumber", contractNumber).getSingleResult(true).getAttribute("BUSINESS_STATUS").getString(); JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx) .createQuery("UPDATE O SET BUSINESS_STATUS='"+statusCode+"',UPDATEUSERID='"+user.getUserID()+"',UPDATEORGID='"+user.getOrgID()+"',UPDATETIME='"+now+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate(); so = new SqlObject("INSERT INTO BUSINESS_DETAIL(ID,CONTRACT_NUMBER,BUSINESS_STATUS,INPUTUSERID,INPUTORGID,INPUTTIME,BEFORE_STATUS) SELECT SYS_GUID(),CONTRACT_NUMBER,'"+statusCode+"','"+user.getUserID()+"','"+user.getOrgID()+"','"+StringFunction.getTodayNow().replaceAll(":", "△")+"','"+bStatus+"' FROM LB_PROJECT_INFO WHERE ID='"+ProjectIdOrContractId+"'"); so.setDebugSql(so.getDebugSql().replaceAll("△", ":")); so.setOriginalSql(so.getOriginalSql().replaceAll("△", ":")); so.setRunSql(so.getRunSql().replaceAll("△", ":")); tran.executeSQL(so); }else{ ass = tran.getASResultSet(lci); if(ass.next()){contractNumber = ass.getString("CONTRACT_NUMBER");} BizObject bo = bsBom.createQuery("CONTRACT_NUMBER=:ContractNumber").setParameter("ContractNumber", contractNumber).getSingleResult(true); 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",user.getUserID()); bo.setAttributeValue("INPUTORGID",user.getOrgID()); bo.setAttributeValue("INPUTTIME",now); bsBom.saveObject(bo); bStatus = "1"; } JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx) .createQuery("UPDATE O SET BUSINESS_STATUS='"+statusCode+"',UPDATEUSERID='"+user.getUserID()+"',UPDATEORGID='"+user.getOrgID()+"',UPDATETIME='"+now+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate(); so = new SqlObject("INSERT INTO BUSINESS_DETAIL(ID,CONTRACT_NUMBER,BUSINESS_STATUS,INPUTUSERID,INPUTORGID,INPUTTIME,BEFORE_STATUS) SELECT replace(UUID(),'-',''),CONTRACT_NUMBER,'"+statusCode+"','"+user.getUserID()+"','"+user.getOrgID()+"','"+StringFunction.getTodayNow().replaceAll(":", "△")+"','"+bStatus+"' FROM LB_CONTRACT_INFO WHERE ID='"+ProjectIdOrContractId+"'"); so.setDebugSql(so.getDebugSql().replaceAll("△", ":")); so.setOriginalSql(so.getOriginalSql().replaceAll("△", ":")); so.setRunSql(so.getRunSql().replaceAll("△", ":")); tran.executeSQL(so); } return "true"; } //2.取消时的处理 public static String CancelRun(JBOTransaction tx,String CurUserID,String ProjectIdOrContractId,String delCode)throws Exception{ Transaction tran = Transaction.createTransaction(tx); SqlObject lpi = new SqlObject("SELECT LPI.CONTRACT_NUMBER FROM LB_PROJECT_INFO LPI WHERE LPI.ID='"+ProjectIdOrContractId+"'"); SqlObject lci = new SqlObject("SELECT LPI.CONTRACT_NUMBER FROM LB_CONTRACT_INFO LPI WHERE LPI.ID='"+ProjectIdOrContractId+"'"); ASResultSet ass = tran.getASResultSet(lpi); String contractNumber = ""; SqlObject so; String bStatus =""; if(ass.next()){ contractNumber = ass.getString("CONTRACT_NUMBER"); so = new SqlObject("select before_status from BUSINESS_DETAIL where CONTRACT_NUMBER='"+contractNumber+"' and BUSINESS_STATUS='"+delCode+"'"); ASResultSet rs = tran.getASResultSet(so); if(rs.next()){ bStatus = rs.getString("before_status"); } JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx) .createQuery("UPDATE O SET BUSINESS_STATUS='"+bStatus+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate(); so = new SqlObject("DELETE FROM BUSINESS_DETAIL WHERE CONTRACT_NUMBER='"+contractNumber+"' AND BUSINESS_STATUS='"+delCode+"'"); tran.executeSQL(so); }else{ ass = tran.getASResultSet(lci); if(ass.next()){contractNumber = ass.getString("CONTRACT_NUMBER");} contractNumber = ass.getString("CONTRACT_NUMBER"); so = new SqlObject("select before_status from BUSINESS_DETAIL where CONTRACT_NUMBER='"+contractNumber+"' and BUSINESS_STATUS='"+delCode+"'"); ASResultSet rs = tran.getASResultSet(so); if(rs.next()){ bStatus = rs.getString("before_status"); } JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx) .createQuery("UPDATE O SET BUSINESS_STATUS='"+bStatus+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate(); so = new SqlObject("DELETE FROM BUSINESS_DETAIL WHERE CONTRACT_NUMBER='"+contractNumber+"' AND BUSINESS_STATUS='"+delCode+"'"); tran.executeSQL(so); } return "true"; } }