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
a22a33fb
Commit
a22a33fb
authored
Dec 23, 2020
by
wangweidong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
土工平台修改
parent
3ad9f07f
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
1226 additions
and
198 deletions
+1226
-198
GdsFileHandle.java
...atzn/cloud/service/lims/collect/handle/GdsFileHandle.java
+76
-0
POIUtil.java
...ain/java/com/patzn/cloud/service/lims/common/POIUtil.java
+111
-0
StringHandleUtils.java
...om/patzn/cloud/service/lims/common/StringHandleUtils.java
+21
-0
StringStaticDataUtils.java
...atzn/cloud/service/lims/common/StringStaticDataUtils.java
+77
-0
ItemCollectEntity.java
...m/patzn/cloud/service/lims/handler/ItemCollectEntity.java
+11
-0
SoilDataGdsController.java
...d/service/lims/soil/controller/SoilDataGdsController.java
+86
-0
SoilDataGdsDetailController.java
...ice/lims/soil/controller/SoilDataGdsDetailController.java
+86
-0
SoilDataGdsDetailMapper.java
...oud/service/lims/soil/mapper/SoilDataGdsDetailMapper.java
+20
-0
SoilDataGdsMapper.java
...tzn/cloud/service/lims/soil/mapper/SoilDataGdsMapper.java
+16
-0
SoilItemMapper.java
.../patzn/cloud/service/lims/soil/mapper/SoilItemMapper.java
+2
-0
ISoilDataGdsDetailService.java
.../service/lims/soil/service/ISoilDataGdsDetailService.java
+22
-0
ISoilDataGdsService.java
.../cloud/service/lims/soil/service/ISoilDataGdsService.java
+20
-0
ISoilExperimentService.java
...oud/service/lims/soil/service/ISoilExperimentService.java
+2
-0
ISoilItemService.java
...tzn/cloud/service/lims/soil/service/ISoilItemService.java
+2
-0
SoilDataGdsDetailServiceImpl.java
.../lims/soil/service/impl/SoilDataGdsDetailServiceImpl.java
+64
-0
SoilDataGdsServiceImpl.java
...ervice/lims/soil/service/impl/SoilDataGdsServiceImpl.java
+35
-0
SoilExperimentRelEquipServiceImpl.java
.../soil/service/impl/SoilExperimentRelEquipServiceImpl.java
+2
-0
SoilExperimentServiceImpl.java
...ice/lims/soil/service/impl/SoilExperimentServiceImpl.java
+357
-183
SoilItemServiceImpl.java
...d/service/lims/soil/service/impl/SoilItemServiceImpl.java
+6
-0
SoilOriginalTemplateServiceImpl.java
...ms/soil/service/impl/SoilOriginalTemplateServiceImpl.java
+78
-14
SoilDataGdsDetailMapper.xml
src/main/resources/mapper/soil/SoilDataGdsDetailMapper.xml
+108
-0
SoilDataGdsMapper.xml
src/main/resources/mapper/soil/SoilDataGdsMapper.xml
+5
-0
SoilExperimentMapper.xml
src/main/resources/mapper/soil/SoilExperimentMapper.xml
+1
-1
SoilItemMapper.xml
src/main/resources/mapper/soil/SoilItemMapper.xml
+18
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/collect/handle/GdsFileHandle.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
collect
.
handle
;
import
com.patzn.cloud.service.lims.collect.core.CollectDataType
;
import
com.patzn.cloud.service.lims.collect.core.ICollectHandler
;
import
com.patzn.cloud.service.lims.common.StringHandleUtils
;
import
com.patzn.cloud.service.lims.soil.service.ISoilExperimentService
;
import
jcifs.smb.SmbFile
;
public
class
GdsFileHandle
implements
ICollectHandler
{
@Override
public
Boolean
process
(
CollectDataType
request
,
ISoilExperimentService
soilExperimentService
)
{
String
type
=
request
.
getType
();
String
collectionAddress
=
request
.
getCollectionAddress
();
String
acquisitionCommand
=
request
.
getAcquisitionCommand
();
String
entrustCode
=
request
.
getEntrustCode
();
String
sampleCode
=
request
.
getSampleCode
();
if
(!
"文件获取"
.
equals
(
type
)){
return
null
;
}
if
(!
"gds文件获取"
.
equals
(
acquisitionCommand
)){
return
null
;
}
SmbFile
[]
list
=
null
;
try
{
list
=
getShareFiles
(
collectionAddress
+
entrustCode
+
"/"
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
for
(
SmbFile
smbFile:
list
)
{
String
name
=
StringHandleUtils
.
getFileNameNoEx
(
smbFile
.
getName
());
if
(!
name
.
equals
(
sampleCode
)){
continue
;
}
if
(
smbFile
.
getName
().
contains
(
".gds"
)){
soilExperimentService
.
uploadCollectGds
(
smbFile
,
request
);
}
}
return
true
;
}
public
static
SmbFile
[]
getShareFiles
(
String
url
)
throws
Exception
{
SmbFile
file
=
new
SmbFile
(
url
);
if
(
file
.
exists
()){
SmbFile
[]
files
=
file
.
listFiles
();
return
files
;
}
return
null
;
}
public
static
void
main
(
String
[]
args
)
{
try
{
SmbFile
smbFile
=
new
SmbFile
(
"smb://administrator:www.163.com@192.168.0.115/土工试验数据/202010020/"
);
SmbFile
[]
smbFiles
=
smbFile
.
listFiles
();
for
(
SmbFile
file:
smbFiles
)
{
String
name
=
StringHandleUtils
.
getFileNameNoEx
(
file
.
getName
());
if
(!
name
.
equals
(
"YP202010426"
)){
continue
;
}
if
(
file
.
getName
().
contains
(
".png"
)){
}
else
if
(
file
.
getName
().
contains
(
".txt"
)){
// txt2String(file.getInputStream());
System
.
out
.
println
(
file
.
getName
());
}
}
System
.
out
.
println
(
smbFile
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
}
}
src/main/java/com/patzn/cloud/service/lims/common/POIUtil.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
common
;
import
org.apache.poi.ss.usermodel.CellType
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.usermodel.XSSFCell
;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
public
class
POIUtil
{
/**
* 复制行
* @param startRow 开始行
* @param endRow 结束行
* @param pPosition 目标行
* @param sheet 工作表对象
*/
public
static
void
copyRows
(
int
startRow
,
int
endRow
,
int
pPosition
,
XSSFSheet
sheet
){
int
pStartRow
=
startRow
;
int
pEndRow
=
endRow
;
int
targetRowFrom
;
int
targetRowTo
;
int
columnCount
;
CellRangeAddress
region
=
null
;
int
i
;
int
j
;
if
(
pStartRow
==
-
1
||
pEndRow
==
-
1
)
{
return
;
}
// 拷贝合并的单元格
for
(
i
=
0
;
i
<
sheet
.
getNumMergedRegions
();
i
++){
region
=
sheet
.
getMergedRegion
(
i
);
if
((
region
.
getFirstRow
()
>=
pStartRow
)
&&
(
region
.
getLastRow
()
<=
pEndRow
))
{
targetRowFrom
=
region
.
getFirstRow
()-
pStartRow
+
pPosition
;
targetRowTo
=
region
.
getLastRow
()-
pStartRow
+
pPosition
;
CellRangeAddress
newRegion
=
region
.
copy
();
newRegion
.
setFirstRow
(
targetRowFrom
);
newRegion
.
setFirstColumn
(
region
.
getFirstColumn
());
newRegion
.
setLastRow
(
targetRowTo
);
newRegion
.
setLastColumn
(
region
.
getLastColumn
());
sheet
.
addMergedRegion
(
newRegion
);
}
}
// 设置列宽
for
(
i
=
pStartRow
;
i
<=
pEndRow
;
i
++){
XSSFRow
sourceRow
=
sheet
.
getRow
(
i
);
columnCount
=
sourceRow
.
getLastCellNum
();
if
(
sourceRow
!=
null
){
XSSFRow
newRow
=
sheet
.
createRow
(
pPosition
-
pStartRow
+
i
);
newRow
.
setHeight
(
sourceRow
.
getHeight
());
for
(
j
=
0
;
j
<
columnCount
;
j
++){
XSSFCell
templateCell
=
sourceRow
.
getCell
(
j
);
if
(
templateCell
!=
null
){
XSSFCell
newCell
=
newRow
.
createCell
(
j
);
copyCell
(
templateCell
,
newCell
);
}
}
}
}
}
/**
* 复制单元格
* @param srcCell 原始单元格
* @param distCell 目标单元格
*/
public
static
void
copyCell
(
XSSFCell
srcCell
,
XSSFCell
distCell
){
distCell
.
setCellStyle
(
srcCell
.
getCellStyle
());
if
(
srcCell
.
getCellComment
()
!=
null
){
distCell
.
setCellComment
(
srcCell
.
getCellComment
());
}
CellType
srcCellType
=
srcCell
.
getCellType
();
distCell
.
setCellType
(
srcCellType
);
if
(
srcCellType
==
CellType
.
NUMERIC
){
distCell
.
setCellValue
(
srcCell
.
getNumericCellValue
());
}
else
if
(
srcCellType
==
CellType
.
STRING
){
distCell
.
setCellValue
(
srcCell
.
getRichStringCellValue
());
}
else
if
(
srcCellType
==
CellType
.
BLANK
){
// nothing21
}
else
if
(
srcCellType
==
CellType
.
BOOLEAN
){
distCell
.
setCellValue
(
srcCell
.
getBooleanCellValue
());
}
else
if
(
srcCellType
==
CellType
.
ERROR
){
distCell
.
setCellErrorValue
(
srcCell
.
getErrorCellValue
());
}
else
if
(
srcCellType
==
CellType
.
FORMULA
){
distCell
.
setCellFormula
(
srcCell
.
getCellFormula
());
}
else
{
// nothing29
}
}
/**
* 表格中指定位置插入行
* @param sheet 工作表对象
* @param rowIndex 指定的行数
* @return 当前行对象
*/
public
static
XSSFRow
insertRow
(
XSSFSheet
sheet
,
int
rowIndex
)
{
XSSFRow
row
=
null
;
if
(
sheet
.
getRow
(
rowIndex
)
!=
null
)
{
int
lastRowNo
=
sheet
.
getLastRowNum
();
sheet
.
shiftRows
(
rowIndex
,
lastRowNo
,
1
);
}
row
=
sheet
.
createRow
(
rowIndex
);
return
row
;
}
}
\ No newline at end of file
src/main/java/com/patzn/cloud/service/lims/common/StringHandleUtils.java
View file @
a22a33fb
...
@@ -67,6 +67,15 @@ public class StringHandleUtils {
...
@@ -67,6 +67,15 @@ public class StringHandleUtils {
}
}
public
static
boolean
isEven
(
int
a
){
//是偶数
if
((
a
&
1
)
!=
1
){
return
true
;
}
return
false
;
}
public
static
boolean
is_alpha
(
String
str
)
{
public
static
boolean
is_alpha
(
String
str
)
{
if
(
str
==
null
)
return
false
;
if
(
str
==
null
)
return
false
;
String
regex
=
"[\u4e00-\u9fa5]"
;
//汉字的Unicode取值范围
String
regex
=
"[\u4e00-\u9fa5]"
;
//汉字的Unicode取值范围
...
@@ -338,6 +347,18 @@ public class StringHandleUtils {
...
@@ -338,6 +347,18 @@ public class StringHandleUtils {
}
}
public
static
void
setFieldValueByFieldName
(
String
fieldName
,
Object
o
,
Object
value
)
{
try
{
Field
objField
=
o
.
getClass
().
getDeclaredField
(
fieldName
);
objField
.
setAccessible
(
true
);
objField
.
set
(
o
,
value
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
static
String
getFieldIfNummReturnBlankValueByFieldName
(
String
fieldName
,
Object
o
)
{
public
static
String
getFieldIfNummReturnBlankValueByFieldName
(
String
fieldName
,
Object
o
)
{
try
{
try
{
String
firstLetter
=
fieldName
.
substring
(
0
,
1
).
toUpperCase
();
String
firstLetter
=
fieldName
.
substring
(
0
,
1
).
toUpperCase
();
...
...
src/main/java/com/patzn/cloud/service/lims/common/StringStaticDataUtils.java
View file @
a22a33fb
...
@@ -251,4 +251,81 @@ public final class StringStaticDataUtils {
...
@@ -251,4 +251,81 @@ public final class StringStaticDataUtils {
}
}
public
static
final
Map
<
String
,
String
>
mapGdsColumnCheck
=
new
LinkedHashMap
<>();
static
{
mapGdsColumnCheck
.
put
(
"Stage Number"
,
"stageNumber"
);
mapGdsColumnCheck
.
put
(
"Time since start of test (s)"
,
"timeSinceStartOfTest"
);
mapGdsColumnCheck
.
put
(
"Time since start of stage (s)"
,
"timeSinceStartOfStage"
);
mapGdsColumnCheck
.
put
(
"Axial Displacement (mm)"
,
"axialDisplacement"
);
mapGdsColumnCheck
.
put
(
"Axial Load (kN)"
,
"axialLoad"
);
mapGdsColumnCheck
.
put
(
"Horizontal Displacement (mm)"
,
"horizontalDisplacement"
);
mapGdsColumnCheck
.
put
(
"Horizontal Load (kN)"
,
"horizontalLoad"
);
mapGdsColumnCheck
.
put
(
"Pore Water Pressure (kPa)"
,
"poreWaterPressure"
);
mapGdsColumnCheck
.
put
(
"Back Pressure (kPa)"
,
"backPressure"
);
mapGdsColumnCheck
.
put
(
"Back Volume (mm3)"
,
"backVolume"
);
mapGdsColumnCheck
.
put
(
"Undefined Transducer 1"
,
"undefinedTransducerOne"
);
mapGdsColumnCheck
.
put
(
"Undefined Transducer 2"
,
"undefinedTransducerTwo"
);
mapGdsColumnCheck
.
put
(
"Ring Shear Torque (Nm)"
,
"ringShearTorqueNm"
);
mapGdsColumnCheck
.
put
(
"Ring Shear Angle (degs)"
,
"ringShearTorqueDegs"
);
mapGdsColumnCheck
.
put
(
"Lower Chamber Pr (kPa)"
,
"lowerChamberPr"
);
mapGdsColumnCheck
.
put
(
"Lower Chamber Vol (mm3)"
,
"lowerChamberVol"
);
mapGdsColumnCheck
.
put
(
"Axial Displacement 2 (mm)"
,
"axialDisplacementTwo"
);
mapGdsColumnCheck
.
put
(
"Horizontal Displacement 2 (mm)"
,
"horizontalDisplacementTwo"
);
mapGdsColumnCheck
.
put
(
"Ring Shear Load 1 (kN)"
,
"ringShearLoadOne"
);
mapGdsColumnCheck
.
put
(
"Ring Shear Load 2 (kN)"
,
"ringShearLoadTwo"
);
mapGdsColumnCheck
.
put
(
"Axial Load 2 (kN)"
,
"axialLoadTwo"
);
mapGdsColumnCheck
.
put
(
"Horizontal Load 2 (kN)"
,
"horizontalLoadTwo"
);
mapGdsColumnCheck
.
put
(
"Horizontal Load 3 (kN)"
,
"horizontalLoadThree"
);
mapGdsColumnCheck
.
put
(
"Axial Stroke (mm)"
,
"axialStroke"
);
mapGdsColumnCheck
.
put
(
"Horizontal Stroke (mm)"
,
"horizontalStroke"
);
mapGdsColumnCheck
.
put
(
"Pore Air Pressure (kPa)"
,
"poreAirPressure"
);
mapGdsColumnCheck
.
put
(
"Pore Air Pressure 2 (kPa)"
,
"poreAirPressureTwo"
);
mapGdsColumnCheck
.
put
(
"Atmospheric Pressure (kPa)"
,
"atmosphericPressure"
);
mapGdsColumnCheck
.
put
(
"Back to Air differential (kPa)"
,
"backToAirDifferential"
);
mapGdsColumnCheck
.
put
(
"Cell Pressure (kPa)"
,
"cellPressure"
);
mapGdsColumnCheck
.
put
(
"Cell Volume (mm3)"
,
"cellVolume"
);
mapGdsColumnCheck
.
put
(
"Pore Air Volume (mm3)"
,
"poreAirVolume"
);
mapGdsColumnCheck
.
put
(
"Axial Strain (%)"
,
"axialStrain"
);
mapGdsColumnCheck
.
put
(
"Normal Stress (kPa)"
,
"normalStress"
);
mapGdsColumnCheck
.
put
(
"Horizontal Strain (%) or Horizontal Ring Displacement for Ring Shear Machine (mm)"
,
"hsohrdfrsm"
);
mapGdsColumnCheck
.
put
(
"Horizontal Stress (kPa) or Shear Stress for Ring Shear Machine (kPa)"
,
"hsossfrsm"
);
mapGdsColumnCheck
.
put
(
"Horizontal Eff Stress (kPa)"
,
"horizontalEffStress"
);
mapGdsColumnCheck
.
put
(
"Effective Area (mm2)"
,
"effectiveArea"
);
mapGdsColumnCheck
.
put
(
"Normal Effective Stress (kPa)"
,
"normalEffectiveStress"
);
mapGdsColumnCheck
.
put
(
"Average Ring Shear Load (kN)"
,
"averageRingShearLoad"
);
}
public
static
final
Map
<
String
,
String
>
mapGdsMain
=
new
LinkedHashMap
<>();
static
{
mapGdsMain
.
put
(
"Initial Height (mm)"
,
"initialHeight"
);
mapGdsMain
.
put
(
"Initial Diameter (mm)"
,
"initialDiameter"
);
mapGdsMain
.
put
(
"Specific Gravity (kN/m3):"
,
"specificGravityKn"
);
mapGdsMain
.
put
(
"Job reference:"
,
"jobReference"
);
mapGdsMain
.
put
(
"Borehole:"
,
"borehole"
);
mapGdsMain
.
put
(
"Sample Name:"
,
"sampleName"
);
mapGdsMain
.
put
(
"Depth:"
,
"depth"
);
mapGdsMain
.
put
(
"Sample Date (dd/mm/yyyy):"
,
"sampleDate"
);
mapGdsMain
.
put
(
"Description of Sample:"
,
"descriptionOfSample"
);
mapGdsMain
.
put
(
"Initial mass (g):"
,
"initialMass"
);
mapGdsMain
.
put
(
"Initial dry mass (g):"
,
"initialDryMass"
);
mapGdsMain
.
put
(
"Specific Gravity (ass/meas):"
,
"specificGravityAss"
);
mapGdsMain
.
put
(
"Test Clause:"
,
"testClause"
);
mapGdsMain
.
put
(
"Date Test Started:"
,
"dateTestStarted"
);
mapGdsMain
.
put
(
"Date Test Finished:"
,
"dateTestFinished"
);
mapGdsMain
.
put
(
"Specimen Type (dis/undis):"
,
"specimenType"
);
mapGdsMain
.
put
(
"Final Mass:"
,
"finalMass"
);
mapGdsMain
.
put
(
"Final Dry Mass:"
,
"finalDryMass"
);
mapGdsMain
.
put
(
"Machine no.:"
,
"machineNo"
);
mapGdsMain
.
put
(
"Cell No.:"
,
"cellNo"
);
mapGdsMain
.
put
(
"Job Location:"
,
"jobLocation"
);
mapGdsMain
.
put
(
"Start of Repeated Data"
,
"startOfRepeatedData"
);
}
}
}
src/main/java/com/patzn/cloud/service/lims/handler/ItemCollectEntity.java
View file @
a22a33fb
...
@@ -8,6 +8,9 @@ public class ItemCollectEntity {
...
@@ -8,6 +8,9 @@ public class ItemCollectEntity {
private
Integer
columnPlace
;
private
Integer
columnPlace
;
private
Integer
itemMegerRow
;
public
String
getItemName
()
{
public
String
getItemName
()
{
return
itemName
;
return
itemName
;
}
}
...
@@ -31,4 +34,12 @@ public class ItemCollectEntity {
...
@@ -31,4 +34,12 @@ public class ItemCollectEntity {
public
void
setUnit
(
String
unit
)
{
public
void
setUnit
(
String
unit
)
{
this
.
unit
=
unit
;
this
.
unit
=
unit
;
}
}
public
Integer
getItemMegerRow
()
{
return
itemMegerRow
;
}
public
void
setItemMegerRow
(
Integer
itemMegerRow
)
{
this
.
itemMegerRow
=
itemMegerRow
;
}
}
}
src/main/java/com/patzn/cloud/service/lims/soil/controller/SoilDataGdsController.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
controller
;
import
com.patzn.cloud.service.soil.entity.SoilDataGds
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.commons.api.RestConstants
;
import
com.patzn.cloud.commons.api.RestResult
;
import
com.patzn.cloud.commons.controller.ServiceController
;
import
com.patzn.cloud.service.lims.soil.service.ISoilDataGdsService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.List
;
/**
* 静单剪数据 前端控制器
*
* @author wwd
* @since 2020-12-22
*/
@Api
(
tags
=
"静单剪数据"
)
@RestController
@RequestMapping
(
"/v1/data_gds"
)
public
class
SoilDataGdsController
extends
ServiceController
{
@Autowired
private
ISoilDataGdsService
soilDataGdsService
;
@ApiOperation
(
"分页列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_PAGE
,
value
=
"请求数据的页码"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_ROWS
,
value
=
"每页条数"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_SIDX
,
value
=
"排序字段"
,
paramType
=
"query"
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_SORD
,
value
=
"排序方式"
,
paramType
=
"query"
,
dataTypeClass
=
String
.
class
),
})
@PostMapping
(
"/page"
)
public
RestResult
<
Page
<
SoilDataGds
>>
getPage
(
SoilDataGds
soilDataGds
)
{
return
success
(
soilDataGdsService
.
page
(
getPage
(),
soilDataGds
));
}
@ApiOperation
(
"查询 id 信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"主键"
,
required
=
true
,
paramType
=
"path"
,
dataTypeClass
=
Long
.
class
),
})
@GetMapping
(
"/{id}"
)
public
RestResult
<
SoilDataGds
>
get
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
soilDataGdsService
.
getById
(
id
));
}
@ApiOperation
(
"根据 id 修改信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"主键"
,
required
=
true
,
paramType
=
"path"
,
dataTypeClass
=
Long
.
class
),
})
@PutMapping
(
"/{id}"
)
public
RestResult
<
Boolean
>
edit
(
@PathVariable
(
"id"
)
Long
id
,
SoilDataGds
soilDataGds
)
{
soilDataGds
.
setId
(
id
);
return
success
(
soilDataGdsService
.
updateById
(
soilDataGds
));
}
@ApiOperation
(
"添加"
)
@PostMapping
(
"/"
)
public
RestResult
<
Boolean
>
add
(
SoilDataGds
soilDataGds
)
{
return
success
(
soilDataGdsService
.
save
(
soilDataGds
));
}
@ApiOperation
(
"根据 ids 删除"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"主键列表"
,
required
=
true
,
paramType
=
"query"
,
allowMultiple
=
true
,
dataTypeClass
=
Long
.
class
),
})
@DeleteMapping
(
"/"
)
public
RestResult
<
Boolean
>
delete
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
return
success
(
soilDataGdsService
.
removeByIds
(
ids
));
}
}
src/main/java/com/patzn/cloud/service/lims/soil/controller/SoilDataGdsDetailController.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
controller
;
import
com.patzn.cloud.service.soil.entity.SoilDataGdsDetail
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.commons.api.RestConstants
;
import
com.patzn.cloud.commons.api.RestResult
;
import
com.patzn.cloud.commons.controller.ServiceController
;
import
com.patzn.cloud.service.lims.soil.service.ISoilDataGdsDetailService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.List
;
/**
* 静单剪试验数据 前端控制器
*
* @author wwd
* @since 2020-12-22
*/
@Api
(
tags
=
"静单剪试验数据"
)
@RestController
@RequestMapping
(
"/v1/data_gds_detail"
)
public
class
SoilDataGdsDetailController
extends
ServiceController
{
@Autowired
private
ISoilDataGdsDetailService
soilDataGdsDetailService
;
@ApiOperation
(
"分页列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_PAGE
,
value
=
"请求数据的页码"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_ROWS
,
value
=
"每页条数"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_SIDX
,
value
=
"排序字段"
,
paramType
=
"query"
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_SORD
,
value
=
"排序方式"
,
paramType
=
"query"
,
dataTypeClass
=
String
.
class
),
})
@PostMapping
(
"/page"
)
public
RestResult
<
Page
<
SoilDataGdsDetail
>>
getPage
(
SoilDataGdsDetail
soilDataGdsDetail
)
{
return
success
(
soilDataGdsDetailService
.
page
(
getPage
(),
soilDataGdsDetail
));
}
@ApiOperation
(
"查询 id 信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"主键"
,
required
=
true
,
paramType
=
"path"
,
dataTypeClass
=
Long
.
class
),
})
@GetMapping
(
"/{id}"
)
public
RestResult
<
SoilDataGdsDetail
>
get
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
soilDataGdsDetailService
.
getById
(
id
));
}
@ApiOperation
(
"根据 id 修改信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"主键"
,
required
=
true
,
paramType
=
"path"
,
dataTypeClass
=
Long
.
class
),
})
@PutMapping
(
"/{id}"
)
public
RestResult
<
Boolean
>
edit
(
@PathVariable
(
"id"
)
Long
id
,
SoilDataGdsDetail
soilDataGdsDetail
)
{
soilDataGdsDetail
.
setId
(
id
);
return
success
(
soilDataGdsDetailService
.
updateById
(
soilDataGdsDetail
));
}
@ApiOperation
(
"添加"
)
@PostMapping
(
"/"
)
public
RestResult
<
Boolean
>
add
(
SoilDataGdsDetail
soilDataGdsDetail
)
{
return
success
(
soilDataGdsDetailService
.
save
(
soilDataGdsDetail
));
}
@ApiOperation
(
"根据 ids 删除"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"主键列表"
,
required
=
true
,
paramType
=
"query"
,
allowMultiple
=
true
,
dataTypeClass
=
Long
.
class
),
})
@DeleteMapping
(
"/"
)
public
RestResult
<
Boolean
>
delete
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
return
success
(
soilDataGdsDetailService
.
removeByIds
(
ids
));
}
}
src/main/java/com/patzn/cloud/service/lims/soil/mapper/SoilDataGdsDetailMapper.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
mapper
;
import
com.patzn.cloud.commons.mapper.BatchMapper
;
import
com.patzn.cloud.service.soil.entity.SoilDataGdsDetail
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2020-12-22
*/
public
interface
SoilDataGdsDetailMapper
extends
BatchMapper
<
SoilDataGdsDetail
>
{
int
saveBatchCustom
(
@Param
(
"list"
)
List
<
SoilDataGdsDetail
>
list
);
}
src/main/java/com/patzn/cloud/service/lims/soil/mapper/SoilDataGdsMapper.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
mapper
;
import
com.patzn.cloud.commons.mapper.BatchMapper
;
import
com.patzn.cloud.service.soil.entity.SoilDataGds
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2020-12-22
*/
public
interface
SoilDataGdsMapper
extends
BatchMapper
<
SoilDataGds
>
{
}
src/main/java/com/patzn/cloud/service/lims/soil/mapper/SoilItemMapper.java
View file @
a22a33fb
...
@@ -18,4 +18,6 @@ import java.util.List;
...
@@ -18,4 +18,6 @@ import java.util.List;
public
interface
SoilItemMapper
extends
BaseMapper
<
SoilItem
>
{
public
interface
SoilItemMapper
extends
BaseMapper
<
SoilItem
>
{
List
<
SoilItemVO
>
listVOByExpIds
(
@Param
(
"expIds"
)
List
<
Long
>
expIdsList
);
List
<
SoilItemVO
>
listVOByExpIds
(
@Param
(
"expIds"
)
List
<
Long
>
expIdsList
);
List
<
SoilItemVO
>
listVOByExpSampleIds
(
@Param
(
"sampleIds"
)
List
<
Long
>
sampleIds
);
}
}
src/main/java/com/patzn/cloud/service/lims/soil/service/ISoilDataGdsDetailService.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
service
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.commons.service.IBaseService
;
import
com.patzn.cloud.service.soil.entity.SoilDataGdsDetail
;
import
java.util.List
;
/**
* 服务类
*
* @author wwd
* @since 2020-12-22
*/
public
interface
ISoilDataGdsDetailService
extends
IBaseService
<
SoilDataGdsDetail
>
{
Page
<
SoilDataGdsDetail
>
page
(
Page
<
SoilDataGdsDetail
>
page
,
SoilDataGdsDetail
soilDataGdsDetail
);
boolean
removeByIds
(
List
<
Long
>
ids
);
boolean
saveBatchCustom
(
List
<
SoilDataGdsDetail
>
saveDetailList
);
}
src/main/java/com/patzn/cloud/service/lims/soil/service/ISoilDataGdsService.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
service
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.commons.service.IBaseService
;
import
com.patzn.cloud.service.soil.entity.SoilDataGds
;
import
java.util.List
;
/**
* 服务类
*
* @author wwd
* @since 2020-12-22
*/
public
interface
ISoilDataGdsService
extends
IBaseService
<
SoilDataGds
>
{
Page
<
SoilDataGds
>
page
(
Page
<
SoilDataGds
>
page
,
SoilDataGds
soilDataGds
);
boolean
removeByIds
(
List
<
Long
>
ids
);
}
src/main/java/com/patzn/cloud/service/lims/soil/service/ISoilExperimentService.java
View file @
a22a33fb
...
@@ -75,4 +75,6 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
...
@@ -75,4 +75,6 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
SoilOriginalRecord
saveExcelOriginalRecord
(
Long
[]
ids
,
Long
templateId
,
Account
account
);
SoilOriginalRecord
saveExcelOriginalRecord
(
Long
[]
ids
,
Long
templateId
,
Account
account
);
SoilExpReport
saveExcelExpReport
(
String
expName
,
Long
entrustId
,
Long
[]
ids
,
Long
templateId
,
Account
account
);
SoilExpReport
saveExcelExpReport
(
String
expName
,
Long
entrustId
,
Long
[]
ids
,
Long
templateId
,
Account
account
);
void
uploadCollectGds
(
SmbFile
smbFile
,
CollectDataType
request
);
}
}
src/main/java/com/patzn/cloud/service/lims/soil/service/ISoilItemService.java
View file @
a22a33fb
...
@@ -24,4 +24,6 @@ public interface ISoilItemService extends IBaseService<SoilItem> {
...
@@ -24,4 +24,6 @@ public interface ISoilItemService extends IBaseService<SoilItem> {
List
<
SoilItem
>
list
(
SoilItem
soilItem
);
List
<
SoilItem
>
list
(
SoilItem
soilItem
);
List
<
SoilItemVO
>
listVOByExpIds
(
List
<
Long
>
expIdsList
);
List
<
SoilItemVO
>
listVOByExpIds
(
List
<
Long
>
expIdsList
);
List
<
SoilItemVO
>
listVOByExpSampleIds
(
List
<
Long
>
sampleIdList
);
}
}
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilDataGdsDetailServiceImpl.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
service
.
impl
;
import
com.baomidou.mybatisplus.mapper.Condition
;
import
com.patzn.cloud.service.lims.soil.mapper.SoilDataGdsDetailMapper
;
import
com.patzn.cloud.service.lims.soil.service.ISoilDataGdsDetailService
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.service.soil.entity.SoilDataGdsDetail
;
import
lombok.ToString
;
import
org.apache.commons.collections4.ListUtils
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
java.lang.reflect.Field
;
import
java.text.MessageFormat
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
* 服务实现类
*
* @author wwd
* @since 2020-12-22
*/
@Service
public
class
SoilDataGdsDetailServiceImpl
extends
BaseServiceImpl
<
SoilDataGdsDetailMapper
,
SoilDataGdsDetail
>
implements
ISoilDataGdsDetailService
{
private
static
Pattern
humpPattern
=
Pattern
.
compile
(
"[A-Z]"
);
@Override
public
Page
<
SoilDataGdsDetail
>
page
(
Page
<
SoilDataGdsDetail
>
page
,
SoilDataGdsDetail
soilDataGdsDetail
)
{
Wrapper
wrapper
=
new
EntityWrapper
<>(
soilDataGdsDetail
);
return
this
.
page
(
page
,
wrapper
);
}
@Override
public
boolean
removeByIds
(
List
<
Long
>
ids
)
{
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
@Override
public
boolean
saveBatchCustom
(
List
<
SoilDataGdsDetail
>
saveDetailList
)
{
long
startTime
=
System
.
currentTimeMillis
();
int
size
=
0
;
List
<
List
<
SoilDataGdsDetail
>>
lists
=
ListUtils
.
partition
(
saveDetailList
,
600
);
for
(
List
<
SoilDataGdsDetail
>
list:
lists
)
{
size
+=
baseMapper
.
saveBatchCustom
(
list
);
}
long
endTime
=
System
.
currentTimeMillis
();
System
.
out
.
println
(
"总计耗时:"
+(
endTime
-
startTime
));
return
false
;
}
}
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilDataGdsServiceImpl.java
0 → 100644
View file @
a22a33fb
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
service
.
impl
;
import
com.baomidou.mybatisplus.mapper.Condition
;
import
com.patzn.cloud.service.lims.soil.mapper.SoilDataGdsMapper
;
import
com.patzn.cloud.service.lims.soil.service.ISoilDataGdsService
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.service.soil.entity.SoilDataGds
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
java.util.List
;
/**
* 服务实现类
*
* @author wwd
* @since 2020-12-22
*/
@Service
public
class
SoilDataGdsServiceImpl
extends
BaseServiceImpl
<
SoilDataGdsMapper
,
SoilDataGds
>
implements
ISoilDataGdsService
{
@Override
public
Page
<
SoilDataGds
>
page
(
Page
<
SoilDataGds
>
page
,
SoilDataGds
soilDataGds
)
{
Wrapper
wrapper
=
new
EntityWrapper
<>(
soilDataGds
);
return
this
.
page
(
page
,
wrapper
);
}
@Override
public
boolean
removeByIds
(
List
<
Long
>
ids
)
{
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
}
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilExperimentRelEquipServiceImpl.java
View file @
a22a33fb
...
@@ -6,6 +6,7 @@ import com.patzn.cloud.commons.api.RestAssert;
...
@@ -6,6 +6,7 @@ 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.service.lims.collect.chain.CollectHandlerChain
;
import
com.patzn.cloud.service.lims.collect.chain.CollectHandlerChain
;
import
com.patzn.cloud.service.lims.collect.core.CollectDataType
;
import
com.patzn.cloud.service.lims.collect.core.CollectDataType
;
import
com.patzn.cloud.service.lims.collect.handle.GdsFileHandle
;
import
com.patzn.cloud.service.lims.collect.handle.PngReportHandle
;
import
com.patzn.cloud.service.lims.collect.handle.PngReportHandle
;
import
com.patzn.cloud.service.lims.soil.mapper.SoilExperimentRelEquipMapper
;
import
com.patzn.cloud.service.lims.soil.mapper.SoilExperimentRelEquipMapper
;
import
com.patzn.cloud.service.lims.soil.service.ISoilExperimentRelEquipService
;
import
com.patzn.cloud.service.lims.soil.service.ISoilExperimentRelEquipService
;
...
@@ -105,6 +106,7 @@ public class SoilExperimentRelEquipServiceImpl extends BaseServiceImpl<SoilExper
...
@@ -105,6 +106,7 @@ public class SoilExperimentRelEquipServiceImpl extends BaseServiceImpl<SoilExper
}
}
CollectHandlerChain
chain
=
new
CollectHandlerChain
();
CollectHandlerChain
chain
=
new
CollectHandlerChain
();
chain
.
addHandler
(
new
PngReportHandle
());
chain
.
addHandler
(
new
PngReportHandle
());
chain
.
addHandler
(
new
GdsFileHandle
());
for
(
SoilExperimentRelEquip
equip:
saveRelEquipList
)
{
for
(
SoilExperimentRelEquip
equip:
saveRelEquipList
)
{
SoilExperimentVO
experimentVO
=
expMap
.
get
(
equip
.
getExpId
());
SoilExperimentVO
experimentVO
=
expMap
.
get
(
equip
.
getExpId
());
...
...
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilExperimentServiceImpl.java
View file @
a22a33fb
...
@@ -2,10 +2,7 @@ package com.patzn.cloud.service.lims.soil.service.impl;
...
@@ -2,10 +2,7 @@ package com.patzn.cloud.service.lims.soil.service.impl;
import
java.awt.image.BufferedImage
;
import
java.awt.image.BufferedImage
;
import
java.awt.image.ColorModel
;
import
java.awt.image.ColorModel
;
import
java.io.File
;
import
java.io.*
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -16,6 +13,7 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
...
@@ -16,6 +13,7 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
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.toolkit.FileUtils
;
import
com.patzn.cloud.commons.toolkit.FileUtils
;
import
com.patzn.cloud.oss.starter.OssClient
;
import
com.patzn.cloud.oss.starter.OssClient
;
import
com.patzn.cloud.oss.starter.OssFileResult
;
import
com.patzn.cloud.oss.starter.OssFileResult
;
...
@@ -23,6 +21,7 @@ import com.patzn.cloud.service.lims.collect.core.CollectDataType;
...
@@ -23,6 +21,7 @@ import com.patzn.cloud.service.lims.collect.core.CollectDataType;
import
com.patzn.cloud.service.lims.common.CollectUtil
;
import
com.patzn.cloud.service.lims.common.CollectUtil
;
import
com.patzn.cloud.service.lims.common.PoiUtil2007
;
import
com.patzn.cloud.service.lims.common.PoiUtil2007
;
import
com.patzn.cloud.service.lims.common.StringHandleUtils
;
import
com.patzn.cloud.service.lims.common.StringHandleUtils
;
import
com.patzn.cloud.service.lims.common.StringStaticDataUtils
;
import
com.patzn.cloud.service.lims.soil.service.*
;
import
com.patzn.cloud.service.lims.soil.service.*
;
import
com.patzn.cloud.service.meter.entity.MeterEntrust
;
import
com.patzn.cloud.service.meter.entity.MeterEntrust
;
import
com.patzn.cloud.service.soil.entity.*
;
import
com.patzn.cloud.service.soil.entity.*
;
...
@@ -34,6 +33,7 @@ import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum;
...
@@ -34,6 +33,7 @@ import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum;
import
com.patzn.cloud.service.soil.statistics.SoilEntrustItemNumVO
;
import
com.patzn.cloud.service.soil.statistics.SoilEntrustItemNumVO
;
import
com.patzn.cloud.service.soil.vo.SoilEntrustVO
;
import
com.patzn.cloud.service.soil.vo.SoilEntrustVO
;
import
com.patzn.cloud.service.soil.vo.SoilExperimentVO
;
import
com.patzn.cloud.service.soil.vo.SoilExperimentVO
;
import
com.patzn.cloud.service.soil.vo.SoilItemVO
;
import
jcifs.smb.SmbFile
;
import
jcifs.smb.SmbFile
;
import
net.coobird.thumbnailator.Thumbnails
;
import
net.coobird.thumbnailator.Thumbnails
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -126,6 +126,14 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
...
@@ -126,6 +126,14 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Autowired
@Autowired
private
ISoilExpReportService
soilExpReportService
;
private
ISoilExpReportService
soilExpReportService
;
@Autowired
private
ISoilDataGdsDetailService
soilDataGdsDetailService
;
@Autowired
private
ISoilDataGdsService
soilDataGdsService
;
@Override
@Override
public
Page
<
SoilExperiment
>
page
(
Page
<
SoilExperiment
>
page
,
SoilExperiment
soilExperiment
)
{
public
Page
<
SoilExperiment
>
page
(
Page
<
SoilExperiment
>
page
,
SoilExperiment
soilExperiment
)
{
Wrapper
wrapper
=
new
EntityWrapper
<>(
soilExperiment
);
Wrapper
wrapper
=
new
EntityWrapper
<>(
soilExperiment
);
...
@@ -221,12 +229,38 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
...
@@ -221,12 +229,38 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
logger
.
error
(
"saveExcelOriginalRecord模板存在"
);
logger
.
error
(
"saveExcelOriginalRecord模板存在"
);
List
<
SoilExperimentVO
>
voList
=
soilExperimentService
.
listVOByIds
(
ids
);
List
<
SoilExperimentVO
>
voList
=
soilExperimentService
.
listVOByIds
(
ids
);
if
(
CollectionUtils
.
isEmpty
(
voList
)){
if
(
CollectionUtils
.
isEmpty
(
voList
)){
logger
.
error
(
"----------------------1"
);
logger
.
error
(
"----------------------1"
);
return
null
;
return
null
;
}
}
logger
.
error
(
"saveExcelOriginalRecord项目查询存在"
);
List
<
Long
>
sampleIdList
=
voList
.
stream
().
map
(
s
->{
return
s
.
getSampleId
();
}).
collect
(
Collectors
.
toList
());
List
<
SoilItemVO
>
soilItemVOList
=
soilItemService
.
listVOByExpSampleIds
(
sampleIdList
);
Map
<
Long
,
List
<
SoilItemVO
>>
sampleSoilItemVOMap
=
new
HashMap
<>();
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
);
}
}
SoilEntrust
entrust
=
soilEntrustService
.
getById
(
voList
.
get
(
0
).
getEntrustId
());
SoilEntrust
entrust
=
soilEntrustService
.
getById
(
voList
.
get
(
0
).
getEntrustId
());
logger
.
error
(
"saveExcelOriginalRecord entrust"
);
logger
.
error
(
"saveExcelOriginalRecord entrust"
);
...
@@ -250,234 +284,297 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
...
@@ -250,234 +284,297 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
mapReplace
.
put
(
"#{client}"
,
entrust
.
getClient
());
mapReplace
.
put
(
"#{client}"
,
entrust
.
getClient
());
mapReplace
.
put
(
"#{boreholeName}"
,
entrust
.
getBoreholeName
());
mapReplace
.
put
(
"#{boreholeName}"
,
entrust
.
getBoreholeName
());
mapReplace
.
put
(
"#{projectNo}"
,
entrust
.
getProjectNo
());
mapReplace
.
put
(
"#{projectNo}"
,
entrust
.
getProjectNo
());
logger
.
error
(
"----------------------3"
);
replaceModel
(
mapReplace
,
xssfWorkbook
,
0
);
logger
.
error
(
"----------------------4"
);
XSSFSheet
sheetOne
=
xssfWorkbook
.
getSheetAt
(
0
);
sheetOne
.
setForceFormulaRecalculation
(
true
);
logger
.
error
(
"----------------------5"
);
Integer
beginRow
=
template
.
getSampleBeginRow
();
if
(
null
!=
beginRow
&&
null
!=
template
.
getSampleMergerNum
()
&&
null
!=
template
.
getTemplateSampleNum
()){
logger
.
error
(
"不为空"
);
List
<
SoilOriginalTemplateConfig
>
configList
=
soilOriginalTemplateConfigService
.
list
(
Condition
.
create
().
eq
(
"template_id"
,
templateId
));
logger
.
error
(
"configList"
);
int
templateSampleNum
=
template
.
getTemplateSampleNum
();
if
(
voList
.
size
()<
templateSampleNum
){
logger
.
error
(
"----------------------6"
);
int
sampleMergerNum
=
template
.
getSampleMergerNum
();
int
sn
=
1
;
if
(
null
==
template
.
getMoreSheet
()
||
0
==
template
.
getMoreSheet
()){
logger
.
error
(
"----------------------3"
);
replaceModel
(
mapReplace
,
xssfWorkbook
,
0
);
logger
.
error
(
"----------------------4"
);
XSSFSheet
sheetOne
=
xssfWorkbook
.
getSheetAt
(
0
);
sheetOne
.
setForceFormulaRecalculation
(
true
);
logger
.
error
(
"----------------------5"
);
Integer
beginRow
=
template
.
getSampleBeginRow
();
if
(
null
!=
beginRow
&&
null
!=
template
.
getSampleMergerNum
()
&&
null
!=
template
.
getTemplateSampleNum
()){
List
<
SoilOriginalTemplateConfig
>
configList
=
soilOriginalTemplateConfigService
.
list
(
Condition
.
create
().
eq
(
"template_id"
,
templateId
));
int
templateSampleNum
=
template
.
getTemplateSampleNum
();
if
(
voList
.
size
()<
templateSampleNum
){
int
sampleMergerNum
=
template
.
getSampleMergerNum
();
for
(
SoilExperimentVO
vo:
voList
)
{
XSSFRow
xssfRow
=
sheetOne
.
getRow
(
beginRow
);
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
XSSFCell
cell
=
xssfRow
.
getCell
(
config
.
getColumnPlace
());
if
(
"sn"
.
equals
(
config
.
getDataAttribute
())){
continue
;
}
cell
.
setCellValue
(
StringHandleUtils
.
getFieldIfNummReturnBlankValueByFieldName
(
config
.
getDataAttribute
(),
vo
));
}
beginRow
+=
sampleMergerNum
;
}
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
if
(
StringUtils
.
isNotBlank
(
config
.
getFormula
())&&
null
!=
config
.
getColumnPlace
()
&&
null
!=
config
.
getMergeRowNum
()){
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
);
XSSFCell
cell
=
row
.
getCell
(
config
.
getColumnPlace
());
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
+
""
);
}
}
for
(
SoilExperimentVO
vo:
voList
)
{
if
(
formula
.
contains
(
"#{snodd1}"
)){
XSSFRow
xssfRow
=
sheetOne
.
getRow
(
beginRow
);
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
)+
""
);
}
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
if
(
formula
.
contains
(
"#{sn+7}"
)){
XSSFCell
cell
=
xssfRow
.
getCell
(
config
.
getColumnPlace
());
formula
=
formula
.
replace
(
"#{sn+7}"
,(
i
+
8
)+
""
);
if
(
"sn"
.
equals
(
config
.
getDataAttribute
())){
}
continue
;
cell
.
setCellFormula
(
formula
);
}
}
}
cell
.
setCellValue
(
StringHandleUtils
.
getFieldIfNummReturnBlankValueByFieldName
(
config
.
getDataAttribute
(),
vo
));
}
sn
++;
}
logger
.
error
(
"----------------------7"
);
beginRow
+=
sampleMergerNum
;
}
else
{
}
logger
.
error
(
"----------------------8"
);
int
sampleMergerNum
=
template
.
getSampleMergerNum
();
int
insertRow
=
beginRow
+
sampleMergerNum
*
templateSampleNum
;
logger
.
error
(
"---------------------9"
);
XSSFRow
zeroRow
=
sheetOne
.
getRow
(
beginRow
);
XSSFCellStyle
cellStyle
=
zeroRow
.
getCell
(
0
).
getCellStyle
();
logger
.
error
(
"----------------------10"
);
int
lastCellNum
=
zeroRow
.
getLastCellNum
();
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
if
(
StringUtils
.
isNotBlank
(
config
.
getFormula
())&&
null
!=
config
.
getColumnPlace
()
&&
null
!=
config
.
getMergeRowNum
()){
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
);
XSSFCell
cell
=
row
.
getCell
(
config
.
getColumnPlace
());
String
formula
=
config
.
getFormula
();
formula
=
formula
.
replace
(
"#{sn}"
,(
i
+
1
)+
""
);
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"
);
}
else
{
logger
.
error
(
"----------------------8"
);
int
sampleMergerNum
=
template
.
getSampleMergerNum
();
int
insertRow
=
beginRow
+
sampleMergerNum
*
templateSampleNum
;
logger
.
error
(
"---------------------9"
);
XSSFRow
zeroRow
=
sheetOne
.
getRow
(
beginRow
);
XSSFCellStyle
cellStyle
=
zeroRow
.
getCell
(
0
).
getCellStyle
();
logger
.
error
(
"----------------------10"
);
int
lastCellNum
=
zeroRow
.
getLastCellNum
();
int
insertCount
=
voList
.
size
()-
templateSampleNum
;
List
<
Integer
>
integerList
=
new
ArrayList
<>();
logger
.
error
(
"---------------------11"
);
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
Integer
a
=
config
.
getMergeBegin
();
Integer
b
=
config
.
getMergeEnd
();
if
(
null
==
a
||
b
==
null
){
continue
;
}
for
(
int
i
=
a
;
i
<=
b
;
i
++)
{
integerList
.
add
(
i
)
;
}
}
logger
.
error
(
"----------------------12"
);
int
insertCount
=
voList
.
size
()-
templateSampleNum
;
List
<
Integer
>
integerList
=
new
ArrayList
<>();
for
(
int
m
=
0
;
m
<
insertCount
;
m
++)
{
logger
.
error
(
"---------------------11"
);
for
(
int
i
=
0
;
i
<
sampleMergerNum
;
i
++)
{
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
sheetOne
.
shiftRows
(
insertRow
,
sheetOne
.
getLastRowNum
(),
1
,
true
,
false
);
Integer
a
=
config
.
getMergeBegin
();
XSSFRow
row
=
sheetOne
.
createRow
(
insertRow
);
Integer
b
=
config
.
getMergeEnd
();
for
(
int
j
=
0
;
j
<
lastCellNum
;
j
++)
{
if
(
null
==
a
||
b
==
null
){
XSSFCell
xssfCell
=
row
.
createCell
(
j
);
continue
;
xssfCell
.
setCellStyle
(
cellStyle
);
}
}
for
(
int
i
=
a
;
i
<=
b
;
i
++)
{
insertRow
++;
integerList
.
add
(
i
)
;
}
}
logger
.
error
(
"----------------------12"
);
}
}
for
(
int
m
=
0
;
m
<
insertCount
;
m
++)
{
logger
.
error
(
"----------------------14"
);
for
(
int
i
=
0
;
i
<
sampleMergerNum
;
i
++)
{
int
sn
=
1
;
sheetOne
.
shiftRows
(
insertRow
,
sheetOne
.
getLastRowNum
(),
1
,
true
,
false
);
for
(
SoilExperimentVO
vo:
voList
)
{
XSSFRow
row
=
sheetOne
.
createRow
(
insertRow
);
XSSFRow
xssfRow
=
sheetOne
.
getRow
(
beginRow
);
for
(
int
j
=
0
;
j
<
lastCellNum
;
j
++)
{
XSSFCell
xssfCell
=
row
.
createCell
(
j
);
xssfCell
.
setCellStyle
(
cellStyle
);
}
insertRow
++;
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getColumnPlace
()){
continue
;
}
XSSFCell
cell
=
xssfRow
.
getCell
(
config
.
getColumnPlace
());
if
(
"sn"
.
equals
(
config
.
getDataAttribute
())){
cell
.
setCellValue
(
sn
);
}
else
{
cell
.
setCellValue
(
StringHandleUtils
.
getFieldIfNummReturnBlankValueByFieldName
(
config
.
getDataAttribute
(),
vo
));
}
}
beginRow
+=
sampleMergerNum
;
sn
++;
}
}
}
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getMergeRowNum
()){
config
.
setMergeRowNum
(
1
);
}
if
(
StringUtils
.
isNotBlank
(
config
.
getFormula
())&&
null
!=
config
.
getColumnPlace
()
&&
null
!=
config
.
getMergeRowNum
()){
Integer
sampleBgMum
=
template
.
getSampleBeginRow
();
Integer
mergeRowNum
=
config
.
getMergeRowNum
();
int
formulaNum
=
template
.
getSampleBeginRow
()+
sampleMergerNum
*
voList
.
size
()-
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
(
"----------------------14"
);
int
sn
=
1
;
for
(
SoilExperimentVO
vo:
voList
)
{
XSSFRow
xssfRow
=
sheetOne
.
getRow
(
beginRow
);
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getColumnPlace
()){
if
(
null
==
config
.
getMergeRowNum
()){
config
.
setMergeRowNum
(
1
);
}
if
(
null
==
config
.
getMergeBegin
()){
continue
;
continue
;
}
}
XSSFCell
cell
=
xssfRow
.
getCell
(
config
.
getColumnPlace
());
if
(
null
==
config
.
getMergeEnd
()){
if
(
"sn"
.
equals
(
config
.
getDataAttribute
())){
continue
;
cell
.
setCellValue
(
sn
);
}
else
{
cell
.
setCellValue
(
StringHandleUtils
.
getFieldIfNummReturnBlankValueByFieldName
(
config
.
getDataAttribute
(),
vo
));
}
}
}
int
step
=
config
.
getMergeRowNum
();
beginRow
+=
sampleMergerNum
;
if
(
step
==
1
&&
config
.
getMergeEnd
()
==
config
.
getMergeBegin
()){
sn
++;
continue
;
}
}
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
if
(
null
!=
config
.
getColumnPlace
()
&&
null
!=
config
.
getMergeRowNum
()){
if
(
null
==
config
.
getMergeRowNum
()){
Integer
sampleBgMum
=
template
.
getSampleBeginRow
()+
templateSampleNum
*
sampleMergerNum
;
config
.
setMergeRowNum
(
1
);
Integer
sampleEnMum
=
template
.
getSampleBeginRow
()+
voList
.
size
()*
sampleMergerNum
-
1
;
}
if
(
StringUtils
.
isNotBlank
(
config
.
getFormula
())&&
null
!=
config
.
getColumnPlace
()
&&
null
!=
config
.
getMergeRowNum
()){
Integer
sampleBgMum
=
template
.
getSampleBeginRow
();
Integer
mergeRowNum
=
config
.
getMergeRowNum
();
int
formulaNum
=
template
.
getSampleBeginRow
()+
sampleMergerNum
*
voList
.
size
()-
1
;
for
(
int
i
=
sampleBgMum
;
i
<
formulaNum
;
i
+=
mergeRowNum
)
{
XSSFRow
row
=
sheetOne
.
getRow
(
i
);
XSSFCell
cell
=
row
.
getCell
(
config
.
getColumnPlace
());
String
formula
=
config
.
getFormula
();
formula
=
formula
.
replace
(
"#{sn}"
,(
i
+
1
)+
""
);
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}"
)){
while
(
sampleBgMum
<=
sampleEnMum
)
{
formula
=
formula
.
replace
(
"#{sn+7}"
,(
i
+
8
)+
""
);
sheetOne
.
addMergedRegion
(
new
CellRangeAddress
(
sampleBgMum
,
sampleBgMum
+
step
-
1
,
config
.
getMergeBegin
(),
config
.
getMergeEnd
()));
sampleBgMum
=
sampleBgMum
+
step
;
}
}
cell
.
setCellFormula
(
formula
);
}
}
}
}
logger
.
error
(
"----------------------15"
);
}
}
for
(
SoilOriginalTemplateConfig
config:
configList
)
{
}
if
(
null
==
config
.
getMergeRowNum
()){
config
.
setMergeRowNum
(
1
);
}
if
(
null
==
config
.
getMergeBegin
()){
continue
;
}
if
(
null
==
config
.
getMergeEnd
()){
continue
;
}
int
step
=
config
.
getMergeRowNum
();
if
(
step
==
1
&&
config
.
getMergeEnd
()
==
config
.
getMergeBegin
()){
continue
;
}
if
(
null
!=
config
.
getColumnPlace
()
&&
null
!=
config
.
getMergeRowNum
()){
Integer
sampleBgMum
=
template
.
getSampleBeginRow
()+
templateSampleNum
*
sampleMergerNum
;
Integer
sampleEnMum
=
template
.
getSampleBeginRow
()+
voList
.
size
()*
sampleMergerNum
-
1
;
while
(
sampleBgMum
<=
sampleEnMum
)
{
}
else
{
sheetOne
.
addMergedRegion
(
new
CellRangeAddress
(
sampleBgMum
,
sampleBgMum
+
step
-
1
,
config
.
getMergeBegin
(),
config
.
getMergeEnd
()));
sampleBgMum
=
sampleBgMum
+
step
;
}
int
index
=
0
;
for
(
SoilExperimentVO
vo:
voList
)
{
if
(
index
==
0
){
xssfWorkbook
.
setSheetName
(
index
,
vo
.
getSampleCode
());
index
++;
continue
;
}
XSSFSheet
sheet
=
xssfWorkbook
.
cloneSheet
(
0
);
xssfWorkbook
.
setSheetName
(
index
,
vo
.
getSampleCode
());
index
++;
}
int
length
=
voList
.
size
();
}
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
SoilExperimentVO
experimentVO
=
voList
.
get
(
i
);
List
<
SoilItemVO
>
itemVOList
=
sampleSoilItemVOMap
.
get
(
experimentVO
.
getSampleId
());
for
(
SoilItemVO
itemVO:
itemVOList
)
{
mapReplace
.
put
(
"#{"
+
itemVO
.
getName
()+
"}"
,
itemVO
.
getTestValue
());
}
}
logger
.
error
(
"----------------------15"
);
if
(!
mapReplace
.
containsKey
(
"#{含水率}"
)){
}
mapReplace
.
put
(
"#{含水率}"
,
""
);
}
mapReplace
.
put
(
"#{sampleCode}"
,
experimentVO
.
getSampleCode
());
replaceModel
(
mapReplace
,
xssfWorkbook
,
i
);
}
}
}
// XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheetOne);
// XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheetOne);
// DataValidationConstraint dvConstraint= dvHelper.createFormulaListConstraint("现用盒号盒重!$A$2:$A$567");
// DataValidationConstraint dvConstraint= dvHelper.createFormulaListConstraint("现用盒号盒重!$A$2:$A$567");
//
//
...
@@ -723,6 +820,83 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
...
@@ -723,6 +820,83 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
return
objectKey
;
return
objectKey
;
}
}
@Override
public
void
uploadCollectGds
(
SmbFile
smbFile
,
CollectDataType
request
)
{
InputStream
is
=
null
;
try
{
is
=
smbFile
.
getInputStream
();
BufferedReader
bufferedReader
=
new
BufferedReader
(
new
InputStreamReader
(
is
));
String
strLine
=
null
;
List
<
String
>
titleList
=
new
ArrayList
<>();
int
lineCount
=
1
;
SoilDataGds
gds
=
new
SoilDataGds
();
gds
.
setId
(
IdWorker
.
getId
());
List
<
SoilDataGdsDetail
>
saveDetailList
=
new
ArrayList
<>();
Map
<
String
,
String
>
mainColumnMap
=
StringStaticDataUtils
.
mapGdsMain
;
Map
<
String
,
String
>
gdsColumnDetailMap
=
StringStaticDataUtils
.
mapGdsColumnCheck
;
while
(
null
!=
(
strLine
=
bufferedReader
.
readLine
())){
String
[]
lineArray
=
strLine
.
split
(
","
);
if
(
lineArray
.
length
==
2
)
{
String
key
=
lineArray
[
0
].
replace
(
"\""
,
""
);
String
value
=
lineArray
[
1
].
replace
(
"\""
,
""
);
if
(
mainColumnMap
.
containsKey
(
key
)){
StringHandleUtils
.
setFieldValueByFieldName
(
mainColumnMap
.
get
(
key
),
gds
,
value
);
}
}
else
{
if
(
titleList
.
size
()
==
0
){
for
(
String
title:
lineArray
)
{
title
=
title
.
replace
(
"\""
,
""
);
titleList
.
add
(
title
);
}
}
else
{
int
length
=
lineArray
.
length
;
SoilDataGdsDetail
soilDataGdsDetail
=
new
SoilDataGdsDetail
();
soilDataGdsDetail
.
setGdsId
(
gds
.
getId
());
soilDataGdsDetail
.
setUid
(
LoginHelper
.
getAccount
().
getUserId
());
soilDataGdsDetail
.
setCtime
(
new
Date
());
soilDataGdsDetail
.
setCompanyId
(
LoginHelper
.
getAccount
().
getCompanyId
());
soilDataGdsDetail
.
setDeleted
(
0
);
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
String
key
=
titleList
.
get
(
i
);
String
value
=
lineArray
[
i
].
replace
(
"\""
,
""
);
if
(
gdsColumnDetailMap
.
containsKey
(
key
)){
StringHandleUtils
.
setFieldValueByFieldName
(
gdsColumnDetailMap
.
get
(
key
),
soilDataGdsDetail
,
value
);
}
}
saveDetailList
.
add
(
soilDataGdsDetail
);
}
}
System
.
out
.
println
(
"第["
+
lineCount
+
"]行数据:["
+
strLine
+
"]"
);
lineCount
++;
}
if
(
soilDataGdsService
.
save
(
gds
)){
soilDataGdsDetailService
.
saveBatchCustom
(
saveDetailList
);
}
}
catch
(
Exception
e
){
logger
.
error
(
"解析gds文件失败"
+
e
.
getMessage
());
}
}
public
static
XSSFWorkbook
replaceModel
(
Map
item
,
XSSFWorkbook
wb
,
int
index
)
{
public
static
XSSFWorkbook
replaceModel
(
Map
item
,
XSSFWorkbook
wb
,
int
index
)
{
try
{
try
{
XSSFSheet
sheet
=
wb
.
getSheetAt
(
index
);
XSSFSheet
sheet
=
wb
.
getSheetAt
(
index
);
...
...
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilItemServiceImpl.java
View file @
a22a33fb
...
@@ -41,4 +41,10 @@ public class SoilItemServiceImpl extends BaseServiceImpl<SoilItemMapper, SoilIte
...
@@ -41,4 +41,10 @@ public class SoilItemServiceImpl extends BaseServiceImpl<SoilItemMapper, SoilIte
public
List
<
SoilItemVO
>
listVOByExpIds
(
List
<
Long
>
expIdsList
)
{
public
List
<
SoilItemVO
>
listVOByExpIds
(
List
<
Long
>
expIdsList
)
{
return
baseMapper
.
listVOByExpIds
(
expIdsList
);
return
baseMapper
.
listVOByExpIds
(
expIdsList
);
}
}
@Override
public
List
<
SoilItemVO
>
listVOByExpSampleIds
(
List
<
Long
>
expIdsList
)
{
return
baseMapper
.
listVOByExpSampleIds
(
expIdsList
);
}
}
}
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilOriginalTemplateServiceImpl.java
View file @
a22a33fb
...
@@ -297,7 +297,7 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
...
@@ -297,7 +297,7 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
collectEntity
.
setItemName
(
config
.
getAttributeName
());
collectEntity
.
setItemName
(
config
.
getAttributeName
());
collectEntity
.
setColumnPlace
(
config
.
getColumnPlace
());
collectEntity
.
setColumnPlace
(
config
.
getColumnPlace
());
collectEntity
.
setUnit
(
config
.
getUnit
());
collectEntity
.
setUnit
(
config
.
getUnit
());
collectEntity
.
setItemMegerRow
(
config
.
getMergeRowNum
());
collectEntitiesList
.
add
(
collectEntity
);
collectEntitiesList
.
add
(
collectEntity
);
}
}
...
@@ -316,19 +316,83 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
...
@@ -316,19 +316,83 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
XSSFCell
sampleCodeCell
=
xssfRow
.
getCell
(
sampleCol
);
XSSFCell
sampleCodeCell
=
xssfRow
.
getCell
(
sampleCol
);
String
sampleCode
=
HSSFWorkbookUtil
.
getJavaValue
(
sampleCodeCell
).
toString
();
String
sampleCode
=
HSSFWorkbookUtil
.
getJavaValue
(
sampleCodeCell
).
toString
();
for
(
ItemCollectEntity
collectEntity:
collectEntitiesList
)
{
XSSFCell
itemCell
=
xssfRow
.
getCell
(
collectEntity
.
getColumnPlace
());
String
value
=
formatter
.
formatCellValue
(
itemCell
,
evaluator
);
String
itemName
=
collectEntity
.
getItemName
();
for
(
ItemCollectEntity
collectEntity:
collectEntitiesList
)
{
if
(
StringUtils
.
isBlank
(
value
)){
Integer
itemValueIndex
=
collectEntity
.
getItemMegerRow
();
continue
;
if
(
null
==
itemValueIndex
||
itemValueIndex
==
sampleMergerNum
){
}
XSSFCell
itemCell
=
xssfRow
.
getCell
(
collectEntity
.
getColumnPlace
());
SoilItemCollectData
soilItemCollectData
=
new
SoilItemCollectData
();
String
value
=
formatter
.
formatCellValue
(
itemCell
,
evaluator
);
soilItemCollectData
.
setItemName
(
itemName
);
String
itemName
=
collectEntity
.
getItemName
();
soilItemCollectData
.
setTestValue
(
value
);
if
(
StringUtils
.
isBlank
(
value
)){
soilItemCollectData
.
setSampleCode
(
sampleCode
);
continue
;
soilItemCollectData
.
setUnit
(
collectEntity
.
getUnit
());
}
soilItemList
.
add
(
soilItemCollectData
);
SoilItemCollectData
soilItemCollectData
=
new
SoilItemCollectData
();
soilItemCollectData
.
setItemName
(
itemName
);
soilItemCollectData
.
setTestValue
(
value
);
soilItemCollectData
.
setSampleCode
(
sampleCode
);
soilItemCollectData
.
setUnit
(
collectEntity
.
getUnit
());
soilItemList
.
add
(
soilItemCollectData
);
}
else
{
if
(
sampleMergerNum
%
itemValueIndex
==
0
){
int
nums
=
sampleMergerNum
/
itemValueIndex
;
for
(
int
j
=
0
;
j
<
nums
;
j
++)
{
int
itemRow
=
i
+
j
*
itemValueIndex
;
XSSFRow
itemValueRow
=
sheet
.
getRow
(
itemRow
);
if
(
null
==
itemValueRow
){
continue
;
}
XSSFCell
itemCell
=
itemValueRow
.
getCell
(
collectEntity
.
getColumnPlace
());
if
(
null
==
itemCell
){
continue
;
}
String
value
=
formatter
.
formatCellValue
(
itemCell
,
evaluator
);
String
itemName
=
collectEntity
.
getItemName
();
if
(
StringUtils
.
isBlank
(
value
)){
continue
;
}
String
name
=
""
;
String
[]
itemArray
=
itemName
.
split
(
"&"
);
if
(
itemArray
.
length
==
2
){
int
suplus
=
j
%
2
;
if
(
suplus
==
0
){
name
=
itemArray
[
0
];
}
else
if
(
suplus
==
1
){
name
=
itemArray
[
1
];
}
}
SoilItemCollectData
soilItemCollectData
=
new
SoilItemCollectData
();
soilItemCollectData
.
setItemName
(
name
);
soilItemCollectData
.
setTestValue
(
value
);
soilItemCollectData
.
setSampleCode
(
sampleCode
);
soilItemCollectData
.
setUnit
(
collectEntity
.
getUnit
());
soilItemList
.
add
(
soilItemCollectData
);
}
}
else
{
XSSFCell
itemCell
=
xssfRow
.
getCell
(
collectEntity
.
getColumnPlace
());
String
value
=
formatter
.
formatCellValue
(
itemCell
,
evaluator
);
String
itemName
=
collectEntity
.
getItemName
();
if
(
StringUtils
.
isBlank
(
value
)){
continue
;
}
SoilItemCollectData
soilItemCollectData
=
new
SoilItemCollectData
();
soilItemCollectData
.
setItemName
(
itemName
);
soilItemCollectData
.
setTestValue
(
value
);
soilItemCollectData
.
setSampleCode
(
sampleCode
);
soilItemCollectData
.
setUnit
(
collectEntity
.
getUnit
());
soilItemList
.
add
(
soilItemCollectData
);
}
}
}
}
}
}
...
...
src/main/resources/mapper/soil/SoilDataGdsDetailMapper.xml
0 → 100644
View file @
a22a33fb
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.patzn.cloud.service.lims.soil.mapper.SoilDataGdsDetailMapper"
>
<insert
id=
"saveBatchCustom"
parameterType=
"java.util.List"
>
INSERT INTO soil_data_gds_detail (
id ,
gds_id ,
stage_number ,
time_since_start_of_test ,
time_since_start_of_stage ,
axial_displacement ,
axial_load ,
horizontal_displacement ,
horizontal_load ,
pore_water_pressure ,
back_pressure ,
back_volume ,
undefined_transducer_one ,
undefined_transducer_two ,
ring_shear_torque_nm ,
ring_shear_torque_degs ,
lower_chamber_pr ,
lower_chamber_vol ,
axial_displacement_two ,
horizontal_displacement_two ,
ring_shear_load_one ,
ring_shear_load_two ,
axial_load_two ,
horizontal_load_two ,
horizontal_load_three ,
axial_stroke ,
horizontal_stroke ,
pore_air_pressure ,
pore_air_pressure_two ,
atmospheric_pressure ,
back_to_air_differential ,
cell_pressure ,
cell_volume ,
pore_air_volume ,
axial_strain ,
normal_stress ,
hsohrdfrsm ,
hsossfrsm ,
horizontal_eff_stress ,
effective_area ,
normal_effective_stress ,
average_ring_shear_load ,
company_id ,
uid ,
ctime ,
lid ,
ltime ,
deleted ) VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.id},
#{item.gdsId},
#{item.stageNumber},
#{item.timeSinceStartOfTest},
#{item.timeSinceStartOfStage},
#{item.axialDisplacement},
#{item.axialLoad},
#{item.horizontalDisplacement},
#{item.horizontalLoad},
#{item.poreWaterPressure},
#{item.backPressure},
#{item.backVolume},
#{item.undefinedTransducerOne},
#{item.undefinedTransducerTwo},
#{item.ringShearTorqueNm},
#{item.ringShearTorqueDegs},
#{item.lowerChamberPr},
#{item.lowerChamberVol},
#{item.axialDisplacementTwo},
#{item.horizontalDisplacementTwo},
#{item.ringShearLoadOne},
#{item.ringShearLoadTwo},
#{item.axialLoadTwo},
#{item.horizontalLoadTwo},
#{item.horizontalLoadThree},
#{item.axialStroke},
#{item.horizontalStroke},
#{item.poreAirPressure},
#{item.poreAirPressureTwo},
#{item.atmosphericPressure},
#{item.backToAirDifferential},
#{item.cellPressure},
#{item.cellVolume},
#{item.poreAirVolume},
#{item.axialStrain},
#{item.normalStress},
#{item.hsohrdfrsm},
#{item.hsossfrsm},
#{item.horizontalEffStress},
#{item.effectiveArea},
#{item.normalEffectiveStress},
#{item.averageRingShearLoad},
#{item.companyId},
#{item.uid},
#{item.ctime},
#{item.lid},
#{item.ltime},
#{item.deleted}
)
</foreach>
</insert>
</mapper>
src/main/resources/mapper/soil/SoilDataGdsMapper.xml
0 → 100644
View file @
a22a33fb
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.patzn.cloud.service.lims.soil.mapper.SoilDataGdsMapper"
>
</mapper>
src/main/resources/mapper/soil/SoilExperimentMapper.xml
View file @
a22a33fb
...
@@ -234,7 +234,7 @@
...
@@ -234,7 +234,7 @@
<select
id=
"selectListVOByIds"
resultType=
"com.patzn.cloud.service.soil.vo.SoilExperimentVO"
>
<select
id=
"selectListVOByIds"
resultType=
"com.patzn.cloud.service.soil.vo.SoilExperimentVO"
>
SELECT t.id,s.sample_code,s.site_no,s.sample_depth,s.sample_pack,e.entrust_code,e.id AS "entrustId",e.borehole_name FROM soil_experiment t
SELECT t.id,s.sample_code,s.site_no,s.sample_depth,s.sample_pack,e.entrust_code,e.id AS "entrustId",e.borehole_name
,t.sample_id
FROM soil_experiment t
JOIN soil_sample s ON t.sample_id = s.id
JOIN soil_sample s ON t.sample_id = s.id
JOIN soil_entrust e ON s.entrust_id = e.id
JOIN soil_entrust e ON s.entrust_id = e.id
...
...
src/main/resources/mapper/soil/SoilItemMapper.xml
View file @
a22a33fb
...
@@ -16,4 +16,22 @@
...
@@ -16,4 +16,22 @@
#{id}
#{id}
</foreach>
</foreach>
</select>
</select>
<select
id=
"listVOByExpSampleIds"
resultType=
"com.patzn.cloud.service.soil.vo.SoilItemVO"
>
SELECT i.id,i.name,i.experiment_id,s.sample_code,s.id AS sample_id,i.test_value FROM soil_item i JOIN
soil_experiment t ON i.experiment_id = t.id
JOIN soil_sample s ON t.sample_id = s.id
WHERE i.deleted =0 AND t.deleted = 0 AND s.deleted = 0
AND s.id IN
<foreach
collection=
"sampleIds"
index=
"index"
item=
"id"
open=
"("
separator=
","
close=
")"
>
#{id}
</foreach>
</select>
</mapper>
</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