Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
patzn-cloud-service-soil
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-soil
Commits
8d26df93
Commit
8d26df93
authored
Feb 25, 2021
by
zhangmengqi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev'
parents
968ca4cd
4bfbaa0e
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
251 additions
and
0 deletions
+251
-0
SoilExperimentController.java
...ervice/lims/soil/controller/SoilExperimentController.java
+9
-0
SoilExperimentMapper.java
.../cloud/service/lims/soil/mapper/SoilExperimentMapper.java
+2
-0
ISoilExperimentService.java
...oud/service/lims/soil/service/ISoilExperimentService.java
+3
-0
SoilExperimentServiceImpl.java
...ice/lims/soil/service/impl/SoilExperimentServiceImpl.java
+220
-0
SoilExperimentMapper.xml
src/main/resources/mapper/soil/SoilExperimentMapper.xml
+17
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/soil/controller/SoilExperimentController.java
View file @
8d26df93
...
...
@@ -32,6 +32,7 @@ import io.swagger.annotations.ApiImplicitParam;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
/**
* <p>
...
...
@@ -697,4 +698,12 @@ public class SoilExperimentController extends ServiceController {
return
success
(
soilExperimentService
.
uploadGdsFile
(
file
));
}
@ApiOperation
(
value
=
"力学采集文件批量上传"
,
notes
=
"附件批量上传"
)
@PostMapping
(
"/upload_dynamics_collect/{entrustId}"
)
public
RestResult
<
Boolean
>
uploadDynamicsCollect
(
@PathVariable
(
"entrustId"
)
Long
entrustId
,
MultipartHttpServletRequest
httpServletRequest
)
{
return
success
(
soilExperimentService
.
uploadDynamicsCollect
(
httpServletRequest
,
entrustId
,
getAccount
()));
}
}
src/main/java/com/patzn/cloud/service/lims/soil/mapper/SoilExperimentMapper.java
View file @
8d26df93
...
...
@@ -47,4 +47,6 @@ public interface SoilExperimentMapper extends BaseMapper<SoilExperiment> {
List
<
SoilExperimentVO
>
listExpRightBath
(
Page
<
SoilExperimentVO
>
page
,
@Param
(
"vo"
)
SoilExperimentQueryDTO
dto
);
List
<
SoilExperimentVO
>
listGroupVOListByEntrustIds
(
@Param
(
"entrustIdList"
)
List
<
Long
>
entrustIdList
);
List
<
SoilExperimentVO
>
selectByEntrustId
(
@Param
(
"entrustId"
)
Long
entrustId
);
}
src/main/java/com/patzn/cloud/service/lims/soil/service/ISoilExperimentService.java
View file @
8d26df93
...
...
@@ -15,6 +15,7 @@ import com.patzn.cloud.service.soil.statistics.SoilEntrustItemNumVO;
import
com.patzn.cloud.service.soil.vo.SoilExperimentVO
;
import
jcifs.smb.SmbFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
import
java.util.List
;
...
...
@@ -100,4 +101,6 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
SoilOpenSoilRecord
saveExcelOpenSoilRecord
(
Long
entrustId
,
Long
templateId
,
Account
account
);
boolean
uploadGdsFile
(
MultipartFile
file
);
boolean
uploadDynamicsCollect
(
MultipartHttpServletRequest
httpServletRequest
,
Long
entrustId
,
Account
account
);
}
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilExperimentServiceImpl.java
View file @
8d26df93
...
...
@@ -68,6 +68,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import
com.baomidou.mybatisplus.plugins.Page
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
/**
* <p>
...
...
@@ -2357,6 +2358,225 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
uploadDynamicsCollect
(
MultipartHttpServletRequest
multipartHttpServletRequest
,
Long
entrustId
,
Account
account
)
{
RestAssert
.
fail
(
null
==
entrustId
,
"请选则委托单ID"
);
List
<
SoilExperimentVO
>
voList
=
baseMapper
.
selectByEntrustId
(
entrustId
);
if
(
CollectionUtils
.
isEmpty
(
voList
)){
RestAssert
.
fail
(
"检测项目不存在"
);
}
Map
<
String
,
SoilExperimentVO
>
nameCodeList
=
new
HashMap
<>();
for
(
SoilExperimentVO
experimentVO:
voList
)
{
nameCodeList
.
put
(
experimentVO
.
getName
()+
experimentVO
.
getSampleCode
(),
experimentVO
);
}
Iterator
<
String
>
fileNamesIt
=
multipartHttpServletRequest
.
getFileNames
();
List
<
String
>
failedNameList
=
new
ArrayList
<>();
while
(
fileNamesIt
.
hasNext
())
{
String
fileName
=
fileNamesIt
.
next
();
// 获取文件
MultipartFile
multipartFile
=
multipartHttpServletRequest
.
getFile
(
fileName
);
String
name
=
multipartFile
.
getName
();
String
originalFilename
=
multipartFile
.
getOriginalFilename
();
if
(
originalFilename
.
contains
(
".bmp"
)||
originalFilename
.
contains
(
".txt"
)){
String
nameCode
=
originalFilename
.
replace
(
".bmp"
,
""
).
replace
(
".txt"
,
""
);
if
(!
nameCodeList
.
containsKey
(
nameCode
)){
RestAssert
.
fail
(
"请正确上传委托下的数据采集文件"
);
}
}
else
{
RestAssert
.
fail
(
"请上传 .bmp 或者 .txt格式的文件"
);
}
failedNameList
.
add
(
fileName
);
}
Iterator
<
String
>
fileNamesItOk
=
multipartHttpServletRequest
.
getFileNames
();
while
(
fileNamesItOk
.
hasNext
())
{
String
fileName
=
fileNamesItOk
.
next
();
// 获取文件
MultipartFile
multipartFile
=
multipartHttpServletRequest
.
getFile
(
fileName
);
String
name
=
multipartFile
.
getName
();
String
originalFilename
=
multipartFile
.
getOriginalFilename
();
String
nameCode
=
originalFilename
.
replace
(
".bmp"
,
""
).
replace
(
".txt"
,
""
);
SoilExperimentVO
vo
=
nameCodeList
.
get
(
nameCode
);
CollectDataType
dataType
=
new
CollectDataType
();
dataType
.
setExpId
(
vo
.
getId
());
dataType
.
setSampleCode
(
vo
.
getSampleCode
());
dataType
.
setExperiment
(
vo
.
getName
());
dataType
.
setEntrustCode
(
vo
.
getEntrustCode
());
if
(
originalFilename
.
contains
(
".bmp"
)){
uploadCollectPng
(
multipartFile
,
dataType
);
}
else
if
(
originalFilename
.
contains
(
".txt"
)){
parseTxt
(
multipartFile
,
dataType
);
}
}
return
true
;
}
public
boolean
parseTxt
(
MultipartFile
smbFile
,
CollectDataType
request
)
{
try
{
List
<
SoilExperimentCollectData
>
dataList
=
CollectUtil
.
txt2String
(
smbFile
.
getInputStream
());
if
(
CollectionUtils
.
isNotEmpty
(
dataList
)){
List
<
SoilItem
>
saveSoilItemList
=
new
ArrayList
<>();
String
testMethod
=
null
;
for
(
SoilExperimentCollectData
collectData:
dataList
)
{
collectData
.
setExpId
(
request
.
getExpId
());
if
(
"试验方法"
.
equals
(
collectData
.
getName
())){
if
(
StringUtils
.
isNotBlank
(
testMethod
)){
continue
;
}
testMethod
=
collectData
.
getTestValue
();
continue
;
}
SoilItem
item
=
new
SoilItem
();
item
.
setName
(
collectData
.
getName
());
item
.
setTestValue
(
collectData
.
getTestValue
());
item
.
setExperimentId
(
request
.
getExpId
());
item
.
setUnit
(
collectData
.
getUnit
());
saveSoilItemList
.
add
(
item
);
}
if
(
CollectionUtils
.
isNotEmpty
(
saveSoilItemList
)){
soilItemService
.
saveBatch
(
saveSoilItemList
);
}
if
(
StringUtils
.
isNotBlank
(
testMethod
)){
SoilExperiment
experiment
=
new
SoilExperiment
();
experiment
.
setTestMethod
(
testMethod
);
experiment
.
setId
(
request
.
getExpId
());
super
.
updateById
(
experiment
);
}
return
soilExperimentCollectDataService
.
saveBatch
(
dataList
);
}
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
return
false
;
}
public
void
uploadCollectPng
(
MultipartFile
smbFile
,
CollectDataType
type
)
{
if
(
type
.
getExpId
()!=
null
){
SoilExperimentCollectFile
collectFile
=
new
SoilExperimentCollectFile
();
collectFile
.
setExpId
(
type
.
getExpId
());
InputStream
is
=
null
;
File
fileNew
=
null
;
try
{
is
=
smbFile
.
getInputStream
();
File
file
=
File
.
createTempFile
(
StringHandleUtils
.
getFileNameNoEx
(
smbFile
.
getOriginalFilename
()),
smbFile
.
getOriginalFilename
().
replace
(
StringHandleUtils
.
getFileNameNoEx
(
smbFile
.
getOriginalFilename
()),
""
));
FileOutputStream
fos
=
new
FileOutputStream
(
file
);
byte
[]
bytes
=
new
byte
[
1024
*
1024
];
int
index
;
while
((
index
=
is
.
read
(
bytes
))
!=
-
1
)
{
fos
.
write
(
bytes
,
0
,
index
);
fos
.
flush
();
}
String
name
=
smbFile
.
getOriginalFilename
();
if
(
name
.
contains
(
type
.
getExperiment
())){
SoilSample
sample
=
soilSampleService
.
getBySampleCode
(
type
.
getSampleCode
());
if
(
null
!=
sample
){
XSSFWorkbook
xssfWorkbook
=
exportService
.
getXSSFWorkbook
(
"AttachmentTemplateSZYS.xlsx"
);
Map
<
String
,
File
>
fileMap
=
new
HashMap
<>();
fileMap
.
put
(
"${picTest}"
,
file
);
int
count
=
soilAppendixService
.
countByEntrustId
(
sample
.
getEntrustId
())+
1
;
Map
<
String
,
String
>
replaceMap
=
new
HashMap
<>();
String
testEnglish
=
""
;
if
(
"三轴压缩"
.
equals
(
type
.
getExperiment
())||
type
.
getExperiment
().
contains
(
"三轴压缩"
)){
testEnglish
=
"FIGURE OF TRIAXIAL COMPRESSION TEST"
;
}
else
if
(
"直接剪切"
.
equals
(
type
.
getExperiment
())||
"直剪"
.
equals
(
type
.
getExperiment
())){
testEnglish
=
"FIGURE OF DIRECT SHEAR TEST"
;
}
else
if
(
"固结"
.
equals
(
type
.
getExperiment
())||
"固结试验"
.
equals
(
type
.
getExperiment
())){
testEnglish
=
"FIGURE OF CONSOLIDATION TEST"
;
}
else
{
testEnglish
=
"FIGURE OF TRIAXIAL COMPRESSION TEST"
;
}
replaceMap
.
put
(
"#{title}"
,
"附录"
+(
count
)+
" "
+
type
.
getExperiment
()+
"试验成果图\n"
+
"APPENDIX "
+
count
+
" "
+
testEnglish
);
try
{
HSSFWorkbookUtil
.
replaceModel
(
replaceMap
,
xssfWorkbook
);
HSSFWorkbookUtil
.
insertImage
(
xssfWorkbook
,
fileMap
,
true
);
}
catch
(
Exception
e
){
logger
.
error
(
"generateExcelReport错误"
+
e
.
getMessage
());
}
xssfWorkbook
.
setSheetName
(
0
,
"附录"
+
count
+
type
.
getExperiment
());
FileOutputStream
os
;
fileNew
=
File
.
createTempFile
(
type
.
getSampleCode
()+
type
.
getExperiment
(),
".xlsx"
);
os
=
new
FileOutputStream
(
fileNew
);
xssfWorkbook
.
write
(
os
);
os
.
flush
();
os
.
close
();
xssfWorkbook
.
close
();
OssFileResult
result
=
ossClient
.
upload
(
fileNew
);
SoilAppendix
appendix
=
new
SoilAppendix
();
appendix
.
setSampleId
(
sample
.
getId
());
appendix
.
setEntrustId
(
sample
.
getEntrustId
());
appendix
.
setUname
(
LoginHelper
.
getAccount
().
getUserName
());
appendix
.
setObjectKey
(
result
.
getObjectKey
());
appendix
.
setName
(
"附录"
+
count
+
" "
+
type
.
getExperiment
()+
"试验成果图"
);
appendix
.
setTitle
(
"附录"
+
count
);
appendix
.
setExpId
(
type
.
getExpId
());
appendix
.
setSampleCode
(
type
.
getSampleCode
());
appendix
.
setEntrustCode
(
type
.
getEntrustCode
());
soilAppendixService
.
save
(
appendix
);
}
}
is
.
close
();
fos
.
close
();
OssFileResult
result
=
ossClient
.
upload
(
file
);
collectFile
.
setObjectKey
(
result
.
getObjectKey
());
collectFile
.
setBucketName
(
result
.
getBucketName
());
collectFile
.
setVersionId
(
result
.
getVersionId
());
collectFile
.
setFileName
(
result
.
getName
());
soilExperimentCollectFileService
.
save
(
collectFile
);
FileUtils
.
deleteFiles
(
file
);
if
(
null
!=
fileNew
){
FileUtils
.
deleteFiles
(
fileNew
);
}
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
}
System
.
out
.
println
(
smbFile
.
getName
());
System
.
out
.
println
(
type
.
getEntrustCode
());
}
@Override
public
Page
<
SoilExperimentVO
>
pageBySampleIds
(
Page
<
SoilExperimentVO
>
page
,
Long
[]
sampleIds
,
SoilExperimentVO
vo
)
{
return
page
.
setRecords
(
initOriginalRecord
(
baseMapper
.
selectListBySampleIds
(
page
,
sampleIds
,
vo
)));
...
...
src/main/resources/mapper/soil/SoilExperimentMapper.xml
View file @
8d26df93
...
...
@@ -423,4 +423,21 @@
</select>
<select
id=
"selectByEntrustId"
resultType=
"com.patzn.cloud.service.soil.vo.SoilExperimentVO"
>
SELECT i.id,i.name,s.sample_code FROM soil_experiment i
JOIN soil_sample s ON i.sample_id = s.id
JOIN soil_entrust e ON s.entrust_id = e.id
WHERE i.deleted = 0
AND s.deleted = 0
AND e.deleted = 0
AND e.id = #{entrustId}
</select>
</mapper>
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