Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
aic_duty_strategy
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yinxiaoling
aic_duty_strategy
Commits
975f8a28
Commit
975f8a28
authored
May 20, 2020
by
yinxiaoling
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commonservice整理
parent
fff8fede
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
137 additions
and
127 deletions
+137
-127
StrategySetController.php
app/Http/Controllers/strategy/StrategySetController.php
+4
-4
CommonService.php
app/Service/CommonService.php
+129
-0
StrategyService.php
app/Service/StrategyService.php
+4
-123
No files found.
app/Http/Controllers/strategy/StrategySetController.php
View file @
975f8a28
...
@@ -13,6 +13,7 @@ use Illuminate\Support\Facades\Log;
...
@@ -13,6 +13,7 @@ use Illuminate\Support\Facades\Log;
use
App\Models\StrategyExcel
;
use
App\Models\StrategyExcel
;
use
App\Models\StrategyTask
;
use
App\Models\StrategyTask
;
use
Illuminate\Support\Facades\DB
;
use
Illuminate\Support\Facades\DB
;
use
App\Service\CommonService
;
//use App\Http\Requests\StrategySetCreateRequest;
//use App\Http\Requests\StrategySetCreateRequest;
class
StrategySetController
extends
Controller
class
StrategySetController
extends
Controller
...
@@ -144,15 +145,14 @@ class StrategySetController extends Controller
...
@@ -144,15 +145,14 @@ class StrategySetController extends Controller
}
}
//下载模板及下载导入失败excel数据
//下载模板及下载导入失败excel数据
public
function
downloadModel
(
Request
$request
,
StrategyService
$Strategy
Service
){
public
function
downloadModel
(
Request
$request
,
CommonService
$Common
Service
){
$excelName
=
"策略任务数据导入模板"
;
$excelName
=
"策略任务数据导入模板"
;
$datas
[
0
][
0
]
=
"姓名"
;
$datas
[
0
][
0
]
=
"姓名"
;
$datas
[
0
][
1
]
=
"*手机号码"
;
$datas
[
0
][
1
]
=
"*手机号码"
;
$datas
[
0
][
2
]
=
"值班日期"
;
$datas
[
0
][
2
]
=
"值班日期"
;
$datas
[
1
]
=
[
'小a'
,
13112345678
,
'2020/5/20'
];
$datas
[
1
]
=
[
'小a'
,
13112345678
,
'2020/5/20'
];
//$StrategyService->storeExcelStyle($excelName, $datas,3,'',1);
$CommonService
->
exportPHPExcel
(
$excelName
,
$datas
);
$StrategyService
->
exportPHPExcel
(
$excelName
,
$datas
);
}
}
public
function
downloadFailExcel
(
Request
$request
){
public
function
downloadFailExcel
(
Request
$request
){
...
...
app/Service/CommonService.php
0 → 100644
View file @
975f8a28
<?php
namespace
App\Service
;
use
Maatwebsite\Excel\Facades\Excel
;
use
Illuminate\Support\Facades\Log
;
class
CommonService
{
//保存内容到excel文件并下载,$exportType excel文件操作类型 0存储数据直接保存, 1直接导出数据 , 2保存并导出数据
public
function
storeExcelStyle
(
$excelName
,
$datas
,
$endLen
=
''
,
$path
=
''
,
$exportType
=
0
){
try
{
$arr
=
range
(
'A'
,
'Z'
);
if
(
!
empty
(
$endLen
)){
$endLen
=
$endLen
-
1
;
if
(
isset
(
$arr
[
$endLen
])){
$arr
=
range
(
'A'
,
$arr
[
$endLen
]);
}
}
$e
=
Excel
::
create
(
iconv
(
'UTF-8'
,
'GB2312'
,
$excelName
),
function
(
$excel
)
use
(
$datas
,
$arr
){
$excel
->
sheet
(
'score'
,
function
(
$sheet
)
use
(
$datas
,
$arr
){
$col
=
array
();
$sheet
->
rows
(
$datas
);
foreach
(
$arr
as
$v
){
$col
[
$v
]
=
12
;
}
$sheet
->
setWidth
(
$col
);
foreach
(
$arr
as
$k
=>
$v
){
$objRichText
=
new
\PHPExcel_RichText
();
if
(
!
empty
(
$datas
[
0
][
$k
])){
if
(
strpos
(
$datas
[
0
][
$k
],
'*'
)
===
0
){
$objPayable
=
$objRichText
->
createTextRun
(
'*'
);
$objPayable
->
getFont
()
->
setColor
(
new
\PHPExcel_Style_Color
(
\PHPExcel_Style_Color
::
COLOR_RED
)
);
//设置颜色
}
$objRichText
->
createText
(
ltrim
(
$datas
[
0
][
$k
],
'*'
));
$sheet
->
setCellValue
(
$arr
[
$k
]
.
'1'
,
$objRichText
);
}
}
});
});
if
(
$exportType
==
1
){
if
(
empty
(
$path
)){
//默认路径storage/exports
$e
->
export
(
'xlsx'
);
}
else
{
//自定义路径 storage/$path
$e
->
export
(
'xlsx'
,
storage_path
(
$path
));
}
}
elseif
(
$exportType
==
2
){
if
(
empty
(
$path
)){
//默认路径storage/exports
$e
->
store
(
'xlsx'
)
->
export
(
'xlsx'
);
}
else
{
//自定义路径 storage/$path
$e
->
store
(
'xlsx'
,
storage_path
(
$path
))
->
export
(
'xlsx'
,
storage_path
(
$path
));
}
}
else
{
if
(
empty
(
$path
)){
//默认路径storage/exports
$e
->
store
(
'xlsx'
);
}
else
{
//自定义路径 storage/$path
$e
->
store
(
'xlsx'
,
storage_path
(
$path
));
}
}
return
true
;
}
catch
(
\Exception
$e
){
Log
::
channel
(
'api'
)
->
error
(
$e
->
getFile
()
.
'-'
.
$e
->
getLine
()
.
'-'
.
$e
->
getMessage
());
return
false
;
}
}
//保存内容到excel文件,第一行*号红色,$firstRed为1则处理第一行红色*号,0不处理*
public
function
exportPHPExcel
(
$excelName
,
$datas
,
$firstRed
=
1
){
try
{
$datas0
=
$datas
[
0
];
$objPHPExcel
=
new
\PHPExcel
();
$objPHPExcel
->
setActiveSheetIndex
(
0
);
//$objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);
$capitalArr
=
range
(
'A'
,
'Z'
);
if
(
count
(
$datas0
)
>
0
&&
$firstRed
==
1
){
foreach
(
$datas0
as
$key
=>
$value
){
$objRichText
=
new
\PHPExcel_RichText
();
if
(
strpos
(
$value
,
'*'
)
===
0
){
$objPayable
=
$objRichText
->
createTextRun
(
'*'
);
$objPayable
->
getFont
()
->
setColor
(
new
\PHPExcel_Style_Color
(
\PHPExcel_Style_Color
::
COLOR_RED
)
);
//设置颜色
}
$objRichText
->
createText
(
ltrim
(
$value
,
'*'
));
$sheet
=
$key
<
26
?
$capitalArr
[
$key
]
:
'A'
.
$capitalArr
[
$key
-
25
];
$objPHPExcel
->
getActiveSheet
()
->
setCellValue
(
$sheet
.
'1'
,
$objRichText
);
$objPHPExcel
->
getActiveSheet
()
->
getColumnDimension
(
$sheet
)
->
setWidth
(
12
);
}
}
foreach
(
$datas
as
$kdata
=>
$vdata
){
if
(
$kdata
>=
$firstRed
){
foreach
(
$vdata
as
$key
=>
$value
){
$sheet
=
$key
<
26
?
$capitalArr
[
$key
]
:
'A'
.
$capitalArr
[
$key
-
25
];
if
(
$key
==
0
){
//第一列
$objPHPExcel
->
getActiveSheet
()
->
setCellValueExplicit
(
$sheet
.
(
$kdata
+
1
),
$value
,
\PHPExcel_Cell_DataType
::
TYPE_STRING
);
}
elseif
(
$key
==
1
){
//第二列
$objPHPExcel
->
getActiveSheet
()
->
setCellValueExplicit
(
$sheet
.
(
$kdata
+
1
),
$value
,
\PHPExcel_Cell_DataType
::
TYPE_NUMERIC
);
}
else
{
$objPHPExcel
->
getActiveSheet
()
->
setCellValue
(
$sheet
.
(
$kdata
+
1
),
$value
);
}
}
}
}
//$PHPWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
//header('Content-Type: application/vnd.ms-excel; charset=utf-8');
//header('Content-Disposition: attachment;filename="'.$excelName.'.xls"');
$PHPWriter
=
\PHPExcel_IOFactory
::
createWriter
(
$objPHPExcel
,
'Excel2007'
);
ob_end_clean
();
header
(
'Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
);
header
(
'Content-Disposition: attachment;filename="'
.
$excelName
.
'.xlsx"'
);
header
(
'Cache-Control: max-age=0'
);
//禁止缓存
$PHPWriter
->
save
(
"php://output"
);
exit
;
}
catch
(
\Exception
$e
){
Log
::
channel
(
'api'
)
->
info
(
'下载失败:'
.
$e
->
getFile
()
.
'-'
.
$e
->
getLine
()
.
'-'
.
$e
->
getMessage
());
return
false
;
}
}
}
app/Service/StrategyService.php
View file @
975f8a28
...
@@ -105,7 +105,8 @@ class StrategyService
...
@@ -105,7 +105,8 @@ class StrategyService
$failDataTitle
=
[
'姓名'
,
'*手机号码'
,
'值班日期'
,
'失败原因'
];
$failDataTitle
=
[
'姓名'
,
'*手机号码'
,
'值班日期'
,
'失败原因'
];
array_unshift
(
$failData
,
$failDataTitle
);
array_unshift
(
$failData
,
$failDataTitle
);
$failExcelName
=
"importfaildata_"
.
date
(
'YmdHis'
);
$failExcelName
=
"importfaildata_"
.
date
(
'YmdHis'
);
$failFile
=
$this
->
storeExcelStyle
(
$failExcelName
,
$failData
,
''
,
'import'
);
$CommonService
=
new
CommonService
();
$failFile
=
$CommonService
->
storeExcelStyle
(
$failExcelName
,
$failData
,
''
,
'import'
);
//$failDataFile = $failExcelName.'.xlsx';
//$failDataFile = $failExcelName.'.xlsx';
if
(
$failFile
){
if
(
$failFile
){
$failDataFile
=
$failExcelName
;
$failDataFile
=
$failExcelName
;
...
@@ -117,126 +118,6 @@ class StrategyService
...
@@ -117,126 +118,6 @@ class StrategyService
}
}
//保存内容到excel文件并下载,$exportType excel文件操作类型 0存储数据直接保存, 1直接导出数据 , 2保存并导出数据
public
function
storeExcelStyle
(
$excelName
,
$datas
,
$endLen
=
''
,
$path
=
''
,
$exportType
=
0
){
try
{
$arr
=
range
(
'A'
,
'Z'
);
if
(
!
empty
(
$endLen
)){
$endLen
=
$endLen
-
1
;
if
(
isset
(
$arr
[
$endLen
])){
$arr
=
range
(
'A'
,
$arr
[
$endLen
]);
}
}
$e
=
Excel
::
create
(
iconv
(
'UTF-8'
,
'GB2312'
,
$excelName
),
function
(
$excel
)
use
(
$datas
,
$arr
){
$excel
->
sheet
(
'score'
,
function
(
$sheet
)
use
(
$datas
,
$arr
){
$col
=
array
();
$sheet
->
rows
(
$datas
);
foreach
(
$arr
as
$v
){
$col
[
$v
]
=
12
;
}
$sheet
->
setWidth
(
$col
);
foreach
(
$arr
as
$k
=>
$v
){
$objRichText
=
new
\PHPExcel_RichText
();
if
(
!
empty
(
$datas
[
0
][
$k
])){
if
(
strpos
(
$datas
[
0
][
$k
],
'*'
)
===
0
){
$objPayable
=
$objRichText
->
createTextRun
(
'*'
);
$objPayable
->
getFont
()
->
setColor
(
new
\PHPExcel_Style_Color
(
\PHPExcel_Style_Color
::
COLOR_RED
)
);
//设置颜色
}
$objRichText
->
createText
(
ltrim
(
$datas
[
0
][
$k
],
'*'
));
$sheet
->
setCellValue
(
$arr
[
$k
]
.
'1'
,
$objRichText
);
}
}
});
});
if
(
$exportType
==
1
){
if
(
empty
(
$path
)){
//默认路径storage/exports
$e
->
export
(
'xlsx'
);
}
else
{
//自定义路径 storage/$path
$e
->
export
(
'xlsx'
,
storage_path
(
$path
));
}
}
elseif
(
$exportType
==
2
){
if
(
empty
(
$path
)){
//默认路径storage/exports
$e
->
store
(
'xlsx'
)
->
export
(
'xlsx'
);
}
else
{
//自定义路径 storage/$path
$e
->
store
(
'xlsx'
,
storage_path
(
$path
))
->
export
(
'xlsx'
,
storage_path
(
$path
));
}
}
else
{
if
(
empty
(
$path
)){
//默认路径storage/exports
$e
->
store
(
'xlsx'
);
}
else
{
//自定义路径 storage/$path
$e
->
store
(
'xlsx'
,
storage_path
(
$path
));
}
}
return
true
;
}
catch
(
\Exception
$e
){
Log
::
channel
(
'api'
)
->
error
(
$e
->
getFile
()
.
'-'
.
$e
->
getLine
()
.
'-'
.
$e
->
getMessage
());
return
false
;
}
}
//保存内容到excel文件,第一行*号红色,$firstRed为1则处理第一行红色*号,0不处理*
public
function
exportPHPExcel
(
$excelName
,
$datas
,
$firstRed
=
1
){
try
{
$datas0
=
$datas
[
0
];
$objPHPExcel
=
new
\PHPExcel
();
$objPHPExcel
->
setActiveSheetIndex
(
0
);
//$objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);
$capitalArr
=
range
(
'A'
,
'Z'
);
if
(
count
(
$datas0
)
>
0
&&
$firstRed
==
1
){
foreach
(
$datas0
as
$key
=>
$value
){
$objRichText
=
new
\PHPExcel_RichText
();
if
(
strpos
(
$value
,
'*'
)
===
0
){
$objPayable
=
$objRichText
->
createTextRun
(
'*'
);
$objPayable
->
getFont
()
->
setColor
(
new
\PHPExcel_Style_Color
(
\PHPExcel_Style_Color
::
COLOR_RED
)
);
//设置颜色
}
$objRichText
->
createText
(
ltrim
(
$value
,
'*'
));
$sheet
=
$key
<
26
?
$capitalArr
[
$key
]
:
'A'
.
$capitalArr
[
$key
-
25
];
$objPHPExcel
->
getActiveSheet
()
->
setCellValue
(
$sheet
.
'1'
,
$objRichText
);
$objPHPExcel
->
getActiveSheet
()
->
getColumnDimension
(
$sheet
)
->
setWidth
(
12
);
}
}
foreach
(
$datas
as
$kdata
=>
$vdata
){
if
(
$kdata
>=
$firstRed
){
foreach
(
$vdata
as
$key
=>
$value
){
$sheet
=
$key
<
26
?
$capitalArr
[
$key
]
:
'A'
.
$capitalArr
[
$key
-
25
];
if
(
$key
==
0
){
//第一列
$objPHPExcel
->
getActiveSheet
()
->
setCellValueExplicit
(
$sheet
.
(
$kdata
+
1
),
$value
,
\PHPExcel_Cell_DataType
::
TYPE_STRING
);
}
elseif
(
$key
==
1
){
//第二列
$objPHPExcel
->
getActiveSheet
()
->
setCellValueExplicit
(
$sheet
.
(
$kdata
+
1
),
$value
,
\PHPExcel_Cell_DataType
::
TYPE_NUMERIC
);
}
else
{
$objPHPExcel
->
getActiveSheet
()
->
setCellValue
(
$sheet
.
(
$kdata
+
1
),
$value
);
}
}
}
}
//$PHPWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
//header('Content-Type: application/vnd.ms-excel; charset=utf-8');
//header('Content-Disposition: attachment;filename="'.$excelName.'.xls"');
$PHPWriter
=
\PHPExcel_IOFactory
::
createWriter
(
$objPHPExcel
,
'Excel2007'
);
ob_end_clean
();
header
(
'Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
);
header
(
'Content-Disposition: attachment;filename="'
.
$excelName
.
'.xlsx"'
);
header
(
'Cache-Control: max-age=0'
);
//禁止缓存
$PHPWriter
->
save
(
"php://output"
);
exit
;
}
catch
(
\Exception
$e
){
Log
::
channel
(
'api'
)
->
info
(
'下载失败:'
.
$e
->
getFile
()
.
'-'
.
$e
->
getLine
()
.
'-'
.
$e
->
getMessage
());
return
false
;
}
}
//添加策略处理excel数据入库
//添加策略处理excel数据入库
public
function
insertStrategyExcel
(
$strategySn
,
$data
){
public
function
insertStrategyExcel
(
$strategySn
,
$data
){
if
(
count
(
$data
)
>
0
){
if
(
count
(
$data
)
>
0
){
...
...
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