Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
patzn-cloud-service-hmhj
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
patzn-cloud-service-hmhj
Commits
ddf21198
Commit
ddf21198
authored
Jul 08, 2021
by
ghxdhr
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
导出检测委托书
parent
71465f8d
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
104 additions
and
1 deletions
+104
-1
EntrustController.java
...cloud/service/lims/hmhj/controller/EntrustController.java
+6
-0
IEntrustService.java
...atzn/cloud/service/lims/hmhj/service/IEntrustService.java
+3
-0
EntrustServiceImpl.java
...ud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
+95
-1
EntrustExportTemplate.docx
...sources/templates/word/entrust/EntrustExportTemplate.docx
+0
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/EntrustController.java
View file @
ddf21198
...
@@ -775,4 +775,10 @@ public class EntrustController extends ServiceController {
...
@@ -775,4 +775,10 @@ public class EntrustController extends ServiceController {
return
success
(
EntrustFlowEnum
.
values
());
return
success
(
EntrustFlowEnum
.
values
());
}
}
@ApiOperation
(
"导出检测委托书"
)
@GetMapping
(
"/export"
)
public
void
exportEntrust
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
entrustService
.
exportEntrust
(
ids
,
response
);
}
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustService.java
View file @
ddf21198
...
@@ -7,6 +7,7 @@ import com.patzn.cloud.service.hmhj.dto.EntrustDTO;
...
@@ -7,6 +7,7 @@ import com.patzn.cloud.service.hmhj.dto.EntrustDTO;
import
com.patzn.cloud.service.hmhj.entity.Entrust
;
import
com.patzn.cloud.service.hmhj.entity.Entrust
;
import
com.patzn.cloud.service.hmhj.vo.EntrustVO
;
import
com.patzn.cloud.service.hmhj.vo.EntrustVO
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -76,4 +77,6 @@ public interface IEntrustService extends IBaseService<Entrust> {
...
@@ -76,4 +77,6 @@ public interface IEntrustService extends IBaseService<Entrust> {
boolean
rejectToPrevNode
(
Long
id
,
String
reason
,
Account
account
);
boolean
rejectToPrevNode
(
Long
id
,
String
reason
,
Account
account
);
boolean
rejectToPrevNode
(
Entrust
entrust
,
String
reason
,
Account
account
);
boolean
rejectToPrevNode
(
Entrust
entrust
,
String
reason
,
Account
account
);
void
exportEntrust
(
List
<
Long
>
ids
,
HttpServletResponse
response
);
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
View file @
ddf21198
...
@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
...
@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
import
com.patzn.cloud.commons.api.RestAssert
;
import
com.patzn.cloud.commons.api.RestAssert
;
import
com.patzn.cloud.commons.controller.Account
;
import
com.patzn.cloud.commons.controller.Account
;
import
com.patzn.cloud.commons.controller.LoginHelper
;
import
com.patzn.cloud.commons.controller.LoginHelper
;
import
com.patzn.cloud.commons.toolkit.
StringHandleUtils
;
import
com.patzn.cloud.commons.toolkit.
*
;
import
com.patzn.cloud.feign.base.client.SysOrgClient
;
import
com.patzn.cloud.feign.base.client.SysOrgClient
;
import
com.patzn.cloud.feign.lims.hmhj.client.LmsChemicalCategoryClient
;
import
com.patzn.cloud.feign.lims.hmhj.client.LmsChemicalCategoryClient
;
import
com.patzn.cloud.service.base.entity.SysOrg
;
import
com.patzn.cloud.service.base.entity.SysOrg
;
...
@@ -22,6 +22,8 @@ import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
...
@@ -22,6 +22,8 @@ import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import
com.patzn.cloud.service.lims.hmhj.mapper.EntrustMapper
;
import
com.patzn.cloud.service.lims.hmhj.mapper.EntrustMapper
;
import
com.patzn.cloud.service.lims.hmhj.service.*
;
import
com.patzn.cloud.service.lims.hmhj.service.*
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.poibox.utils.TableUtils
;
import
com.patzn.poibox.xwpf.XWPFTemplate
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -32,6 +34,8 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
...
@@ -32,6 +34,8 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -969,4 +973,94 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
...
@@ -969,4 +973,94 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return
true
;
return
true
;
}
}
/* 导出检测委托书 */
@Override
public
void
exportEntrust
(
List
<
Long
>
ids
,
HttpServletResponse
response
)
{
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
ids
),
"请选择至少一个委托"
);
ByteArrayOutputStream
baos
=
getEntrustBaos
();
try
{
List
<
File
>
files
=
getFiles
(
ids
,
baos
);
if
(
CollectionUtils
.
isNotEmpty
(
files
))
{
if
(
files
.
size
()
==
1
)
{
FileUtils
.
download
(
new
FileInputStream
(
files
.
get
(
0
)),
files
.
get
(
0
).
getName
(),
response
);
}
else
{
FileUtils
.
downLoadFiles
(
files
,
"检测委托书.zip"
,
response
);
}
}
}
catch
(
IOException
e
)
{
RestAssert
.
fail
(
"检测委托书导出异常"
);
}
}
private
ByteArrayOutputStream
getEntrustBaos
()
{
InputStream
inputStream
=
this
.
getClass
().
getClassLoader
().
getResourceAsStream
(
"\\templates.\\word.\\entrust.\\EntrustExportTemplate.docx"
);
RestAssert
.
fail
(
null
==
inputStream
,
"委托检测书模板获取失败"
);
byte
[]
buffer
=
new
byte
[
1024
];
int
len
;
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
try
{
while
((
len
=
inputStream
.
read
(
buffer
))
!=
-
1
)
{
baos
.
write
(
buffer
,
0
,
len
);
}
}
catch
(
IOException
e
)
{
logger
.
error
(
"读取inputStream异常:{}"
,
e
);
}
finally
{
IoUtils
.
close
(
inputStream
);
}
return
baos
;
}
private
List
<
File
>
getFiles
(
List
<
Long
>
ids
,
ByteArrayOutputStream
baos
)
throws
IOException
{
String
gangCode
=
"/"
;
ArrayList
<
File
>
files
=
new
ArrayList
<>(
ids
.
size
());
String
filePathPrefix
=
System
.
getProperty
(
"java.io.tmpdir"
)
+
File
.
separator
;
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
List
<
Entrust
>
entrustList
=
this
.
list
(
Condition
.
create
().
in
(
"id"
,
ids
));
List
<
EntrustSample
>
entrustSamples
=
entrustSampleService
.
list
(
Condition
.
create
().
in
(
"entrust_id"
,
ids
));
Set
<
Long
>
sampleIds
=
entrustSamples
.
stream
().
map
(
sample
->
sample
.
getId
()).
collect
(
Collectors
.
toSet
());
List
<
EntrustSampleItem
>
items
=
entrustSampleItemService
.
list
(
Condition
.
create
().
in
(
"entrust_sample_id"
,
sampleIds
));
/*每个委托一个文件*/
for
(
Entrust
entrust
:
entrustList
)
{
/* 样品 */
List
<
EntrustSample
>
samples
=
entrustSamples
.
stream
().
filter
(
s
->
entrust
.
getId
().
equals
(
s
.
getEntrustId
())).
collect
(
Collectors
.
toList
());
/* 项目 */
Set
<
String
>
itemNames
=
items
.
stream
().
map
(
i
->
i
.
getName
()).
collect
(
Collectors
.
toSet
());
Set
<
String
>
standards
=
items
.
stream
()
.
filter
(
i
->
StringUtils
.
isNotEmpty
(
i
.
getStandard
()))
.
map
(
i
->
i
.
getStandard
()).
collect
(
Collectors
.
toSet
());
dataMap
.
put
(
"entrust"
,
entrust
);
/* 委托时间和样品收受时间 */
dataMap
.
put
(
"entrustTimeStr"
,
StringHandleUtils
.
parse
(
DateUtils
.
toYearMonthDay
(
entrust
.
getEntrustTime
()),
gangCode
));
dataMap
.
put
(
"entrustTimeStrCn"
,
StringHandleUtils
.
parse
(
DateUtils
.
toYearMonthDayChinese
(
entrust
.
getEntrustTime
()),
gangCode
));
dataMap
.
put
(
"entrustTimeStrPoint"
,
StringHandleUtils
.
parse
(
DateUtils
.
toYearMonthDayPoint
(
entrust
.
getEntrustTime
()),
gangCode
));
dataMap
.
put
(
"receiveTimeStr"
,
StringHandleUtils
.
parse
(
DateUtils
.
toYearMonthDay
(
entrust
.
getReceiveTime
()),
gangCode
));
dataMap
.
put
(
"receiveTimeStrCn"
,
StringHandleUtils
.
parse
(
DateUtils
.
toYearMonthDayChinese
(
entrust
.
getReceiveTime
()),
gangCode
));
dataMap
.
put
(
"receiveTimeStrPoint"
,
StringHandleUtils
.
parse
(
DateUtils
.
toYearMonthDayPoint
(
entrust
.
getReceiveTime
()),
gangCode
));
dataMap
.
put
(
"sample"
,
samples
.
get
(
0
));
dataMap
.
put
(
"itemNames"
,
ListToStringUtils
.
listToString
(
itemNames
,
"、"
,
gangCode
));
dataMap
.
put
(
"standards"
,
ListToStringUtils
.
listToString
(
standards
,
"、"
,
gangCode
));
XWPFTemplate
template
=
XWPFTemplate
.
compile
(
new
ByteArrayInputStream
(
baos
.
toByteArray
())).
setDefaultValue
(
"/"
).
render
(
dataMap
);
String
filePath
=
filePathPrefix
+
entrust
.
getCode
()
+
"检测委托书.docx"
;
File
file
=
new
File
(
filePath
);
if
(!
file
.
getParentFile
().
exists
())
{
file
.
getParentFile
().
mkdirs
();
}
FileOutputStream
fos
=
new
FileOutputStream
(
file
);
template
.
write
(
fos
);
files
.
add
(
file
);
IoUtils
.
close
(
fos
,
template
.
getXWPFDocument
());
}
return
files
;
}
}
}
src/main/resources/templates/word/entrust/EntrustExportTemplate.docx
0 → 100644
View file @
ddf21198
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