Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
pt-tobacco-lims-service
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
wangweidong
pt-tobacco-lims-service
Commits
a6c3daee
Commit
a6c3daee
authored
Jun 14, 2020
by
wangweidong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
烟草系统demo修改
parent
8bd24004
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
795 additions
and
30 deletions
+795
-30
StringHandleUtils.java
src/main/java/com/patzn/lims/common/StringHandleUtils.java
+0
-1
DrugSampleController.java
.../com/patzn/lims/drug/controller/DrugSampleController.java
+23
-0
DrugItem.java
src/main/java/com/patzn/lims/drug/entity/DrugItem.java
+6
-0
DrugSample.java
src/main/java/com/patzn/lims/drug/entity/DrugSample.java
+2
-2
IDrugItemOperationService.java
...om/patzn/lims/drug/service/IDrugItemOperationService.java
+2
-0
IDrugItemService.java
...in/java/com/patzn/lims/drug/service/IDrugItemService.java
+6
-1
IDrugSampleOperationService.java
.../patzn/lims/drug/service/IDrugSampleOperationService.java
+4
-0
IDrugSampleService.java
.../java/com/patzn/lims/drug/service/IDrugSampleService.java
+7
-0
ITestValueExtendService.java
.../com/patzn/lims/drug/service/ITestValueExtendService.java
+4
-0
DrugItemOperationServiceImpl.java
.../lims/drug/service/impl/DrugItemOperationServiceImpl.java
+6
-0
DrugItemServiceImpl.java
...com/patzn/lims/drug/service/impl/DrugItemServiceImpl.java
+14
-4
DrugSampleOperationServiceImpl.java
...ims/drug/service/impl/DrugSampleOperationServiceImpl.java
+12
-0
DrugSampleServiceImpl.java
...m/patzn/lims/drug/service/impl/DrugSampleServiceImpl.java
+438
-5
TestValueExtendServiceImpl.java
...zn/lims/drug/service/impl/TestValueExtendServiceImpl.java
+7
-0
DrugSampleVO.java
src/main/java/com/patzn/lims/drug/vo/DrugSampleVO.java
+4
-0
IExportService.java
src/main/java/com/patzn/lims/res/service/IExportService.java
+34
-4
ExportServiceImpl.java
...va/com/patzn/lims/res/service/impl/ExportServiceImpl.java
+201
-12
DrugItemMapper.xml
src/main/resources/mapper/drug/DrugItemMapper.xml
+25
-1
TestDataExport.xlsx
src/main/resources/templates/excel/TestDataExport.xlsx
+0
-0
No files found.
src/main/java/com/patzn/lims/common/StringHandleUtils.java
View file @
a6c3daee
...
...
@@ -719,6 +719,5 @@ public class StringHandleUtils {
public
static
int
compareBig
(
String
one
,
String
two
)
{
return
new
BigDecimal
(
one
).
compareTo
(
new
BigDecimal
(
two
));
}
}
src/main/java/com/patzn/lims/drug/controller/DrugSampleController.java
View file @
a6c3daee
...
...
@@ -1123,4 +1123,27 @@ public class DrugSampleController extends ServiceController<IDrugSampleService,
return
success
(
baseService
.
submitFlow
(
flowDTO
,
getAccount
()));
}
@ApiOperation
(
value
=
"样品数据查阅"
,
notes
=
"样品数据查阅"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
PtConstants
.
PAGE_PAGE
,
value
=
"请求数据的页码"
,
required
=
true
,
paramType
=
"query"
,
dataType
=
"int"
),
@ApiImplicitParam
(
name
=
PtConstants
.
PAGE_ROWS
,
value
=
"每页条数"
,
required
=
true
,
paramType
=
"query"
,
dataType
=
"int"
),
@ApiImplicitParam
(
name
=
PtConstants
.
PAGE_SIDX
,
value
=
"排序字段"
,
paramType
=
"query"
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
PtConstants
.
PAGE_SORD
,
value
=
"排序方式"
,
paramType
=
"query"
,
dataType
=
"String"
),
})
@PostMapping
(
"/page-sample-data-query"
)
public
PtResult
<
IPage
<
DrugSampleVO
>>
getPageSampleDataQuery
(
DrugSampleVO
vo
)
{
vo
.
setStatusList
(
Lists
.
newArrayList
(
SampleStatusEnum
.
REPORT_MAKE
,
SampleStatusEnum
.
REPORT_CHECK
,
SampleStatusEnum
.
REPORT_ISSUE
,
SampleStatusEnum
.
END
));
vo
.
setCompanyId
(
getAccount
().
getCompanyId
());
return
success
(
baseService
.
pageSampleDataQuery
(
getPage
(),
vo
));
}
@ApiOperation
(
value
=
"导出低倍结果"
,
notes
=
"导出低倍结果"
)
@PostMapping
(
"/export_sample_test_data/"
)
public
void
exportSampleTestData
(
DrugSampleVO
sampleVO
){
baseService
.
exportSampleTestData
(
response
,
sampleVO
);
}
}
src/main/java/com/patzn/lims/drug/entity/DrugItem.java
View file @
a6c3daee
...
...
@@ -92,4 +92,10 @@ public class DrugItem extends BaseEntity {
private
BigDecimal
sampleQuantity
;
@ApiModelProperty
(
value
=
"不合格数量"
)
private
Integer
failQuantity
;
@ApiModelProperty
(
value
=
"标偏"
)
private
String
deviation
;
}
src/main/java/com/patzn/lims/drug/entity/DrugSample.java
View file @
a6c3daee
...
...
@@ -111,6 +111,6 @@ public class DrugSample extends BaseEntity {
@ApiModelProperty
(
value
=
"被复检样品ID"
)
private
Long
recheckId
;
@ApiModelProperty
(
value
=
"是否流转"
)
private
Integer
flowed
;
}
src/main/java/com/patzn/lims/drug/service/IDrugItemOperationService.java
View file @
a6c3daee
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.patzn.lims.core.web.Account
;
import
com.patzn.lims.core.web.IBaseService
;
import
com.patzn.lims.drug.entity.DrugItemOperation
;
import
com.patzn.lims.drug.entity.DrugSampleOperation
;
/**
* <p>
...
...
@@ -22,4 +23,5 @@ public interface IDrugItemOperationService extends IBaseService<DrugItemOperatio
boolean
writeChecker
(
Long
[]
ids
,
Account
account
);
boolean
writeAuditor
(
Long
[]
ids
,
Account
account
);
}
src/main/java/com/patzn/lims/drug/service/IDrugItemService.java
View file @
a6c3daee
...
...
@@ -9,6 +9,7 @@ import com.patzn.lims.drug.entity.DrugItemAllocate;
import
com.patzn.lims.drug.eunms.ItemStatusEnum
;
import
com.patzn.lims.drug.vo.DrugItemVO
;
import
java.util.Collection
;
import
java.util.List
;
/**
...
...
@@ -50,7 +51,7 @@ public interface IDrugItemService extends IBaseService<DrugItem> {
boolean
updateByCondition
(
Long
[]
ids
,
ItemStatusEnum
allocate
);
boolean
updateByCondition
(
List
<
Long
>
ids
,
ItemStatusEnum
allocate
);
boolean
updateByCondition
(
Collection
<
Long
>
ids
,
ItemStatusEnum
allocate
);
boolean
updateByConditionIds
(
List
<
Long
>
ids
,
ItemStatusEnum
allocate
);
...
...
@@ -82,4 +83,8 @@ public interface IDrugItemService extends IBaseService<DrugItem> {
Page
<
DrugItemVO
>
pageItemFail
(
Page
page
,
DrugItemVO
notOK
,
Account
account
);
StatisticSampleItem
getSampleItemNum
(
StatisticSampleItem
sampleItem
,
Account
account
);
List
<
DrugItem
>
listBySampleIds
(
Long
[]
ids
);
List
<
DrugItem
>
listBySampleIds
(
Collection
<
Long
>
ids
);
}
src/main/java/com/patzn/lims/drug/service/IDrugSampleOperationService.java
View file @
a6c3daee
...
...
@@ -32,6 +32,8 @@ public interface IDrugSampleOperationService extends IBaseService<DrugSampleOper
boolean
updateReceiveToFlow
(
Account
account
,
Long
[]
ids
);
boolean
updateReceiveToFlow
(
Account
account
,
Collection
<
Long
>
ids
);
boolean
updateSampleToReport
(
List
<
Long
>
sampleIdEnd
,
Account
account
);
boolean
updateReportMakeInfo
(
Long
[]
ids
,
Account
account
);
...
...
@@ -39,4 +41,6 @@ public interface IDrugSampleOperationService extends IBaseService<DrugSampleOper
boolean
updateCheckReportInfo
(
Long
[]
ids
,
Account
account
);
boolean
updateIssueReportInfo
(
Long
[]
ids
,
Account
account
);
DrugSampleOperation
getBySampleId
(
Long
id
);
}
src/main/java/com/patzn/lims/drug/service/IDrugSampleService.java
View file @
a6c3daee
...
...
@@ -11,6 +11,7 @@ import com.patzn.lims.drug.vo.DrugSampleOosVO;
import
com.patzn.lims.drug.vo.DrugSampleVO
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Collection
;
import
java.util.List
;
/**
...
...
@@ -41,6 +42,8 @@ public interface IDrugSampleService extends IBaseService<DrugSample> {
boolean
submitReceive
(
Long
[]
ids
,
Account
account
);
boolean
submitReceive
(
Collection
<
Long
>
ids
,
Account
account
);
boolean
submitReceiveToFlow
(
Long
[]
ids
,
Account
account
);
...
...
@@ -52,6 +55,9 @@ public interface IDrugSampleService extends IBaseService<DrugSample> {
Page
<
DrugSampleVO
>
pageVOReport
(
Page
page
,
DrugSampleVO
vo
);
Page
<
DrugSampleVO
>
pageSampleDataQuery
(
Page
page
,
DrugSampleVO
vo
);
boolean
submitReportMake
(
Long
[]
ids
,
Account
account
);
List
<
DrugSample
>
getListByIds
(
Long
[]
ids
);
...
...
@@ -104,4 +110,5 @@ public interface IDrugSampleService extends IBaseService<DrugSample> {
boolean
submitFlow
(
DrugSampleFlowDTO
flowDTO
,
Account
account
);
void
exportSampleTestData
(
HttpServletResponse
response
,
DrugSampleVO
sampleVO
);
}
src/main/java/com/patzn/lims/drug/service/ITestValueExtendService.java
View file @
a6c3daee
...
...
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.patzn.lims.core.web.IBaseService
;
import
com.patzn.lims.drug.entity.TestValueExtend
;
import
java.util.List
;
/**
* <p>
* 检测值扩展表 服务类
...
...
@@ -15,4 +17,6 @@ import com.patzn.lims.drug.entity.TestValueExtend;
public
interface
ITestValueExtendService
extends
IBaseService
<
TestValueExtend
>
{
Page
<
TestValueExtend
>
page
(
Page
<
TestValueExtend
>
page
,
TestValueExtend
testValueExtend
);
List
<
TestValueExtend
>
listBySampleIds
(
Long
id
);
}
src/main/java/com/patzn/lims/drug/service/impl/DrugItemOperationServiceImpl.java
View file @
a6c3daee
package
com
.
patzn
.
lims
.
drug
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.patzn.lims.core.web.Account
;
import
com.patzn.lims.drug.entity.DrugItemOperation
;
import
com.patzn.lims.drug.entity.DrugSample
;
import
com.patzn.lims.drug.entity.DrugSampleOos
;
import
com.patzn.lims.drug.entity.DrugSampleOperation
;
import
com.patzn.lims.drug.mapper.DrugItemOperationMapper
;
import
com.patzn.lims.drug.service.IDrugItemOperationService
;
import
com.patzn.lims.core.web.BaseServiceImpl
;
...
...
@@ -57,4 +61,6 @@ public class DrugItemOperationServiceImpl extends BaseServiceImpl<DrugItemOperat
}
}
src/main/java/com/patzn/lims/drug/service/impl/DrugItemServiceImpl.java
View file @
a6c3daee
...
...
@@ -178,9 +178,9 @@ public class DrugItemServiceImpl extends BaseServiceImpl<DrugItemMapper, DrugIte
}
}
if
((
equipMap
==
null
||
equipMap
.
size
()==
0
&&(
extendsMap
==
null
||
extendsMap
.
size
()==
0
))){
return
voPage
;
}
for
(
DrugItemVO
itemVO:
list
)
{
Set
<
String
>
set
=
equipMap
.
get
(
itemVO
.
getId
());
if
(
null
!=
set
){
...
...
@@ -392,7 +392,7 @@ public class DrugItemServiceImpl extends BaseServiceImpl<DrugItemMapper, DrugIte
@Override
public
boolean
updateByCondition
(
List
<
Long
>
ids
,
ItemStatusEnum
allocate
)
{
public
boolean
updateByCondition
(
Collection
<
Long
>
ids
,
ItemStatusEnum
allocate
)
{
if
(
CollectionUtils
.
isEmpty
(
ids
)){
return
false
;
}
...
...
@@ -880,4 +880,14 @@ public class DrugItemServiceImpl extends BaseServiceImpl<DrugItemMapper, DrugIte
statisticSampleItem
.
setTotalSample
(
drugSampleService
.
count
());
return
statisticSampleItem
;
}
@Override
public
List
<
DrugItem
>
listBySampleIds
(
Long
[]
ids
)
{
return
super
.
list
(
Wrappers
.<
DrugItem
>
query
().
in
(
"sample_id"
,
ids
));
}
@Override
public
List
<
DrugItem
>
listBySampleIds
(
Collection
<
Long
>
ids
)
{
return
super
.
list
(
Wrappers
.<
DrugItem
>
query
().
in
(
"sample_id"
,
ids
));
}
}
src/main/java/com/patzn/lims/drug/service/impl/DrugSampleOperationServiceImpl.java
View file @
a6c3daee
...
...
@@ -70,6 +70,13 @@ public class DrugSampleOperationServiceImpl extends BaseServiceImpl<DrugSampleOp
@Override
public
boolean
updateReceiveToFlow
(
Account
account
,
Collection
<
Long
>
ids
)
{
return
super
.
update
(
new
DrugSampleOperation
().
setReceiver
(
account
.
getUserName
()).
setReceiverId
(
account
.
getUserId
())
.
setReceiveTime
(
new
Date
()),
Wrappers
.<
DrugSampleOperation
>
query
().
in
(
"sample_id"
,
ids
));
}
@Override
public
boolean
updateSampleToReport
(
List
<
Long
>
sampleIdEnd
,
Account
account
)
{
return
super
.
update
(
new
DrugSampleOperation
().
setTestEndTime
(
new
Date
()),
Wrappers
.<
DrugSampleOperation
>
query
().
in
(
"sample_id"
,
sampleIdEnd
));
}
...
...
@@ -96,4 +103,9 @@ public class DrugSampleOperationServiceImpl extends BaseServiceImpl<DrugSampleOp
Wrappers
.<
DrugSampleOperation
>
query
().
in
(
"sample_id"
,
ids
));
}
@Override
public
DrugSampleOperation
getBySampleId
(
Long
id
)
{
return
super
.
getOne
(
Wrappers
.<
DrugSampleOperation
>
query
().
eq
(
"sample_id"
,
id
).
last
(
"LIMIT 1"
));
}
}
src/main/java/com/patzn/lims/drug/service/impl/DrugSampleServiceImpl.java
View file @
a6c3daee
...
...
@@ -27,6 +27,7 @@ import com.patzn.lims.drug.vo.DrugItemVO;
import
com.patzn.lims.drug.vo.DrugSampleOosVO
;
import
com.patzn.lims.drug.vo.DrugSampleVO
;
import
com.patzn.lims.res.enums.CodeTypeEnum
;
import
com.patzn.lims.res.service.IExportService
;
import
com.patzn.lims.res.service.ILmsCodeRuleService
;
import
com.patzn.lims.sys.entity.SysFileSignature
;
import
com.patzn.lims.sys.entity.SysFileTemplate
;
...
...
@@ -38,6 +39,10 @@ import com.patzn.poibox.xwpf.PoiUtil2007;
import
com.patzn.poibox.xwpf.XWPFTemplate
;
import
com.patzn.poibox.xwpf.template.render.data.PictureRenderData
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.apache.poi.xwpf.usermodel.XWPFDocument
;
import
org.apache.poi.xwpf.usermodel.XWPFTable
;
import
org.apache.poi.xwpf.usermodel.XWPFTableCell
;
...
...
@@ -104,6 +109,12 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
@Autowired
private
IDrugSampleFlowService
drugSampleFlowService
;
@Autowired
private
IExportService
exportService
;
@Autowired
private
ITestValueExtendService
testValueExtendService
;
@Override
public
Page
<
DrugSample
>
page
(
Page
<
DrugSample
>
page
,
DrugSample
drugSample
)
{
QueryWrapper
<
DrugSample
>
wrapper
=
Wrappers
.<
DrugSample
>
query
(
drugSample
);
...
...
@@ -458,6 +469,29 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
submitReceive
(
Collection
<
Long
>
ids
,
Account
account
)
{
ObjectUtils
.
checkNull
(
ids
);
List
<
DrugItem
>
checkItemList
=
drugItemService
.
list
(
Wrappers
.<
DrugItem
>
query
().
select
(
"sample_id"
).
in
(
"sample_id"
,
ids
).
groupBy
(
"sample_id"
));
if
(
checkItemList
.
size
()!=
ids
.
size
()){
PtAssert
.
fail
(
"接收的样品没有检测项目,请确认"
);
}
//如果有非样品接收状态的说明已经提交过无法再次提交
int
count
=
count
(
Wrappers
.<
DrugSample
>
query
().
in
(
"id"
,
ids
).
ne
(
"status"
,
SampleStatusEnum
.
RECEIVE
));
if
(
count
>
0
){
PtAssert
.
fail
(
"您选择的任务含有已经接收的,请确认"
);
}
if
(
update
(
new
DrugSample
().
setStatus
(
SampleStatusEnum
.
TEST
).
setProgress
(
SampleStatusEnum
.
TEST
),
Wrappers
.<
DrugSample
>
query
().
in
(
"id"
,
ids
))){
drugSampleOperationService
.
updateReceiveToTest
(
account
,
ids
);
drugSampleRecordService
.
record
(
account
,
SampleStatusEnum
.
RECEIVE
,
SampleStatusEnum
.
TEST
,
ids
,
"样品接收提交"
);
return
drugItemService
.
updateByCondition
(
ids
,
ItemStatusEnum
.
INPUT
);
}
return
false
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
submitReceiveToFlow
(
Long
[]
ids
,
Account
account
)
{
...
...
@@ -471,13 +505,26 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
if
(
count
>
0
){
PtAssert
.
fail
(
"您选择的任务含有已经接收的,请确认"
);
}
List
<
DrugSample
>
flowList
=
list
(
Wrappers
.<
DrugSample
>
query
().
eq
(
"flowed"
,
1
).
in
(
"id"
,
ids
));
if
(
CollectionUtils
.
isNotEmpty
(
flowList
)){
List
<
Long
>
sampleFlowedList
=
flowList
.
stream
().
map
(
s
->{
return
s
.
getId
();
}).
collect
(
Collectors
.
toList
());
if
(
update
(
new
DrugSample
().
setStatus
(
SampleStatusEnum
.
FLOW
).
setProgress
(
SampleStatusEnum
.
FLOW
),
Wrappers
.<
DrugSample
>
query
().
in
(
"id"
,
ids
))){
drugSampleOperationService
.
updateReceiveToFlow
(
account
,
ids
);
drugSampleRecordService
.
record
(
account
,
SampleStatusEnum
.
RECEIVE
,
SampleStatusEnum
.
FLOW
,
ids
,
"样品接收提交"
);
return
true
;
Wrappers
.<
DrugSample
>
query
().
in
(
"id"
,
sampleFlowedList
))){
drugSampleOperationService
.
updateReceiveToFlow
(
account
,
sampleFlowedList
);
drugSampleRecordService
.
record
(
account
,
SampleStatusEnum
.
RECEIVE
,
SampleStatusEnum
.
FLOW
,
sampleFlowedList
,
"样品接收提交"
);
}
return
false
;
}
List
<
DrugSample
>
flowNotList
=
list
(
Wrappers
.<
DrugSample
>
query
().
eq
(
"flowed"
,
0
).
in
(
"id"
,
ids
));
if
(
CollectionUtils
.
isNotEmpty
(
flowNotList
)){
List
<
Long
>
sampleNotFlowList
=
flowNotList
.
stream
().
map
(
s
->{
return
s
.
getId
();
}).
collect
(
Collectors
.
toList
());
submitReceive
(
sampleNotFlowList
,
account
);
}
return
true
;
}
@Override
...
...
@@ -564,6 +611,12 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
@Override
public
Page
<
DrugSampleVO
>
pageSampleDataQuery
(
Page
page
,
DrugSampleVO
vo
)
{
return
baseMapper
.
selectVOList
(
page
,
vo
);
}
private
void
insertImage
(
List
<
DrugSample
>
list
,
Account
account
,
String
key
,
String
imageKey
,
int
i
)
{
...
...
@@ -1298,6 +1351,10 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
}
if
(
CollectionUtils
.
isNotEmpty
(
changeListIds
)){
DrugSample
sample
=
new
DrugSample
();
sample
.
setStatus
(
SampleStatusEnum
.
TEST
);
sample
.
setProgress
(
SampleStatusEnum
.
TEST
);
super
.
update
(
sample
,
Wrappers
.<
DrugSample
>
query
().
in
(
"id"
,
changeListIds
));
drugSampleOperationService
.
updateReceiveToTest
(
account
,
changeListIds
);
drugSampleRecordService
.
record
(
account
,
SampleStatusEnum
.
RECEIVE
,
SampleStatusEnum
.
TEST
,
changeListIds
,
"样品流转完成"
);
}
...
...
@@ -1305,4 +1362,380 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
return
true
;
}
@Override
public
void
exportSampleTestData
(
HttpServletResponse
response
,
DrugSampleVO
sampleVO
)
{
Long
[]
ids
=
null
;
String
sampleIdStr
=
sampleVO
.
getIdsStr
();
if
(
StringUtils
.
isNotBlank
(
sampleIdStr
)){
String
[]
sampleIds
=
sampleIdStr
.
split
(
","
);
int
length
=
sampleIds
.
length
;
if
(
length
>
0
){
ids
=
new
Long
[
length
];
for
(
int
i
=
0
;
i
<
sampleIds
.
length
;
i
++)
{
ids
[
i
]
=
Long
.
parseLong
(
sampleIds
[
i
]);
}
}
}
if
(
ArrayUtils
.
isEmpty
(
ids
)){
ids
=
null
;
PtAssert
.
fail
(
"请选择要导出的数据"
);
return
;
}
List
<
DrugSample
>
voList
=
getListByIds
(
ids
);
if
(
CollectionUtils
.
isEmpty
(
voList
)){
return
;
}
List
<
DrugItem
>
itemList
=
drugItemService
.
listBySampleIds
(
ids
);
Map
<
Long
,
List
<
DrugItem
>>
itemMap
=
new
HashMap
<>();
for
(
DrugItem
item:
itemList
)
{
if
(
itemMap
.
containsKey
(
item
.
getSampleId
())){
List
<
DrugItem
>
drugItemList
=
itemMap
.
get
(
item
.
getSampleId
());
drugItemList
.
add
(
item
);
itemMap
.
put
(
item
.
getSampleId
(),
drugItemList
);
}
else
{
List
<
DrugItem
>
drugItemList
=
new
ArrayList
<>();
drugItemList
.
add
(
item
);
itemMap
.
put
(
item
.
getSampleId
(),
drugItemList
);
}
}
XSSFWorkbook
xssfWorkbook
=
exportService
.
getXSSFWorkbook
(
"TestDataExport.xlsx"
);
XSSFSheet
sheet
=
xssfWorkbook
.
getSheetAt
(
0
);
XSSFSheet
sheet1
=
xssfWorkbook
.
getSheetAt
(
1
);
XSSFSheet
sheet2
=
xssfWorkbook
.
getSheetAt
(
2
);
XSSFSheet
sheet3
=
xssfWorkbook
.
getSheetAt
(
3
);
int
sampleSize
=
voList
.
size
();
int
beginIndex0
=
3
;
int
beginIndex1
=
5
;
int
beginIndex2
=
5
;
int
beginIndex3
=
5
;
for
(
int
i
=
0
;
i
<
sampleSize
;
i
++)
{
DrugSample
sample
=
voList
.
get
(
i
);
DrugSampleOperation
operation
=
drugSampleOperationService
.
getBySampleId
(
sample
.
getId
());
List
<
DrugItem
>
drugItems
=
itemMap
.
get
(
sample
.
getId
());
Map
<
String
,
DrugItem
>
stringMap
=
drugItems
.
stream
().
collect
(
Collectors
.
toMap
(
DrugItem:
:
getName
,
a
->
a
,(
k1
,
k2
)->
k1
));
Row
row
=
sheet
.
getRow
(
beginIndex0
);
if
(
null
==
row
){
row
=
sheet
.
createRow
(
beginIndex0
);
}
for
(
int
j
=
1
;
j
<
5
;
j
++)
{
Cell
cell
=
row
.
getCell
(
j
);
if
(
null
==
cell
){
cell
=
row
.
createCell
(
j
);
}
if
(
1
==
j
){
cell
.
setCellValue
(
sample
.
getName
());
}
else
if
(
2
==
j
){
cell
.
setCellValue
(
sample
.
getSamplePoint
());
}
else
if
(
3
==
j
){
cell
.
setCellValue
(
sample
.
getClassBan
());
}
else
if
(
4
==
j
){
cell
.
setCellValue
(
sample
.
getStandard
());
}
}
//sheet1
Row
row11
=
sheet1
.
getRow
(
beginIndex1
);
if
(
null
==
row11
){
row11
=
sheet1
.
createRow
(
beginIndex1
);
}
for
(
int
i1
=
1
;
i1
<
11
;
i1
++)
{
Cell
cell11
=
row11
.
getCell
(
i1
);
if
(
null
==
cell11
){
cell11
=
row11
.
createCell
(
i1
);
}
if
(
i1
==
1
){
cell11
.
setCellValue
(
sample
.
getSampleCode
());
}
else
if
(
i1
==
2
){
cell11
.
setCellValue
(
sample
.
getName
());
}
else
if
(
i1
==
3
){
cell11
.
setCellValue
(
sample
.
getCategory
());
}
else
if
(
i1
==
4
){
cell11
.
setCellValue
(
sample
.
getStandard
());
}
else
if
(
i1
==
5
){
cell11
.
setCellValue
(
DateUtils
.
dateTransfer
(
sample
.
getPcTime
(),
"yyyy-MM-dd"
));
}
else
if
(
i1
==
6
){
cell11
.
setCellValue
(
sample
.
getSamplePoint
());
}
else
if
(
i1
==
7
){
cell11
.
setCellValue
(
sample
.
getClassBan
());
}
else
if
(
i1
==
8
){
cell11
.
setCellValue
(
DateUtils
.
dateTransfer
(
operation
.
getTestEndTime
(),
"yyyy-MM-dd"
));
}
else
if
(
i1
==
9
){
if
(
null
==
stringMap
.
get
(
"包装标识检验"
)){
cell11
.
setCellValue
(
"合格"
);
}
else
{
cell11
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"包装标识检验"
).
getTestValue
()));
}
}
}
//sheet2
Row
row2
=
sheet2
.
getRow
(
beginIndex2
);
if
(
null
==
row2
){
row2
=
sheet2
.
createRow
(
beginIndex2
);
}
DrugItem
itemLuoSi
=
stringMap
.
get
(
"端部落丝量"
);
List
<
String
>
luoSiList
=
new
ArrayList
<>();
if
(
null
!=
itemLuoSi
&&
StringUtils
.
isNotBlank
(
itemLuoSi
.
getTestValue
())){
String
[]
luoSiArray
=
itemLuoSi
.
getTestValue
().
split
(
","
);
luoSiList
=
Arrays
.
asList
(
luoSiArray
);
}
for
(
int
i2
=
9
;
i2
<
38
;
i2
++)
{
Cell
cell2
=
row2
.
getCell
(
i2
);
if
(
null
==
cell2
){
cell2
=
row2
.
createCell
(
i2
);
}
if
(
9
==
i2
){
if
(
null
!=
stringMap
.
get
(
"质量"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"质量"
).
getTestValue
()));
}
}
else
if
(
10
==
i2
){
if
(
null
!=
stringMap
.
get
(
"质量"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"质量"
).
getDeviation
()));
}
}
else
if
(
11
==
i2
){
if
(
null
!=
stringMap
.
get
(
"质量"
)){
if
(
null
!=
stringMap
.
get
(
"质量"
).
getFailQuantity
()){
cell2
.
setCellValue
(
stringMap
.
get
(
"质量"
).
getFailQuantity
());
}
}
}
else
if
(
12
==
i2
){
if
(
null
!=
stringMap
.
get
(
"圆周"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"圆周"
).
getTestValue
()));
}
}
else
if
(
13
==
i2
){
if
(
null
!=
stringMap
.
get
(
"圆周"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"圆周"
).
getDeviation
()));
}
}
else
if
(
14
==
i2
){
if
(
null
!=
stringMap
.
get
(
"圆周"
)){
if
(
null
!=
stringMap
.
get
(
"圆周"
).
getFailQuantity
()){
cell2
.
setCellValue
(
stringMap
.
get
(
"圆周"
).
getFailQuantity
());
}
}
}
else
if
(
15
==
i2
){
if
(
null
!=
stringMap
.
get
(
"总透气度"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"总透气度"
).
getTestValue
()));
}
}
else
if
(
16
==
i2
){
if
(
null
!=
stringMap
.
get
(
"总透气度"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"总透气度"
).
getDeviation
()));
}
}
else
if
(
17
==
i2
){
if
(
null
!=
stringMap
.
get
(
"总透气度"
)){
if
(
null
!=
stringMap
.
get
(
"总透气度"
).
getFailQuantity
()){
cell2
.
setCellValue
(
stringMap
.
get
(
"总透气度"
).
getFailQuantity
());
}
}
}
else
if
(
18
==
i2
){
if
(
null
!=
stringMap
.
get
(
"吸阻"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"吸阻"
).
getTestValue
()));
}
}
else
if
(
19
==
i2
){
if
(
null
!=
stringMap
.
get
(
"吸阻"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"吸阻"
).
getDeviation
()));
}
}
else
if
(
20
==
i2
){
if
(
null
!=
stringMap
.
get
(
"吸阻"
)){
if
(
null
!=
stringMap
.
get
(
"吸阻"
).
getFailQuantity
()){
cell2
.
setCellValue
(
stringMap
.
get
(
"吸阻"
).
getFailQuantity
());
}
}
}
else
if
(
21
==
i2
){
if
(
null
!=
stringMap
.
get
(
"硬度"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"硬度"
).
getTestValue
()));
}
}
else
if
(
22
==
i2
){
if
(
null
!=
stringMap
.
get
(
"硬度"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"硬度"
).
getDeviation
()));
}
}
else
if
(
23
==
i2
){
if
(
null
!=
stringMap
.
get
(
"硬度"
)){
if
(
null
!=
stringMap
.
get
(
"硬度"
).
getFailQuantity
()){
cell2
.
setCellValue
(
stringMap
.
get
(
"硬度"
).
getFailQuantity
());
}
}
}
else
if
(
24
==
i2
){
if
(
null
!=
stringMap
.
get
(
"长度"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"长度"
).
getTestValue
()));
}
}
else
if
(
25
==
i2
){
if
(
null
!=
stringMap
.
get
(
"长度"
)){
cell2
.
setCellValue
(
StringHandleUtils
.
getString
(
stringMap
.
get
(
"长度"
).
getDeviation
()));
}
}
else
if
(
26
==
i2
){
if
(
null
!=
stringMap
.
get
(
"长度"
)){
if
(
null
!=
stringMap
.
get
(
"长度"
).
getFailQuantity
()){
cell2
.
setCellValue
(
stringMap
.
get
(
"长度"
).
getFailQuantity
());
}
}
}
else
if
(
33
==
i2
){
if
(
null
!=
stringMap
.
get
(
"含水率"
)){
if
(
null
!=
stringMap
.
get
(
"含水率"
).
getTestValue
()){
cell2
.
setCellValue
(
stringMap
.
get
(
"含水率"
).
getTestValue
());
}
}
}
else
if
(
34
==
i2
){
if
(
null
!=
stringMap
.
get
(
"含水率"
)){
if
(
null
!=
stringMap
.
get
(
"含水率"
).
getDeviation
()){
cell2
.
setCellValue
(
stringMap
.
get
(
"含水率"
).
getDeviation
());
}
}
}
else
if
(
35
==
i2
){
if
(
null
!=
stringMap
.
get
(
"含末率"
)){
if
(
null
!=
stringMap
.
get
(
"含末率"
).
getTestValue
()){
cell2
.
setCellValue
(
stringMap
.
get
(
"含末率"
).
getTestValue
());
}
}
}
for
(
int
k
=
0
;
k
<
luoSiList
.
size
();
k
++)
{
// if (k==0){
// if (27==i2){
// cell2.setCellValue(luoSiList.get(k));
// }
// }
if
(
i2
==(
27
+
k
)){
cell2
.
setCellValue
(
luoSiList
.
get
(
k
));
}
}
}
// sheet3
Row
row3
=
sheet3
.
getRow
(
beginIndex3
);
if
(
null
==
row3
){
row3
=
sheet3
.
createRow
(
beginIndex3
);
}
DrugItem
item
=
stringMap
.
get
(
"烟支外观质量缺陷"
);
if
(
null
!=
item
){
List
<
TestValueExtend
>
extendList
=
testValueExtendService
.
listBySampleIds
(
item
.
getId
());
for
(
int
i3
=
9
;
i3
<
38
;
i3
++)
{
Cell
cell3
=
row3
.
getCell
(
i3
);
if
(
null
==
cell3
)
{
cell3
=
row3
.
createCell
(
i3
);
}
if
(
9
==
i3
){
if
(
null
!=
item
.
getSampleQuantity
()){
cell3
.
setCellValue
(
item
.
getSampleQuantity
().
toString
());
}
}
for
(
int
m
=
0
;
m
<
extendList
.
size
();
m
++)
{
TestValueExtend
extend
=
extendList
.
get
(
m
);
if
(
m
==
0
){
if
(
10
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getType
()));
}
else
if
(
11
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getCode
()));
}
else
if
(
12
==
i3
){
if
(
null
!=
extend
.
getQuantity
()){
cell3
.
setCellValue
(
extend
.
getQuantity
().
toString
());
}
}
}
else
if
(
m
==
1
){
if
(
13
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getType
()));
}
else
if
(
14
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getCode
()));
}
else
if
(
15
==
i3
){
if
(
null
!=
extend
.
getQuantity
()){
cell3
.
setCellValue
(
extend
.
getQuantity
().
toString
());
}
}
}
else
if
(
m
==
2
){
if
(
16
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getType
()));
}
else
if
(
17
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getCode
()));
}
else
if
(
18
==
i3
){
if
(
null
!=
extend
.
getQuantity
()){
cell3
.
setCellValue
(
extend
.
getQuantity
().
toString
());
}
}
}
else
if
(
m
==
3
){
if
(
19
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getType
()));
}
else
if
(
20
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getCode
()));
}
else
if
(
21
==
i3
){
if
(
null
!=
extend
.
getQuantity
()){
cell3
.
setCellValue
(
extend
.
getQuantity
().
toString
());
}
}
}
else
if
(
m
==
4
){
if
(
22
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getType
()));
}
else
if
(
23
==
i3
){
cell3
.
setCellValue
(
StringHandleUtils
.
getString
(
extend
.
getCode
()));
}
else
if
(
24
==
i3
){
if
(
null
!=
extend
.
getQuantity
()){
cell3
.
setCellValue
(
extend
.
getQuantity
().
toString
());
}
}
}
}
}
}
beginIndex0
++;
beginIndex1
++;
beginIndex2
++;
beginIndex3
++;
}
xssfWorkbook
.
setForceFormulaRecalculation
(
true
);
exportService
.
downloadXlsx
(
response
,
"TestDataExport.xlsx"
,
xssfWorkbook
);
}
}
src/main/java/com/patzn/lims/drug/service/impl/TestValueExtendServiceImpl.java
View file @
a6c3daee
...
...
@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* <p>
* 检测值扩展表 服务实现类
...
...
@@ -26,4 +28,9 @@ public class TestValueExtendServiceImpl extends BaseServiceImpl<TestValueExtendM
wrapper
.
orderByAsc
(
"ctime"
);
return
this
.
page
(
page
,
wrapper
);
}
@Override
public
List
<
TestValueExtend
>
listBySampleIds
(
Long
id
)
{
return
list
(
Wrappers
.<
TestValueExtend
>
query
().
eq
(
"item_id"
,
id
).
orderByAsc
(
"ctime"
));
}
}
src/main/java/com/patzn/lims/drug/vo/DrugSampleVO.java
View file @
a6c3daee
...
...
@@ -118,4 +118,8 @@ public class DrugSampleVO extends DrugSample {
@ApiModelProperty
(
value
=
"流转单位"
)
private
String
unit
;
@ApiModelProperty
(
"ids字符串"
)
private
String
idsStr
;
}
src/main/java/com/patzn/lims/res/service/IExportService.java
View file @
a6c3daee
package
com
.
patzn
.
lims
.
res
.
service
;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.apache.poi.xwpf.usermodel.XWPFDocument
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.InputStream
;
import
java.util.Map
;
public
interface
IExportService
{
String
storageWord
(
XWPFDocument
doc
,
String
filePath
);
Map
<
String
,
Object
>
wordToMap
(
String
docFilePath
);
String
filePath
(
String
fileName
);
String
fileFolderPath
(
String
folder
,
String
fileName
);
InputStream
fileWordInputStreamFolderPath
(
String
folder
,
String
fileName
);
/**
* <p>
* 下载 DOCX 文件
...
...
@@ -26,4 +32,28 @@ public interface IExportService {
* @param fileName 文件名
* @param doc DOCX 文档对象
*/
void
downloadDoc
(
HttpServletResponse
response
,
String
fileName
,
XWPFDocument
doc
);
void
downloadXls
(
HttpServletResponse
response
,
String
fileName
,
HSSFWorkbook
workbook
);
void
downloadXlsx
(
HttpServletResponse
response
,
String
fileName
,
XSSFWorkbook
workbook
);
void
downloadXlsxs
(
HttpServletResponse
response
,
String
fileName
,
SXSSFWorkbook
workbook
);
XWPFDocument
getXWPFDoc
(
String
folder
,
String
modelName
);
XWPFDocument
getXWPFDoc
(
InputStream
io
);
XSSFWorkbook
getXSSFWorkbook
(
String
modelName
);
SXSSFWorkbook
getSXSSFWorkbook
(
String
modelName
);
XSSFWorkbook
getXSSFWorkbook
(
InputStream
io
);
HSSFWorkbook
getHSSFWorkbook
(
String
modelName
);
}
src/main/java/com/patzn/lims/res/service/impl/ExportServiceImpl.java
View file @
a6c3daee
package
com
.
patzn
.
lims
.
res
.
service
.
impl
;
import
com.patzn.lims.core.api.PtAssert
;
import
com.patzn.cloud.commons.api.RestAssert
;
import
com.patzn.lims.res.service.IExportService
;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.apache.poi.xwpf.usermodel.XWPFDocument
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
java.io.InputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.net.URL
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* <p>
...
...
@@ -23,36 +31,216 @@ public class ExportServiceImpl implements IExportService {
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ExportServiceImpl
.
class
);
@Override
public
String
storageWord
(
XWPFDocument
doc
,
String
filePath
)
{
try
(
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
FileOutputStream
out
=
new
FileOutputStream
(
filePath
,
true
)
)
{
doc
.
write
(
bos
);
out
.
write
(
bos
.
toByteArray
());
}
catch
(
Exception
e
)
{
logger
.
error
(
"保存 word 异常"
,
e
);
return
null
;
}
return
filePath
;
}
@Override
public
Map
<
String
,
Object
>
wordToMap
(
String
docFilePath
)
{
String
filePath
=
String
.
format
(
"templates/word/model/%s"
,
docFilePath
);
// 兼容打包 JAR 压缩情况处理
logger
.
debug
(
"doc 文件路径 {}"
,
docFilePath
);
XWPFDocument
doc
=
null
;
try
(
InputStream
in
=
this
.
getClass
().
getClassLoader
().
getResourceAsStream
(
filePath
))
{
doc
=
new
XWPFDocument
(
in
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"word 转 map 异常"
,
e
);
}
Map
<
String
,
Object
>
map
=
new
HashMap
<>(
2
);
if
(
null
!=
doc
&&
null
!=
doc
.
getTables
())
{
map
.
put
(
"table"
,
doc
.
getTables
().
iterator
());
}
map
.
put
(
"doc"
,
doc
);
return
map
;
}
@Override
public
String
filePath
(
String
fileName
)
{
URL
url
=
this
.
getClass
().
getClassLoader
().
getResource
(
"templates/word/model/"
+
fileName
);
P
tAssert
.
fail
(
null
==
url
,
fileName
+
"不存在"
);
Res
tAssert
.
fail
(
null
==
url
,
fileName
+
"不存在"
);
return
url
.
getPath
();
}
@Override
public
String
fileFolderPath
(
String
folder
,
String
fileName
)
{
URL
url
=
this
.
getClass
().
getClassLoader
().
getResource
(
"templates/word/"
+
folder
+
"/"
+
fileName
);
PtAssert
.
fail
(
null
==
url
,
fileName
+
"不存在"
);
public
String
fileFolderPath
(
String
folder
,
String
fileName
)
{
URL
url
=
this
.
getClass
().
getClassLoader
().
getResource
(
"templates/word/"
+
folder
+
"/"
+
fileName
);
RestAssert
.
fail
(
null
==
url
,
fileName
+
"不存在"
);
return
url
.
getPath
();
}
public
String
fileFolderPath
(
String
fileName
)
{
URL
url
=
this
.
getClass
().
getClassLoader
().
getResource
(
"templates/excel/"
+
fileName
);
RestAssert
.
fail
(
null
==
url
,
fileName
+
"不存在"
);
return
url
.
getPath
();
}
public
InputStream
fileInputStreamPath
(
String
fileName
)
{
InputStream
url
=
this
.
getClass
().
getClassLoader
().
getResourceAsStream
(
"templates/excel/"
+
fileName
);
return
url
;
}
@Override
public
InputStream
fileWordInputStreamFolderPath
(
String
folder
,
String
fileName
)
{
InputStream
io
=
this
.
getClass
().
getClassLoader
().
getResourceAsStream
(
"templates/word/"
+
folder
+
"/"
+
fileName
);
PtAssert
.
fail
(
null
==
io
,
fileName
+
"不存在"
);
return
io
;
public
void
downloadDoc
(
HttpServletResponse
response
,
String
fileName
,
XWPFDocument
doc
)
{
response
.
reset
();
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
);
response
.
addHeader
(
"Content-Disposition"
,
String
.
format
(
"attachment; filename=%s;charset=UTF-8"
,
fileName
));
try
(
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
OutputStream
os
=
response
.
getOutputStream
()
)
{
doc
.
write
(
bos
);
os
.
write
(
bos
.
toByteArray
());
os
.
flush
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"word 转 map 异常"
,
e
);
}
}
@Override
public
void
downloadXls
(
HttpServletResponse
response
,
String
fileName
,
HSSFWorkbook
workbook
)
{
response
.
reset
();
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
);
response
.
addHeader
(
"Content-Disposition"
,
String
.
format
(
"attachment; filename=%s;charset=UTF-8"
,
fileName
));
try
(
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
OutputStream
os
=
response
.
getOutputStream
()
)
{
workbook
.
write
(
bos
);
os
.
write
(
bos
.
toByteArray
());
os
.
flush
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"excel 转 map 异常"
,
e
);
}
}
public
InputStream
fileFolderPath
(
String
fileName
)
{
return
getClass
().
getClassLoader
().
getResourceAsStream
(
"templates/excel/"
+
fileName
);
@Override
public
void
downloadXlsx
(
HttpServletResponse
response
,
String
fileName
,
XSSFWorkbook
workbook
)
{
response
.
reset
();
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
);
response
.
addHeader
(
"Content-Disposition"
,
String
.
format
(
"attachment; filename=%s;charset=UTF-8"
,
fileName
));
try
(
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
OutputStream
os
=
response
.
getOutputStream
()
)
{
workbook
.
write
(
bos
);
os
.
write
(
bos
.
toByteArray
());
os
.
flush
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"excel 转 map 异常"
,
e
);
}
}
@Override
public
void
downloadXlsxs
(
HttpServletResponse
response
,
String
fileName
,
SXSSFWorkbook
workbook
)
{
response
.
reset
();
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
);
response
.
addHeader
(
"Content-Disposition"
,
String
.
format
(
"attachment; filename=%s;charset=UTF-8"
,
fileName
));
try
(
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
OutputStream
os
=
response
.
getOutputStream
()
)
{
workbook
.
write
(
bos
);
os
.
write
(
bos
.
toByteArray
());
os
.
flush
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"excel 转 map 异常"
,
e
);
}
}
@Override
public
XWPFDocument
getXWPFDoc
(
String
folder
,
String
modelName
)
{
FileInputStream
in
;
XWPFDocument
doc
=
null
;
try
{
in
=
new
FileInputStream
(
new
File
(
fileFolderPath
(
folder
,
modelName
)));
doc
=
new
XWPFDocument
(
in
);
}
catch
(
Exception
e1
)
{
e1
.
printStackTrace
();
}
return
doc
;
}
@Override
public
XWPFDocument
getXWPFDoc
(
InputStream
io
)
{
XWPFDocument
doc
=
null
;
try
{
doc
=
new
XWPFDocument
(
io
);
}
catch
(
Exception
e1
)
{
e1
.
printStackTrace
();
}
return
doc
;
}
@Override
public
XSSFWorkbook
getXSSFWorkbook
(
String
modelName
){
InputStream
is
;
XSSFWorkbook
xssfWorkbook
=
null
;
try
{
is
=
fileInputStreamPath
(
modelName
);
xssfWorkbook
=
new
XSSFWorkbook
(
is
);
}
catch
(
Exception
e1
)
{
e1
.
printStackTrace
();
}
return
xssfWorkbook
;
}
@Override
public
SXSSFWorkbook
getSXSSFWorkbook
(
String
modelName
){
InputStream
is
;
SXSSFWorkbook
xssfWorkbook
=
null
;
try
{
is
=
fileInputStreamPath
(
modelName
);
xssfWorkbook
=
new
SXSSFWorkbook
(
new
XSSFWorkbook
(
is
));
xssfWorkbook
.
setCompressTempFiles
(
true
);
//压缩临时文件,很重要,否则磁盘很快就会被写满
}
catch
(
Exception
e1
)
{
e1
.
printStackTrace
();
}
return
xssfWorkbook
;
}
@Override
public
XSSFWorkbook
getXSSFWorkbook
(
InputStream
io
)
{
XSSFWorkbook
xssfWorkbook
=
null
;
try
{
xssfWorkbook
=
new
XSSFWorkbook
(
io
);
}
catch
(
Exception
e1
)
{
e1
.
printStackTrace
();
}
return
xssfWorkbook
;
}
@Override
public
HSSFWorkbook
getHSSFWorkbook
(
String
modelName
){
FileInputStream
is
;
HSSFWorkbook
xssfWorkbook
=
null
;
try
{
is
=
new
FileInputStream
(
new
File
(
fileFolderPath
(
modelName
)));
xssfWorkbook
=
new
HSSFWorkbook
(
is
);
}
catch
(
Exception
e1
)
{
e1
.
printStackTrace
();
}
return
xssfWorkbook
;
}
}
\ No newline at end of file
src/main/resources/mapper/drug/DrugItemMapper.xml
View file @
a6c3daee
...
...
@@ -48,10 +48,34 @@
</select>
<sql
id=
"iColumn"
>
i.ID,
i.NAME,
i.group_name,
i.group_id,
i.sample_id,
i.compare_symbol,
i.limit_value,
i.unit,
i.judged,
i.test_value,
i.status,
i.progress,
i.single_judge,
i.code,
i.standard_name,
i.type,
i.sample_quantity,
i.fail_quantity,
i.deviation ,
i.order_by
</sql>
<select
id=
"selectVOList"
resultType=
"com.patzn.lims.drug.vo.DrugItemVO"
>
WITH item AS (
SELECT
i.*
FROM drug_item i WHERE i.deleted = 0
SELECT
<include
refid=
"iColumn"
/>
FROM drug_item i WHERE i.deleted = 0
<if
test=
"vo.status!=null"
>
AND i.status = #{vo.status}
</if>
...
...
src/main/resources/templates/excel/TestDataExport.xlsx
0 → 100644
View file @
a6c3daee
File added
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