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
b2ee5275
Commit
b2ee5275
authored
Apr 19, 2021
by
wangweidong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
土工问题
parent
5e869911
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
229 additions
and
0 deletions
+229
-0
OriginalOperationFactory.java
...cloud/service/lims/original/OriginalOperationFactory.java
+79
-0
SheetMoreMuchOperation.java
...n/cloud/service/lims/original/SheetMoreMuchOperation.java
+0
-0
SingleLessOperation.java
...atzn/cloud/service/lims/original/SingleLessOperation.java
+150
-0
SoilExperimentServiceImpl.java
...ice/lims/soil/service/impl/SoilExperimentServiceImpl.java
+0
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/original/OriginalOperationFactory.java
0 → 100644
View file @
b2ee5275
package
com
.
patzn
.
cloud
.
service
.
lims
.
original
;
import
com.patzn.cloud.service.soil.entity.SoilEntrust
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalTemplate
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalTemplateConfig
;
import
com.patzn.cloud.service.soil.vo.SoilExperimentVO
;
import
com.patzn.cloud.service.soil.vo.SoilItemVO
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
public
class
OriginalOperationFactory
{
private
XSSFWorkbook
xssfWorkbook
;
private
InputStream
io
;
private
Map
<
String
,
String
>
mapReplace
;
private
List
<
SoilOriginalTemplateConfig
>
configList
;
private
SoilOriginalTemplate
template
;
private
List
<
SoilExperimentVO
>
voList
;
private
Map
<
Long
,
List
<
SoilItemVO
>>
sampleSoilItemVOMap
=
new
ConcurrentHashMap
<>();
private
SoilEntrust
entrust
;
public
OriginalOperationFactory
(
XSSFWorkbook
xssfWorkbook
,
InputStream
io
,
Map
<
String
,
String
>
mapReplace
,
List
<
SoilOriginalTemplateConfig
>
configList
,
SoilOriginalTemplate
template
,
List
<
SoilExperimentVO
>
voList
,
List
<
SoilItemVO
>
soilItemVOList
,
SoilEntrust
entrust
)
{
this
.
xssfWorkbook
=
xssfWorkbook
;
this
.
io
=
io
;
this
.
mapReplace
=
mapReplace
;
this
.
configList
=
configList
;
this
.
template
=
template
;
for
(
SoilExperimentVO
vo:
voList
)
{
if
(
vo
.
getName
().
contains
(
"重塑"
)){
vo
.
setMorphology
(
"重塑"
);
}
else
{
vo
.
setMorphology
(
"原状"
);
}
}
for
(
SoilItemVO
soilItemVO:
soilItemVOList
)
{
if
(
sampleSoilItemVOMap
.
containsKey
(
soilItemVO
.
getSampleId
())){
List
<
SoilItemVO
>
sampleItems
=
sampleSoilItemVOMap
.
get
(
soilItemVO
.
getSampleId
());
sampleItems
.
add
(
soilItemVO
);
sampleSoilItemVOMap
.
put
(
soilItemVO
.
getSampleId
(),
sampleItems
);
}
else
{
List
<
SoilItemVO
>
sampleItems
=
new
ArrayList
<>();
sampleItems
.
add
(
soilItemVO
);
sampleSoilItemVOMap
.
put
(
soilItemVO
.
getSampleId
(),
sampleItems
);
}
}
this
.
voList
=
voList
;
this
.
entrust
=
entrust
;
}
public
Operation
getOperation
(
SoilOriginalTemplate
template
,
Integer
templateSampleNum
,
List
<
SoilExperimentVO
>
voList
){
if
(
null
==
template
.
getMoreSheet
()
||
0
==
template
.
getMoreSheet
()){
//单模板
if
(
voList
.
size
()<
templateSampleNum
){
return
new
SingleLessOperation
(
xssfWorkbook
,
io
,
mapReplace
,
configList
,
template
,
voList
,
sampleSoilItemVOMap
);
}
else
{
return
new
SingleMoreOperation
(
xssfWorkbook
,
io
,
mapReplace
,
configList
,
template
,
voList
,
sampleSoilItemVOMap
);
}
}
else
{
//多sheet模板
if
(
null
==
templateSampleNum
||
1
==
templateSampleNum
){
return
new
SheetMoreSingleOperation
(
xssfWorkbook
,
io
,
mapReplace
,
configList
,
template
,
voList
,
sampleSoilItemVOMap
);
}
else
{
return
new
SheetMoreMuchOperation
(
xssfWorkbook
,
io
,
mapReplace
,
configList
,
template
,
voList
,
sampleSoilItemVOMap
,
entrust
);
}
}
}
}
src/main/java/com/patzn/cloud/service/lims/original/SheetMoreMuchOperation.java
0 → 100644
View file @
b2ee5275
This diff is collapsed.
Click to expand it.
src/main/java/com/patzn/cloud/service/lims/original/SingleLessOperation.java
0 → 100644
View file @
b2ee5275
package
com
.
patzn
.
cloud
.
service
.
lims
.
original
;
import
com.patzn.cloud.service.lims.common.HSSFWorkbookUtil
;
import
com.patzn.cloud.service.lims.common.StringHandleUtils
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalTemplate
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalTemplateConfig
;
import
com.patzn.cloud.service.soil.vo.SoilExperimentVO
;
import
com.patzn.cloud.service.soil.vo.SoilItemVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.xssf.usermodel.*
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.InputStream
;
import
java.util.List
;
import
java.util.Map
;
public
class
SingleLessOperation
implements
Operation
{
private
XSSFWorkbook
xssfWorkbook
;
private
InputStream
io
;
private
Map
<
String
,
String
>
mapReplace
;
private
List
<
SoilOriginalTemplateConfig
>
configList
;
private
SoilOriginalTemplate
template
;
private
List
<
SoilExperimentVO
>
voList
;
private
Map
<
Long
,
List
<
SoilItemVO
>>
sampleSoilItemVOMap
;
protected
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SingleLessOperation
.
class
);
public
SingleLessOperation
(
XSSFWorkbook
xssfWorkbook
,
InputStream
io
,
Map
<
String
,
String
>
mapReplace
,
List
<
SoilOriginalTemplateConfig
>
configList
,
SoilOriginalTemplate
template
,
List
<
SoilExperimentVO
>
voList
,
Map
<
Long
,
List
<
SoilItemVO
>>
sampleSoilItemVOMap
)
{
this
.
xssfWorkbook
=
xssfWorkbook
;
this
.
io
=
io
;
this
.
mapReplace
=
mapReplace
;
this
.
configList
=
configList
;
this
.
template
=
template
;
this
.
voList
=
voList
;
this
.
sampleSoilItemVOMap
=
sampleSoilItemVOMap
;
}
public
void
doProductOriginal
(){
HSSFWorkbookUtil
.
replaceModel
(
mapReplace
,
xssfWorkbook
,
0
);
XSSFSheet
sheetOne
=
xssfWorkbook
.
getSheetAt
(
0
);
sheetOne
.
setForceFormulaRecalculation
(
true
);
Integer
beginRow
=
template
.
getSampleBeginRow
();
if
(
null
==
beginRow
){
return
;
}
if
(
null
==
template
.
getSampleMergerNum
()){
return
;
}
if
(
null
==
template
.
getTemplateSampleNum
()){
return
;
}
int
templateSampleNum
=
template
.
getTemplateSampleNum
();
//样品数量小于模板里面的样品数量
int
sampleMergerNum
=
template
.
getSampleMergerNum
();
for
(
SoilExperimentVO
vo:
voList
)
{
List
<
SoilItemVO
>
soilItemVOS
=
sampleSoilItemVOMap
.
get
(
vo
.
getSampleId
());
XSSFRow
xssfRow
=
sheetOne
.
getRow
(
beginRow
);
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getColumnPlace
()){
continue
;
}
XSSFCell
cell
=
xssfRow
.
getCell
(
config
.
getColumnPlace
());
if
(
"sn"
.
equals
(
config
.
getDataAttribute
())){
continue
;
}
if
(
StringUtils
.
isNotBlank
(
config
.
getDataAttribute
())&&
config
.
getDataAttribute
().
contains
(
"for"
)){
String
name
=
config
.
getDataAttribute
().
replace
(
"for"
,
""
);
OriginalUtil
.
doForValue
(
sampleMergerNum
,
sheetOne
,
beginRow
,
config
,
name
,
soilItemVOS
);
continue
;
}
cell
.
setCellValue
(
HSSFWorkbookUtil
.
getFieldValue
(
config
.
getDataAttribute
(),
vo
,
soilItemVOS
));
}
beginRow
+=
sampleMergerNum
;
}
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getMergeRowNum
()){
config
.
setMergeRowNum
(
1
);
}
if
(
OriginalUtil
.
skipDoExcel
(
config
)){
continue
;
}
Integer
sampleBgMum
=
template
.
getSampleBeginRow
();
Integer
mergeRowNum
=
config
.
getMergeRowNum
();
int
formulaNum
=
template
.
getSampleBeginRow
()+
sampleMergerNum
*
templateSampleNum
-
1
;
for
(
int
i
=
sampleBgMum
;
i
<=
formulaNum
;
i
+=
mergeRowNum
)
{
XSSFRow
row
=
sheetOne
.
getRow
(
i
);
if
(
null
==
row
){
continue
;
}
XSSFCell
cell
=
row
.
getCell
(
config
.
getColumnPlace
());
if
(
null
==
cell
){
continue
;
}
String
formula
=
config
.
getFormula
();
formula
=
formula
.
replace
(
"#{sn}"
,(
i
+
1
)+
""
);
if
(
formula
.
contains
(
"#{sneven1}"
)){
if
(
StringHandleUtils
.
isEven
(
i
)){
formula
=
formula
.
replace
(
"#{sneven1}"
,(
i
+
1
)+
""
);
}
else
{
formula
=
formula
.
replace
(
"#{sneven1}"
,
i
+
""
);
}
}
if
(
formula
.
contains
(
"#{snodd1}"
)){
if
(!
StringHandleUtils
.
isEven
(
i
)){
formula
=
formula
.
replace
(
"#{snodd1}"
,(
i
+
1
)+
""
);
}
else
{
formula
=
formula
.
replace
(
"#{snodd1}"
,
i
+
""
);
}
}
if
(
formula
.
contains
(
"#{sn+1}"
)){
formula
=
formula
.
replace
(
"#{sn+1}"
,(
i
+
2
)+
""
);
}
if
(
formula
.
contains
(
"#{sn+2}"
)){
formula
=
formula
.
replace
(
"#{sn+2}"
,(
i
+
3
)+
""
);
}
if
(
formula
.
contains
(
"#{sn+3}"
)){
formula
=
formula
.
replace
(
"#{sn+3}"
,(
i
+
4
)+
""
);
}
if
(
formula
.
contains
(
"#{sn+4}"
)){
formula
=
formula
.
replace
(
"#{sn+4}"
,(
i
+
5
)+
""
);
}
if
(
formula
.
contains
(
"#{sn+5}"
)){
formula
=
formula
.
replace
(
"#{sn+5}"
,(
i
+
6
)+
""
);
}
if
(
formula
.
contains
(
"#{sn+6}"
)){
formula
=
formula
.
replace
(
"#{sn+6}"
,(
i
+
7
)+
""
);
}
if
(
formula
.
contains
(
"#{sn+7}"
)){
formula
=
formula
.
replace
(
"#{sn+7}"
,(
i
+
8
)+
""
);
}
cell
.
setCellFormula
(
formula
);
}
}
logger
.
error
(
"----------------------7"
);
}
}
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilExperimentServiceImpl.java
View file @
b2ee5275
This diff is collapsed.
Click to expand it.
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