| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- package cn.com.lzt.useractiviti.data.util;
- import cn.com.lzt.useractiviti.data.util.tools.DefaultActivitiTools;
- import com.lowagie.text.Element;
- import org.activiti.engine.ProcessEngine;
- import org.activiti.engine.ProcessEngines;
- import org.activiti.engine.history.HistoricProcessInstance;
- import org.apache.commons.lang.StringUtils;
- import org.jeecgframework.core.util.ApplicationContextUtil;
- import org.jeecgframework.web.system.service.SystemService;
- import org.jeecgframework.workflow.common.WorkFlowGlobals;
- import org.jeecgframework.workflow.pojo.base.TPProcess;
- import org.jeecgframework.workflow.pojo.base.TSBusConfig;
- import org.jeecgframework.workflow.processconfig.entity.TProcessBusconfigEntity;
- import org.springframework.context.ApplicationContext;
- import org.springframework.util.ClassUtils;
- import javax.servlet.http.HttpServletResponse;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- public abstract class ActivitiTools {
- protected String procInstId;
- protected String busId;
- protected String title ;
- protected Date requestTime;
- protected String tableName;
- protected ActivitiPdfExport pdfExport;
- protected HistoricProcessInstance process;
- protected static SystemService systemService;
- static {
- ApplicationContext context = ApplicationContextUtil.getContext();
- systemService=context.getBean(SystemService.class);
- }
- public ActivitiTools(){
- pdfExport = new ActivitiPdfExport();
- }
- public List<Element> printElementList(){
- printBusinessInfo();
- printActivitiInfo();
- List<Element> list = pdfExport.getFinalList();
- return list;
- }
- public void exportToResponse(HttpServletResponse res) {
- printBusinessInfo();
- printActivitiInfo();
- pdfExport.export(res);
- }
- public void view(HttpServletResponse res) {
- printBusinessInfo();
- printActivitiInfo();
- pdfExport.view(res);
- }
- public static ActivitiTools getInstanceByConfigId(String configId){
- TProcessBusconfigEntity busconfigEntity = systemService.getEntity(TProcessBusconfigEntity.class,configId);
- String activitiConfigClass = busconfigEntity.getActivitiConfigClass();
- ActivitiTools tools = null;
- if(StringUtils.isBlank(activitiConfigClass)){//没有处理类
- tools = new DefaultActivitiTools();
- }else {
- try {
- Class<?> clazz = ClassUtils.forName(activitiConfigClass, ActivitiTools.class.getClassLoader());
- tools = (ActivitiTools) clazz.newInstance();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InstantiationException e) {
- e.printStackTrace();
- }
- }
- return tools;
- }
- public static ActivitiTools getInstance(String procInstId){
- return getInstance(procInstId,false);
- }
- public static ActivitiTools getInstance(String procInstId,boolean returnDefault){
- ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
- // ProcessInstance process = processEngine.getRuntimeService()
- // .createProcessInstanceQuery().includeProcessVariables().processInstanceId(procInstId).singleResult();
- HistoricProcessInstance process = processEngine.getHistoryService()
- .createHistoricProcessInstanceQuery().includeProcessVariables()
- .processInstanceId(procInstId)
- .singleResult();
- String procDefId = null;
- String title = null;
- Date requestTime = null;
- String busId =null;
- if(process!=null){
- procDefId = process.getProcessDefinitionId();
- Map<String,Object> varMap = process.getProcessVariables();
- title = varMap.get(WorkFlowGlobals.BPM_BIZ_TITLE).toString();
- busId = process.getBusinessKey();
- requestTime = process.getStartTime();
- }
- if(StringUtils.isBlank(procDefId)){
- return null;
- }
- String procKey =procDefId.substring(0,20);
- //查流程
- TPProcess processEntity = systemService.findUniqueByProperty(TPProcess.class,"processkey",procKey);
- String processId = processEntity.getId();
- //查处理类
- TSBusConfig busConfig = systemService.findUniqueByProperty(TSBusConfig.class,"TPProcess.id",processId);
- String configId = busConfig.getConfigId();
- TProcessBusconfigEntity busconfigEntity = systemService.getEntity(TProcessBusconfigEntity.class,configId);
- String activitiConfigClass = busconfigEntity.getActivitiConfigClass();
- ActivitiTools tools = null;
- if(StringUtils.isBlank(activitiConfigClass)){//没有处理类
- if(returnDefault) {
- tools = new DefaultActivitiTools();
- }else {
- return null;
- }
- }else {
- try {
- Class<?> clazz = ClassUtils.forName(activitiConfigClass, ActivitiTools.class.getClassLoader());
- tools = (ActivitiTools) clazz.newInstance();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InstantiationException e) {
- e.printStackTrace();
- }
- }
- if(tools!=null) {
- tools.procInstId=procInstId;
- tools.busId = busId;
- tools.title = title;
- tools.requestTime=requestTime;
- tools.process = process;
- if(process.getDurationInMillis()!=null &&process.getDurationInMillis()>0) {
- //不是很严谨,但是前端控制只有流程中和审批通过能打印,撤回等操作不能打印
- tools.pdfExport.accessImg(true);
- }
- tools.tableName=busconfigEntity.getRealTablename();
- }
- return tools;
- }
- protected void printActivitiInfo(){
- pdfExport.title(title);
- pdfExport.requestTime(requestTime).procInstId(procInstId);
- }
- protected abstract void printBusinessInfo();
- public abstract String replaceProcessTitle(Map<String, Object> dataForm);
- protected boolean isProcessFinished(){
- if(process==null) return false;
- return process.getDurationInMillis()!=null &&process.getDurationInMillis()>0;
- }
- public String getProcInstId() {
- return procInstId;
- }
- public void setProcInstId(String procInstId) {
- this.procInstId = procInstId;
- }
- public String getBusId() {
- return busId;
- }
- public void setBusId(String busId) {
- this.busId = busId;
- }
- public ActivitiPdfExport getPdfExport() {
- return pdfExport;
- }
- public void setPdfExport(ActivitiPdfExport pdfExport) {
- this.pdfExport = pdfExport;
- }
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
- public Date getRequestTime() {
- return requestTime;
- }
- public void setRequestTime(Date requestTime) {
- this.requestTime = requestTime;
- }
- }
|