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.
242 lines
6.5 KiB
242 lines
6.5 KiB
<?php
|
|
|
|
/***
|
|
* Class SubflowManager
|
|
* @desc 对workflow_sublow 新增查询操作
|
|
* @date 2018年8月5日11:42:58
|
|
* @author u73376@yuntay.com.cn
|
|
*/
|
|
class SubflowManager
|
|
{
|
|
private $parent_key;
|
|
private $seq = 0;
|
|
|
|
public function __construct(Flow $parentFlow = null)
|
|
{
|
|
if (!empty($parentFlow)) {
|
|
$this->parent_key = $parentFlow->getFormKey();
|
|
}
|
|
$this->seq = $this->_getSeq();
|
|
}
|
|
|
|
public function __toString()
|
|
{
|
|
return json_encode($this);
|
|
}
|
|
|
|
public static function getDetail($parentKey, $seq = 0)
|
|
{
|
|
$detail = DB::result("select * from workflow_subflow where
|
|
seq='" . $seq . "' and parent_key ='" . $parentKey . "'");
|
|
return $detail;
|
|
|
|
}
|
|
|
|
/**
|
|
* @desc workflow_sublow 新增一条记录
|
|
* @param Subflow $subflow
|
|
* @param $sender
|
|
* @param int $seq
|
|
*/
|
|
public function append(Subflow $subflow, $sender, $seq = null)
|
|
{
|
|
DB::query("insert into workflow_subflow (FORM_KEY, SEQ, PARENT_KEY, LEADER_NO, CREATE_DATE, SENDER)
|
|
values ('" . $subflow->getFormKey() . "',
|
|
'" . $this->seq . "',
|
|
'" . $this->parent_key . "',
|
|
'" . $subflow->current_assigner . "',
|
|
now(),
|
|
'" . $sender . "' ) ");
|
|
|
|
}
|
|
|
|
static function getChildNode($childFormKey)
|
|
{
|
|
|
|
|
|
$node = DB::result("select * from workflow_subflow where form_key
|
|
='" . $childFormKey . "'");
|
|
return $node[0];
|
|
}
|
|
|
|
/**
|
|
* 未回复统计
|
|
* @return integer|null
|
|
*/
|
|
public function getUnReplyCount($seq = null)
|
|
{
|
|
if ($seq == null) {
|
|
return null;
|
|
}
|
|
list($cnt) = DB::fields("select count(*) from workflow_subflow where
|
|
reply_flag is null and seq='" . $seq . "' and parent_key ='" . $this->parent_key . "'");
|
|
return $cnt;
|
|
}
|
|
|
|
/**
|
|
* 未回复明细
|
|
* @return array|void
|
|
*/
|
|
public function getUnReplyDetail($seq = null)
|
|
{
|
|
if ($seq == null) {
|
|
return null;
|
|
}
|
|
list($detail) = DB::fields("select * from workflow_subflow where
|
|
reply_flag is null and seq='" . $seq . "' and parent_key ='" . $this->parent_key . "'");
|
|
return $detail;
|
|
}
|
|
|
|
/**
|
|
* 已回复统计
|
|
* @param null $seq
|
|
* @return integer
|
|
*/
|
|
public function getReplyCount($seq = null)
|
|
{
|
|
if ($seq == null) {
|
|
return null;
|
|
}
|
|
list($cnt) = DB::fields("select count(*) from workflow_subflow where
|
|
reply_flag is not null and seq='" . $seq . "' and parent_key ='" . $this->parent_key . "'");
|
|
return $cnt;
|
|
}
|
|
|
|
/**
|
|
* 已回复明细
|
|
* @param null $seq 会签的序号
|
|
* @return integer
|
|
*/
|
|
public function getReplyDetail($seq = null)
|
|
{
|
|
if ($seq == null) {
|
|
return null;
|
|
}
|
|
$detail = DB::result("select * from workflow_subflow where
|
|
reply_flag is not null and seq='" . $seq . "' and parent_key ='" . $this->parent_key . "'");
|
|
return $detail;
|
|
}
|
|
|
|
/**
|
|
* 获取$parentKey 已经会签或拆分的次数
|
|
* @return integer
|
|
*/
|
|
private function _getSeq()
|
|
{
|
|
list($cnt) = DB::fields("select nvl(max(seq),-1)+1 from workflow_subflow where
|
|
parent_key ='" . $this->parent_key . "'");
|
|
return $cnt;
|
|
}
|
|
|
|
/**
|
|
* 获取$parentKey已经会签或拆分的次数
|
|
* @return integer
|
|
*/
|
|
public static function getSeqByFormKey($formKey)
|
|
{
|
|
list($seq) = DB::fields("select seq from workflow_subflow where
|
|
form_key ='" . $formKey . "'");
|
|
return $seq;
|
|
}
|
|
|
|
/**
|
|
* 获取该节点
|
|
* @param $formKey
|
|
* @return integer
|
|
*/
|
|
public static function getCurrentParentFlowCode($formKey)
|
|
{
|
|
$flow = new Flow($formKey);
|
|
list($flow_code) = DB::fields("select flow_code from flow where
|
|
form_key ='" . $flow->getParentKey() . "'");
|
|
return $flow_code;
|
|
}
|
|
|
|
/**
|
|
* @param $formKey
|
|
* @param $flag REPLY_FLAG
|
|
*/
|
|
public static function updateReplyFlag($formKey, $flag)
|
|
{
|
|
$where = "form_key = '" . $formKey . "'";
|
|
DB::update_table("workflow_subflow", array(
|
|
"REPLY_FLAG" => "'" . $flag . "'"
|
|
), $where);
|
|
|
|
}
|
|
|
|
/**
|
|
*
|
|
* 获取会签中不同意的数量
|
|
* @param $seq
|
|
* @return null
|
|
*/
|
|
public function getRejectOpinionCount($seq)
|
|
{
|
|
if ($seq == null) {
|
|
return null;
|
|
}
|
|
$details = $this->getReplyDetail($seq);
|
|
$cnt = 0;
|
|
foreach ($details as $row) {
|
|
if ($row['reply_flag'] == 'N') {
|
|
$cnt++;
|
|
}
|
|
}
|
|
return $cnt;
|
|
|
|
}
|
|
|
|
/**
|
|
*
|
|
* 获取会签中不同意的数量
|
|
*/
|
|
public function getAcceptOpinionCount($seq)
|
|
{
|
|
if ($seq == null) {
|
|
return null;
|
|
}
|
|
$details = $this->getReplyDetail($seq);
|
|
$cnt = 0;
|
|
foreach ($details as $row) {
|
|
if ($row['reply_flag'] == 'Y') {
|
|
$cnt++;
|
|
}
|
|
}
|
|
return $cnt;
|
|
|
|
}
|
|
|
|
public static function updateReplyComment($formKey, $comment)
|
|
{
|
|
$where = "form_key = '" . $formKey . "'";
|
|
DB::update_table("workflow_subflow", array(
|
|
"REPLY_COMMENT" => "'" . $comment . "'"
|
|
), $where);
|
|
self::updateChangeDate($formKey);
|
|
}
|
|
|
|
public static function getReplyComment($formKey)
|
|
{
|
|
|
|
$detail = DB::result("select reply_comment from workflow_subflow where
|
|
form_key='" . $formKey . "'");
|
|
return $detail;
|
|
}
|
|
|
|
public static function getCounterSignComments($parentKey)
|
|
{
|
|
$sql = "select rownum seq ,seq CS_SEQ ,LEADER_NO ASSIGNER,reply_comment ASSIGN_OPINION ,change_date ASSIGN_DATE , LEAD_CODE,
|
|
f_return_content('lead_code',LEAD_CODE) POSITION_NAME,case Reply_flag when 'Y' then 'F1'
|
|
when 'N' then 'Y1' else 'A4' end ASSIGN_STATUS,'' FLOW_CODE from workflow_subflow a,employee b
|
|
where parent_key='" . $parentKey . "' and a.leader_no=b.employee_no";
|
|
return DB::result($sql);
|
|
}
|
|
|
|
public static function updateChangeDate($formKey)
|
|
{
|
|
$sql = "update workflow_subflow set change_date=sysdate where form_key='" . $formKey . "'";
|
|
DB::query($sql);
|
|
}
|
|
|
|
}
|