package com.tenwa.flow.action.comm; import jbo.sys.FLOW_LOG; import jbo.sys.FLOW_TASK; import com.amarsoft.app.flow.FlowAction; import com.amarsoft.app.lc.util.DateAssistant; import com.amarsoft.are.jbo.BizObject; import com.amarsoft.are.jbo.BizObjectManager; import com.amarsoft.are.jbo.BizObjectQuery; import com.amarsoft.are.jbo.JBOFactory; import com.amarsoft.are.jbo.JBOTransaction; import com.amarsoft.biz.workflow.FlowService; import com.amarsoft.dict.als.manage.NameManager; public abstract class CommonAction extends BaseTable { public String ApplyType; private FlowService flowService; public String ObjectNo; public String ObjectType; public String initFLow(JBOTransaction tx) throws Exception { return null; }; //增加一个用于接口调用的发起流程方法, 返回一些需要的信息 public String interfaceInitFlow ( JBOTransaction tx ) throws Exception { return null; }; public String deleteFlow(JBOTransaction tx) throws Exception { this.getFlowService().delete(ObjectNo, ObjectType, tx); return "success"; } public String startFlow(JBOTransaction tx, String flowUnid)throws Exception { String returnValue = "success"; FlowAction flowAction = new FlowAction(); flowAction.setApplyType(getApplyType()); flowAction.setObjectNo(flowUnid); flowAction.setUserID(this.CurUserID); String flowActionReturn = flowAction.initFlow(tx); if ("success".equals(flowActionReturn)) { BizObjectManager tableEquip = JBOFactory.getBizObjectManager(FLOW_TASK.CLASS_NAME); tx.join(tableEquip); BizObjectQuery bqDest = tableEquip.createQuery("ObjectNo=:ObjectNo"); bqDest.setParameter("ObjectNo",flowUnid); BizObject Object = null; Object = bqDest.getSingleResult(true);// 目标JBO,需要做更新操作 // 初始化流程成功,返回成功标识+“@”+任务编号 returnValue = "success" + "@" +Object.getAttribute("SERIALNO").getString(); BizObjectManager flManager = JBOFactory.getBizObjectManager(FLOW_LOG.CLASS_NAME, tx); BizObject fl = flManager.newObject(); fl.setAttributeValue("taskno", Object.getAttribute("SERIALNO").getString()); fl.setAttributeValue("flowunid", flowUnid); fl.setAttributeValue("logcontent", NameManager.getUserName(this.CurUserID)+"在"+DateAssistant.getTodayNow()+"时发起流程"); fl = this.initTabeUserInfo(fl); flManager.saveObject(fl); }else{ returnValue = "failed" + "@" + flowAction.getTaskNo(); } return returnValue; } public String getApplyType() { return ApplyType; } public void setApplyType(String applyType) { ApplyType = applyType; } public void setFlowService(FlowService flowService) { this.flowService = flowService; } public FlowService getFlowService() { if(null==flowService){ this.flowService= new FlowService(); return flowService; }else{ return flowService; } } public String getObjectNo() { return ObjectNo; } public void setObjectNo(String objectNo) { ObjectNo = objectNo; } public String getObjectType() { return ObjectType; } public void setObjectType(String objectType) { ObjectType = objectType; } }