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.
wkcrm/application/admin/model/ExamineRecord.php

142 lines
5.2 KiB

4 years ago
<?php
// +----------------------------------------------------------------------
// | Description: 审批意见
// +----------------------------------------------------------------------
// | Author: Michael_xu | gengxiaoxu@5kcrm.com
// +----------------------------------------------------------------------
namespace app\admin\model;
use think\Db;
use app\admin\model\Common;
use think\Request;
use think\Validate;
class ExamineRecord extends Common
{
/**
* 为了数据库的整洁同时又不影响Model和Controller的名称
* 我们约定每个模块的数据表都加上相同的前缀比如CRM模块用crm作为数据表前缀
*/
protected $name = 'admin_examine_record';
/**
* 审批意见(创建)
* @param types 关联对象
* @param types_id 联对象ID
* @param flow_id 审批流程ID
* @param step_id 审批步骤ID
* @param user_id 审批人ID
* @param status 1通过0驳回
* @return
*/
public function createData($param)
{
if ($this->data($param)->allowField(true)->save()) {
$data = [];
$data['record_id'] = $this->record_id;
return $data;
} else {
$this->error = '添加失败';
return false;
}
}
/**
* 审批意见(列表)
* @param types 关联对象
* @param types_id 联对象ID
* @return
*/
public function getDataList($param)
{
$userModel = new \app\admin\model\User();
if (empty($param['types']) || empty($param['types_id'])) {
return [];
}
$result = [];
4 years ago
# 获取创建者信息(业务审批)
if (in_array($param['types'], ['crm_contract', 'crm_receivables', 'crm_invoice'])) {
$model = db($param['types']);
$primaryKey = null;
if ($param['types'] == 'crm_contract') $primaryKey = 'contract_id';
if ($param['types'] == 'crm_receivables') $primaryKey = 'receivables_id';
if ($param['types'] == 'crm_invoice') $primaryKey = 'invoice_id';
4 years ago
4 years ago
$info = $model->field(['create_time', 'owner_user_id'])->where($primaryKey, $param['types_id'])->find();
$userInfo = $userModel->getUserById($info['owner_user_id']);
4 years ago
$result[] = [
'check_date' => date('Y-m-d H:i:s', $info['create_time']),
'check_time' => $info['create_time'],
4 years ago
'check_user_id' => $info['owner_user_id'],
4 years ago
'check_user_id_info' => $userInfo,
'content' => '',
'flow_id' => 0,
'is_end' => 0,
'order_id' => 1,
'record_id' => 0,
'status' => 3,
'types' => $param['types'],
'types_id' => $param['types_id']
];
4 years ago
}else{
unset($param['action']);
# 获取创建者信息(办公审批)
$info = db('oa_examine')->field(['create_time', 'create_user_id','update_time,check_status'])->where('examine_id', $param['types_id'])->find();
$userInfo = $userModel->getUserById($info['create_user_id']);
#撤销之后修改再次审批 审批流程过滤之前的审批记录
if($info['check_status']<2){
$param['check_time']=['>',$info['update_time']?:$info['create_time']];
}
4 years ago
$result[] = [
'check_date' => date('Y-m-d H:i:s', $info['create_time']),
'check_time' => $info['create_time'],
4 years ago
'check_user_id' => $info['create_user_id'],
4 years ago
'check_user_id_info' => $userInfo,
'content' => '',
'flow_id' => 0,
'is_end' => 0,
4 years ago
'order_id' => 1,
4 years ago
'record_id' => 0,
'status' => 3,
'types' => $param['types'],
'types_id' => $param['types_id']
];
4 years ago
4 years ago
}
unset($param['is_record']);
4 years ago
# 多次撤销使用 只显示最后一次撤销数据条件 is_end 0
$param['is_end']=0;
4 years ago
$list = db('admin_examine_record')->where($param)->order('check_time asc')->select();
foreach ($list as $k=>$v) {
$list[$k]['check_user_id_info'] = $userModel->getUserById($v['check_user_id']);
$list[$k]['check_date'] = date('Y-m-d H:i:s', $v['check_time']);
4 years ago
$list[$k]['order_id'] = $k + 2;
4 years ago
$result[] = $list[$k];
}
return !empty($result) ? $result : [];
}
/**
* 审批意见(标记无效,撤销审批时使用)
* @param types 关联对象
* @param types_id 关联对象ID
* @return
*/
public function setEnd($param)
{
if (empty($param['types']) || empty($param['types_id'])) {
$this->error = '参数错误';
return false;
}
$res = $this->where(['types' => $param['types'],'types_id' => $param['types_id']])->update(['is_end' => 1]);
return true;
}
}