feat: 实现TCP Server
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace app\repository;
|
||||
|
||||
use app\model\EctMetaProcess;
|
||||
|
||||
class ProcessDurationRepository extends BaseRepository
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->model = new EctMetaProcess();
|
||||
}
|
||||
|
||||
public static function new(): BaseRepository
|
||||
{
|
||||
return new self();
|
||||
}
|
||||
|
||||
public function getProcessDurations(): array
|
||||
{
|
||||
$result = [];
|
||||
|
||||
$processes = EctMetaProcess::all();
|
||||
foreach ($processes as $process) {
|
||||
$processType = $process->process_type ?? '';
|
||||
$processName = $process->process_name ?? '';
|
||||
$processDuration = $process->process_duration ?? 0;
|
||||
|
||||
if (!isset($result[$processType])) $result[$processType] = [];
|
||||
$result[$processType][$processName] = $processDuration;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询某流程类型下某步骤的时长(秒)
|
||||
*
|
||||
* @param string $processType 流程类型,如"手工洗"、"机洗(晨洗)"等
|
||||
* @param string $processName 步骤名称,如"清洗"、"消毒"等
|
||||
* @return int|null 返回 process_duration(秒),未找到返回 null
|
||||
*/
|
||||
public function getDurationByProcessTypeAndName(string $processType, string $processName): ?int
|
||||
{
|
||||
$record = EctMetaProcess::where('process_type', $processType)
|
||||
->where('process_name', $processName)
|
||||
->where('status', 1)
|
||||
->select('process_duration')
|
||||
->first();
|
||||
|
||||
if ($record === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (int) $record->process_duration;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询某流程类型下所有步骤的时长,返回 [步骤名称 => 秒数] 映射
|
||||
*
|
||||
* @param string $processType 流程类型,如"手工洗"、"机洗(晨洗)"等
|
||||
* @return array<string, int> [process_name => process_duration]
|
||||
*/
|
||||
public function getDurationsByProcessType(string $processType): array
|
||||
{
|
||||
$records = EctMetaProcess::where('process_type', $processType)
|
||||
->where('status', 1)
|
||||
->select('process_name', 'process_duration')
|
||||
->get();
|
||||
|
||||
$result = [];
|
||||
foreach ($records as $record) {
|
||||
$result[$record->process_name] = (int) $record->process_duration;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user