You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

240 lines
5.3 KiB

<?php
error_reporting(E_ALL);
ini_set("display_errors", "on");
define('BASE_PATH',str_replace('//','/',realpath(dirname(__FILE__).'/'))."/");
class WorkFLowItems
{
public $system_id;
public $flow_id;
public $creator;
public $create_date;
public $wf_file;
public $wf_layout;
public $wf_version;
public $wf_name;
public $flow_chart;
const PREFIX_SAVE_DIR =BASE_PATH. "../../static/flow/";
public function __construct($systemId = null, $flowId = null)
{
$this->setSystemId($systemId)
->setFlowId($flowId);
}
/**
* @param string $systemId
* @param string $flowId
* @return array|void
*/
public static function get_records($systemId = "", $flowId = "")
{
// var_dump($_SERVER['DOCUMENT_ROOT']);
$where = " ";
$where .= !empty($systemId) ? (" and system_id like '" . $systemId . "%'") : "";
$where .= !empty($flowId) ? (" and flow_id like '" . $flowId . "%'") : "";
$where = $where == "where " ? "" : $where;
return DB::result("SELECT system_id,flow_id,creator,create_date,
wf_file,wf_layout,wf_version,wf_name
FROM workflow_items where 1=1 " . $where, false);
}
public function save()
{
#这里针对主机
$directory = self::PREFIX_SAVE_DIR . $this->getSystemId();
if (!file_exists($directory)) {
mkdir($directory, 0777, true);
chmod($directory, 0777);
}
$this->setWfFile($this->getFlowId() . ".json");
$path = $directory . "/" . $this->getWfFile();
echo $path;
DB::query("delete from workflow_items where
system_id='" . $this->getSystemId() . "' and flow_id='" . $this->getFlowId() . "'");
DB::insert_table("workflow_items", array(
'system_id' => $this->getsystemid(),
'flow_id' => $this->getflowid(),
'creator' => $this->getcreator(),
'wf_name' => $this->getwffile(),
'wf_version' => $this->getwfversion(),
'wf_layout' => "null",
'wf_file' => $path
));
file_put_contents($path, $this->getFlowChart());
}
public function parseFcToFields($flowChart = null)
{
$flowChart = empty($flowChart) ? $this->getFlowChart() : $flowChart;
$_flowChart = json_decode($flowChart, true);
$this->setWfVersion($_flowChart['version'])->setSystemId($_flowChart['systemId'])
->setFlowChart($flowChart)->setFlowId($_flowChart['flowId'])->setWfName($_flowChart['flowName']);
return $this;
}
public function setFlowChart($flowChart)
{
$this->flow_chart = $flowChart;
return $this;
}
/**
* @return mixed
*/
public function getSystemId()
{
return $this->system_id;
}
/**
* @param mixed $system_id
* @return WorkFLowItems
*/
public function setSystemId($system_id)
{
$this->system_id = $system_id;
return $this;
}
/**
* @return mixed
*/
public function getFlowId()
{
return $this->flow_id;
}
/**
* @param mixed $flow_id
* @return WorkFLowItems
*/
public function setFlowId($flow_id)
{
$this->flow_id = $flow_id;
return $this;
}
/**
* @return mixed
*/
public function getCreator()
{
return $this->creator;
}
/**
* @param mixed $creator
* @return WorkFLowItems
*/
public function setCreator($creator)
{
$this->creator = $creator;
return $this;
}
/**
* @return mixed
*/
public function getCreateDate()
{
return $this->create_date;
}
/**
* @param mixed $create_date
* @return WorkFLowItems
*/
public function setCreateDate($create_date)
{
$this->create_date = $create_date;
return $this;
}
/**
* @return mixed
*/
public function getWfFile()
{
return $this->wf_file;
}
/**
* @param mixed $wf_file
* @return WorkFLowItems
*/
public function setWfFile($wf_file)
{
$this->wf_file = $wf_file;
return $this;
}
/**
* @return mixed
*/
public function getWfLayout()
{
return $this->wf_layout;
}
/**
* @param mixed $wf_layout
* @return WorkFLowItems
*/
public function setWfLayout($wf_layout)
{
$this->wf_layout = $wf_layout;
return $this;
}
/**
* @return mixed
*/
public function getWfVersion()
{
return $this->wf_version;
}
/**
* @param mixed $wf_version
* @return WorkFLowItems
*/
public function setWfVersion($wf_version)
{
$this->wf_version = $wf_version;
return $this;
}
/**
* @return mixed
*/
public function getWfName()
{
return $this->wf_name;
}
/**
* @param mixed $wf_name
* @return WorkFLowItems
*/
public function setWfName($wf_name)
{
$this->wf_name = $wf_name;
return $this;
}
/**
* @return mixed
*/
public function getFlowChart()
{
return $this->flow_chart;
}
}