<?php
namespace app\flow\plug;
use app\common\bpm\exception\FlowErrorException;
use app\common\bpm\logic\FlowRun;
use app\common\bpm\logic\FlowRunPrcs;
use app\common\bpm\logic\manager\DeleteWork;
use app\common\bpm\logic\manager\FlowMsg;
use app\common\bpm\Scope;
use app\common\bpm\traits\FlowAction;
use app\lowcode\plug\Base;
use think\Db;
use think\Exception;
use think\exception\HttpResponseException;
class TransferLetter extends Base
{
public $data;
public $type = 1;
public function execute()
{
$data = $this->data;
$d9 = $data['d9'];
if (empty($d9) || $d9 == '立案') {
return true;
}
Scope::getInstance("flow");
$user = auth()->user();
$prcsId = null;
$runPrcsId = null;
$flowData = [
'flow_id' => 458,
'flowData' => [
'flow_id' => 458,
'd1' => $data['d1'],
'd2' => $data['d2'],
'd4' => $data['d4'],
'd5' => $data['d5'],
'd6' => $data['d6'],
'd7' => $data['d7'],
'd12' => $data['d12'],
'd12_array' => $data['d12_array']
]
];
$FlowRun = new FlowRun($user);
Db::startTrans();
try {
$runData = $FlowRun->createWork($flowData);
$runId = $runData['id'];
logs()->setType(FlowAction::$logTypeCreate);
if (!$runData) {
throw new FlowErrorException('流程不存在');
}
$FlowRun->saveData($flowData, $runId, $prcsId, $runData['flow_id']);
Db::commit();
} catch (\Exception $e) {
Db::rollback();
error($e->getMessage(), config("app_trace") ? $e->getTrace() : null);
}
Db::startTrans();
try {
$FlowMsg = new FlowMsg();
$FlowMsg->runPrcsId = $runPrcsId;
$FlowMsg->getDataFromRunId($runId, $user, false, $prcsId);
DeleteWork::DeleteWork($data['flow_run_id'],1,false);
Db::commit();
} catch (HttpResponseException $e) {
throw $e;
} catch (\Exception $e) {
Db::rollback();
error($e->getMessage(), config("app_trace") ? $e->getTrace() : null);
}
return true;
}
}