65 lines
1.4 KiB
PHP
65 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace app\common\service;
|
|
|
|
use app\common\validate\InvItemValidate;
|
|
use app\common\traits\crud\CrudServiceTrait;
|
|
use app\common\model\InvItem;
|
|
use support\Request;
|
|
|
|
class InvItemService
|
|
{
|
|
|
|
use CrudServiceTrait;
|
|
|
|
/**
|
|
* 指定当前要操作的模型
|
|
*/
|
|
protected string $modelClass = InvItem::class;
|
|
|
|
/**
|
|
* 验证器
|
|
*/
|
|
protected $validator = InvItemValidate::class;
|
|
|
|
/**
|
|
* 获取验证器
|
|
*/
|
|
public function getValidator()
|
|
{
|
|
return new $this->validator;
|
|
}
|
|
|
|
/**
|
|
* 生成 8-12 位的物品编码(默认10位)
|
|
*
|
|
* @param int $length 编码长度,默认为10(范围 8-12)
|
|
* @return string 返回大写的字母数字组合编码
|
|
*/
|
|
private function generateItemCode($length = 10)
|
|
{
|
|
// 排除易混淆字符:0, O, o, 1, I, l
|
|
$chars = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ';
|
|
$code = '';
|
|
$maxIndex = strlen($chars) - 1;
|
|
|
|
for ($i = 0; $i < $length; $i++) {
|
|
$code .= $chars[mt_rand(0, $maxIndex)];
|
|
}
|
|
|
|
return $code;
|
|
}
|
|
|
|
|
|
public function beforeServiceStore($data, Request $request): array
|
|
{
|
|
$data['item_code'] = $this->generateItemCode();
|
|
$data['category_id'] = 0;
|
|
$data['spec_model'] = '';
|
|
$data['unit'] = '件';
|
|
$data['is_consumable'] = 0;
|
|
$data['stock_qty'] = 1;
|
|
$data['location'] = '';
|
|
return $data;
|
|
}
|
|
} |