Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
赵增煜
/
tzt-admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d0eb5135
authored
Nov 26, 2024
by
lujunyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
导入
parent
fa49d615
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
142 additions
and
3 deletions
+142
-3
app/Admin/Controllers/DrugController.php
+1
-1
app/Admin/Controllers/PharmacyController.php
+32
-0
app/Admin/Extensions/ToolBar/Actions/PharmacyImportAction.php
+21
-0
app/Admin/Extensions/ToolBar/Forms/DrugImportForm.php
+2
-2
app/Admin/Extensions/ToolBar/Forms/PharmacyImportForm.php
+84
-0
app/Admin/routes.php
+2
-0
No files found.
app/Admin/Controllers/DrugController.php
View file @
d0eb5135
...
...
@@ -60,7 +60,7 @@ protected function grid()
// 工具栏普通按钮
$grid
->
tools
(
function
(
$tools
)
{
$tools
->
append
(
new
DrugImportAction
());
// 导入
发货
信息
$tools
->
append
(
new
DrugImportAction
());
// 导入
药品
信息
});
// 快捷搜索
...
...
app/Admin/Controllers/PharmacyController.php
View file @
d0eb5135
...
...
@@ -2,18 +2,24 @@
namespace
App\Admin\Controllers
;
use
App\Admin\Extensions\ToolBar\Actions\PharmacyImportAction
;
use
App\Admin\Repositories\PharmacyRepository
;
use
App\Models\DosageModel
;
use
App\Models\PharmacistModel
;
use
App\Models\PharmacyDrugModel
;
use
App\Models\PharmacyModel
;
use
App\Models\User
;
use
Box\Spout\Common\Entity\Style\Color
;
use
Box\Spout\Writer\Common\Creator\Style\StyleBuilder
;
use
Box\Spout\Writer\Common\Creator\WriterEntityFactory
;
use
Dcat\Admin\Form
;
use
Dcat\Admin\Grid
;
use
Dcat\Admin\Http\Controllers\AdminController
;
use
Dcat\Admin\Models\Administrator
;
use
Dcat\Admin\Models\Role
;
use
Dcat\Admin\Show
;
use
Dcat\EasyExcel\Excel
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Str
;
// 药店
...
...
@@ -55,6 +61,11 @@ protected function grid()
$grid
->
column
(
'created_at'
);
$grid
->
column
(
'updated_at'
)
->
sortable
();
// 工具栏普通按钮
$grid
->
tools
(
function
(
$tools
)
{
$tools
->
append
(
new
PharmacyImportAction
());
// 导入药店信息
});
// 快捷搜索
$grid
->
quickSearch
([
'name'
,
'mobile'
])
->
placeholder
(
'请输入[药店名称|管理员手机号]'
)
->
width
(
25
);
...
...
@@ -215,4 +226,25 @@ protected function form()
$form
->
disableViewButton
();
// 去掉跳转详情页按钮
});
}
/**
* 药店导入模板
*
* @return \Symfony\Component\HttpFoundation\BinaryFileResponse
*/
public
function
exportPharmacyTemplate
(
Request
$request
)
{
$sheet1Head
=
[
'药店名称'
,
'地区'
,
'详细地址'
,
'药店管理员手机号'
,
'营业开始时间'
,
'营业结束时间'
];
$sheet1Data
=
[[
'江阴康麦医药有限公司'
,
'江苏省/无锡市/江阴市'
,
'利港街道 利南街41号'
,
'13012345678'
,
'06:30:00'
,
'21:30:00'
]];
$sheet1
=
Excel
::
createSheet
(
$sheet1Data
,
'药店信息'
,
$sheet1Head
)
->
row
(
function
(
array
$row
)
{
$style
=
(
new
StyleBuilder
)
->
setBackgroundColor
(
Color
::
YELLOW
)
->
build
();
return
WriterEntityFactory
::
createRowFromArray
(
$row
,
$style
);
});
return
Excel
::
export
([
$sheet1
])
->
headings
(
false
)
->
download
(
'药店导入模板.xlsx'
);
}
}
app/Admin/Extensions/ToolBar/Actions/PharmacyImportAction.php
0 → 100644
View file @
d0eb5135
<?php
namespace
App\Admin\Extensions\ToolBar\Actions
;
use
App\Admin\Extensions\ToolBar\Forms\PharmacyImportForm
;
use
Dcat\Admin\Grid\Tools\AbstractTool
;
use
Dcat\Admin\Widgets\Modal
;
class
PharmacyImportAction
extends
AbstractTool
{
public
$title
=
'导入药店'
;
public
function
html
()
:
Modal
{
return
Modal
::
make
()
->
lg
()
->
title
(
$this
->
title
)
->
body
(
new
PharmacyImportForm
())
->
button
(
"<button class='btn btn-success'><i class='feather icon-upload'></i>
{
$this
->
title
}
</button>"
);
}
}
app/Admin/Extensions/ToolBar/Forms/DrugImportForm.php
View file @
d0eb5135
...
...
@@ -120,14 +120,14 @@ public function form()
{
$this
->
file
(
'import_file'
,
'文件'
)
->
disk
(
'local'
)
->
accept
(
'xls
,xls
x,csv'
)
->
accept
(
'xlsx,csv'
)
->
maxSize
(
1024
*
30
)
->
autoUpload
()
->
uniqueName
()
->
required
()
->
help
(
"导入要求:<br />
<span style='color:red;'>
1、支持xls
、xlsx、csv三
种格式<br \>
1、支持xls
x、csv两
种格式<br \>
2、更新的时候根据本位码唯一更新药品信息
</span>"
);
$downloadUrl
=
admin_url
(
'drug-template'
);
...
...
app/Admin/Extensions/ToolBar/Forms/PharmacyImportForm.php
0 → 100644
View file @
d0eb5135
<?php
namespace
App\Admin\Extensions\ToolBar\Forms
;
use
App\Models\PharmacyModel
;
use
Dcat\Admin\Http\JsonResponse
;
use
Dcat\Admin\Widgets\Form
;
use
Dcat\EasyExcel\Excel
;
use
Dcat\EasyExcel\Support\SheetCollection
;
use
Exception
;
set_time_limit
(
1800
);
ini_set
(
'memory_limit'
,
'-1'
);
ini_set
(
'max_execution_time'
,
10800
);
ini_set
(
'max_input_time'
,
10800
);
class
PharmacyImportForm
extends
Form
{
/**
* 处理表单提交逻辑.
*/
public
function
handle
(
array
$input
)
:
JsonResponse
{
// 表单参数
$file
=
$input
[
'import_file'
];
$filePath
=
storage_path
(
'app/'
.
$file
);
try
{
// 每100行数据为一批数据进行读取
$chunkSize
=
10
;
$successNum
=
0
;
$failNum
=
0
;
Excel
::
import
(
$filePath
)
->
first
()
->
chunk
(
$chunkSize
,
function
(
SheetCollection
$collection
)
use
(
&
$successNum
)
{
// 此处的数组下标依然是excel表中数据行的行号
$rows
=
$collection
->
toArray
();
foreach
(
$rows
as
$row
)
{
$item
=
array_map
(
function
(
$value
)
{
return
is_string
(
$value
)
?
trim
(
$value
)
:
$value
;
},
$row
);
$pharmacyModel
=
null
;
if
(
isset
(
$item
[
'药店管理员手机号'
])
&&
$item
[
'药店管理员手机号'
])
{
$pharmacyModel
=
PharmacyModel
::
where
(
'mobile'
,
$item
[
'药店管理员手机号'
])
->
first
();
}
if
(
!
$pharmacyModel
)
{
$pharmacyModel
=
new
PharmacyModel
;
}
$pharmacyModel
->
name
=
$item
[
'药店名称'
]
??
0
;
$pharmacyModel
->
area
=
$item
[
'地区'
];
$pharmacyModel
->
address
=
$item
[
'详细地址'
];
$pharmacyModel
->
mobile
=
$item
[
'药店管理员手机号'
];
$pharmacyModel
->
business_start
=
$item
[
'营业开始时间'
];
$pharmacyModel
->
business_end
=
$item
[
'营业结束时间'
];
if
(
$pharmacyModel
->
save
())
{
$successNum
++
;
}
}
});
$return
=
$this
->
response
()
->
success
(
"导入成功
{
$successNum
}
条"
)
->
refresh
();
unlink
(
$filePath
);
}
catch
(
Exception
$e
)
{
$return
=
$this
->
response
()
->
error
(
"导入失败
{
$failNum
}
条:"
.
$e
->
getMessage
());
}
return
$return
;
}
/**
* 构造表单.
*/
public
function
form
()
{
$this
->
file
(
'import_file'
,
'文件'
)
->
disk
(
'local'
)
->
accept
(
'xlsx,csv'
)
->
maxSize
(
1024
*
30
)
->
autoUpload
()
->
uniqueName
()
->
required
()
->
help
(
"导入要求:<br />
<span style='color:red;'>
1、支持xlsx、csv两种格式<br \>
</span>"
);
$downloadUrl
=
admin_url
(
'pharmacy-template'
);
$this
->
html
(
"<a target='_blank' href='
{
$downloadUrl
}
'>下载药店导入模板</a>"
);
}
}
app/Admin/routes.php
View file @
d0eb5135
...
...
@@ -42,6 +42,8 @@
$router
->
resource
(
'pharmacist'
,
'PharmacistController'
);
// 药店-药店纠错
$router
->
resource
(
'pharmacy-correction'
,
'PharmacyCorrectionController'
);
// 下载导出模板
$router
->
get
(
'pharmacy-template'
,
'PharmacyController@exportPharmacyTemplate'
);
// 处方-处方列表
$router
->
resource
(
'prescription'
,
'PrescriptionController'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment