Commit 7c68f97a by lujunyi

导入

parent 6d1f9aca
...@@ -11,11 +11,6 @@ ...@@ -11,11 +11,6 @@
class DrugImportForm extends Form class DrugImportForm extends Form
{ {
const IS_MAP = [
'Y' => 1,
'N' => 0,
];
/** /**
* 处理表单提交逻辑. * 处理表单提交逻辑.
*/ */
...@@ -33,18 +28,21 @@ public function handle(array $input): JsonResponse ...@@ -33,18 +28,21 @@ public function handle(array $input): JsonResponse
// 此处的数组下标依然是excel表中数据行的行号 // 此处的数组下标依然是excel表中数据行的行号
$rows = $collection->toArray(); $rows = $collection->toArray();
foreach ($rows as $row) { foreach ($rows as $row) {
$drugModel = new DrugModel; $item = array_map(function ($value) {
$drugModel->name = $row['药品名称']; return is_string($value) ? trim($value) : $value;
}, $row);
$drugModel = DrugModel::where('product_id', $item['君元ID'])->first();
$drugModel->name = $item['药品名称'];
$drugModel->code = ''; $drugModel->code = '';
$drugModel->standard_code = $row['本位码']; $drugModel->standard_code = $item['本位码'];
$drugModel->unit = $row['单位']; $drugModel->unit = $item['单位'];
$drugModel->spec = $row['规格']; $drugModel->spec = $item['规格'];
$drugModel->dosage_form = $row['剂型']; $drugModel->dosage_form = $item['剂型'];
$drugModel->factory = $row['生产厂家']; $drugModel->factory = $item['生产厂家'];
$drugModel->approval_no = $row['批准文号']; $drugModel->approval_no = $item['批准文号'];
$drugModel->is_rx = self::IS_MAP[$row['是否处方药']]; $drugModel->is_rx = self::toBool($item['是否处方药']);
$drugModel->is_si = self::IS_MAP[$row['是否医保药品']]; $drugModel->is_si = self::toBool($item['是否医保药品']);
$drugModel->product_id = $row['君元ID'] ?? 0; $drugModel->product_id = $item['君元ID'] ?? 0;
if ($drugModel->save()) { if ($drugModel->save()) {
$successNum++; $successNum++;
} }
...@@ -77,4 +75,19 @@ public function form() ...@@ -77,4 +75,19 @@ public function form()
$downloadUrl = admin_url('drug-template'); $downloadUrl = admin_url('drug-template');
$this->html("<a target='_blank' href='{$downloadUrl}'>下载药品导入模板</a>"); $this->html("<a target='_blank' href='{$downloadUrl}'>下载药品导入模板</a>");
} }
private static function toBool($value)
{
// 定义一个数组,包含所有需要转换的值及其对应的结果
$mapping = [
'是' => 1, 'Y' => 1, 'y' => 1, '1' => 1,
'否' => 0, 'N' => 0, 'n' => 0, '0' => 0,
];
// 将输入值转换为小写,以便不区分大小写
$value = strtolower($value);
// 检查值是否存在于映射数组中,如果存在则返回对应的值,否则返回null或自定义的默认值
return isset($mapping[$value]) ? $mapping[$value] : 0;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment