博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php解析mpp文件中的前置任务
阅读量:6691 次
发布时间:2019-06-25

本文共 1855 字,大约阅读时间需要 6 分钟。

获取层级的project任务  

 

启动javabridge

java -jar JavaBridge.jar SERVLET_LOCAL:8089

1.读取mpp文件

$file_path = "/new.mpp";    $file_path = getcwd() . $file_path;    if (!file_exists($file_path)) {        var_dump("文件不存在");        return;    }    $mppRead = new Java('net.sf.mpxj.mpp.MPPReader'); try { $Filecontent = $mppRead->read($file_path); } catch (Exception $e) { var_dump($e); return; }

2.获取任务

获取project的任务

$allTasks   = $Filecontent->getChildTasks();$tasks_size = java_values($allTasks->size());if($tasks_size){    getChildren($allTasks[0]);}

说明:

  $Filecontent->getChildTasks()获取的是文件,即$allTasks[0]为project文件,再向下是任务

获取任务的基本信息及获取任务流

function getChildren($task){    $child      = $task->getChildTasks();    $tasks_size = java_values($child->size());    $data       = array();    for ($i = 0; $i < $tasks_size; $i++) {        $tmp                      = getResource($child[$i]);        $items                    = array();        $items['id']              = $child[$i]->getID() . '';        $items['name']            = $child[$i]->getName() . '';        //前置任务        $prev_task = getProcessors($child[$i]);        if ($prev_task) {            $items['prev_task'] = $prev_task;        }        //获取下一级任务        $children = getChildren($child[$i]);        if ($children) {            $items['children'] = $children;        }        $data[] = $items;    }    return $data;}

获取任务流(即前置任务)具体实现

function getProcessors($task){    $items            = array();    $rs               = '';    $predecessorLinks = $task->getPredecessors();    $size             = java_values($predecessorLinks->size());    $data             = array();    for ($i = 0; $i < $size; $i++) {        $tmp = $predecessorLinks[$i]->getTargetTask()->getUniqueID() . '';        if ($tmp) {            $items[] = $tmp;        }    }    if ($items) {        $rs = implode(',', $items);    }    return $rs;}

 

 

转载地址:http://eckoo.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
Linux运维系统工程师与java基础学习系列-4
查看>>
我的友情链接
查看>>
嵌入式设备上的linux开发
查看>>
[源码分享]本地文件的读写
查看>>
JavaScript表单验证插件大全
查看>>
SQL Server2000远程登录常见问题
查看>>
Activity的LaunchMode
查看>>
Centos命令行安装软件
查看>>
我的友情链接
查看>>
cookie记录最近浏览商品记录(取最新的五个浏览记录)
查看>>
CentOS配置snmp代理
查看>>
淘宝的搜索核心是什么?
查看>>
项目进度管理及成本管理知识要点
查看>>
Linux服务器上监控网络带宽的18个常用命令
查看>>
【java解惑】多重强转引发的问题
查看>>
用goaccess每天自动分析nginx日志
查看>>
gettickcount()
查看>>
ssh普通用户进行无密码登陆
查看>>
OGG运维优化脚本(二十)-进程操作类--强制时间点调整
查看>>