Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
H
hzsomms
Project
Project
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
ZTGK
hzsomms
Commits
271591d2
Commit
271591d2
authored
Oct 31, 2023
by
hkl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:1.人工检查数据导入bug
parent
aac0e86f
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
373 additions
and
280 deletions
+373
-280
MovementRecordsMasterController.java
...checkData/controller/MovementRecordsMasterController.java
+244
-251
MovementRecordsMasterFaceImpl.java
...es/checkData/face/impl/MovementRecordsMasterFaceImpl.java
+35
-0
RailInspectionEquipmentItemServiceImpl.java
.../service/impl/RailInspectionEquipmentItemServiceImpl.java
+52
-26
AnalysisAlgorithm.java
...es/dynamicStaticAnalysis/algorithm/AnalysisAlgorithm.java
+5
-2
SubwaySectionController.java
...les/subwayNetwork/controller/SubwaySectionController.java
+37
-1
No files found.
jeecg-module-system/src/main/java/org/jeecg/modules/checkData/controller/MovementRecordsMasterController.java
View file @
271591d2
This diff is collapsed.
Click to expand it.
jeecg-module-system/src/main/java/org/jeecg/modules/checkData/face/impl/MovementRecordsMasterFaceImpl.java
View file @
271591d2
...
...
@@ -10,9 +10,11 @@ import org.jeecg.common.exception.JeecgBootException;
import
org.jeecg.common.util.UUIDGenerator
;
import
org.jeecg.modules.checkData.entity.MovementCourse
;
import
org.jeecg.modules.checkData.entity.MovementCourseInfo
;
import
org.jeecg.modules.checkData.entity.MovementRecordsMaster
;
import
org.jeecg.modules.checkData.face.MovementRecordsMasterFace
;
import
org.jeecg.modules.checkData.service.IMovementCourseInfoService
;
import
org.jeecg.modules.checkData.service.IMovementCourseService
;
import
org.jeecg.modules.checkData.service.IMovementRecordsMasterService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -34,6 +36,9 @@ public class MovementRecordsMasterFaceImpl implements MovementRecordsMasterFace
@Resource
private
IMovementCourseInfoService
movementCourseInfoService
;
@Resource
private
IMovementRecordsMasterService
movementRecordsMasterService
;
@Override
public
void
saveLabourCheckItem
(
MovementCourse
record
)
{
...
...
@@ -90,6 +95,8 @@ public class MovementRecordsMasterFaceImpl implements MovementRecordsMasterFace
List
<
MovementCourse
>
movementCourseList
=
new
ArrayList
<>();
List
<
MovementCourseInfo
>
movementCourseInfoList
=
new
ArrayList
<>();
MovementRecordsMaster
recordsMaster
=
this
.
movementRecordsMasterService
.
getById
(
id
);
// 1.excel导入List<List<Object>> 中
CurrentRowHandler
currentRowHandler
=
new
CurrentRowHandler
();
ExcelUtil
.
readBySax
(
inputStream
,
0
,
currentRowHandler
);
...
...
@@ -99,6 +106,8 @@ public class MovementRecordsMasterFaceImpl implements MovementRecordsMasterFace
int
column
=
currentRowHandler
.
rowRecords
.
get
(
0
).
size
();
int
sort
=
0
;
int
trackCodeCount
=
1
;
boolean
startExist
=
false
;
boolean
endExist
=
false
;
for
(
int
i
=
0
;
i
<
column
;
i
++)
{
// 2.1 解析检查项目 获取 起止里程,曲线半径,超高,加宽,顺坡率,线路全长
...
...
@@ -126,6 +135,25 @@ public class MovementRecordsMasterFaceImpl implements MovementRecordsMasterFace
BigDecimal
startMileage
=
Convert
.
toBigDecimal
(
startMileageStr
);
BigDecimal
endMileage
=
Convert
.
toBigDecimal
(
endMileageStr
);
if
(
startMileage
.
compareTo
(
endMileage
)
>=
0
)
{
throw
JeecgBootException
.
error
(
"开始里程不能大于等于结束里程"
);
}
if
(
startMileage
.
compareTo
(
recordsMaster
.
getStartingMileage
())
<
0
)
{
throw
JeecgBootException
.
error
(
"开始里程小于当前批次开始里程"
);
}
else
if
(
startMileage
.
compareTo
(
recordsMaster
.
getStartingMileage
())
==
0
)
{
startExist
=
true
;
}
// 如果结束里程 < 外面的主表的结束里程
if
(
endMileage
.
compareTo
(
recordsMaster
.
getEndMileage
())
>
0
)
{
throw
JeecgBootException
.
error
(
"结束里程大于当前批次结束里程"
);
}
else
if
(
endMileage
.
compareTo
(
recordsMaster
.
getEndMileage
())
==
0
)
{
endExist
=
true
;
}
// ② 获取曲线半径,可能为空,‘/’ 视为空
startIndex
=
startingAndRowDataStr
.
indexOf
(
"曲线半径"
);
endIndex
=
startingAndRowDataStr
.
indexOf
(
"m"
);
...
...
@@ -276,6 +304,13 @@ public class MovementRecordsMasterFaceImpl implements MovementRecordsMasterFace
}
}
if
(!
startExist
)
{
throw
JeecgBootException
.
error
(
"起点里程要和批次的起点里程一致"
);
}
if
(!
endExist
)
{
throw
JeecgBootException
.
error
(
"终点里程要和批次的终点里程一致"
);
}
// 保存之前先删除
movementCourseService
.
lambdaUpdate
().
eq
(
MovementCourse:
:
getMovementMasterId
,
id
).
remove
();
movementCourseInfoService
.
lambdaUpdate
().
eq
(
MovementCourseInfo:
:
getMovementMasterId
,
id
).
remove
();
...
...
jeecg-module-system/src/main/java/org/jeecg/modules/checkData/service/impl/RailInspectionEquipmentItemServiceImpl.java
View file @
271591d2
...
...
@@ -10,14 +10,17 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.jeecg.common.exception.JeecgBootException
;
import
org.jeecg.common.util.UUIDGenerator
;
import
org.jeecg.modules.checkData.entity.MovementRecordsMaster
;
import
org.jeecg.modules.checkData.entity.RailInspectionEquipmentItem
;
import
org.jeecg.modules.checkData.entity.RailInspectionEquipmentItemDetail
;
import
org.jeecg.modules.checkData.mapper.MovementRecordsMasterMapper
;
import
org.jeecg.modules.checkData.mapper.RailInspectionEquipmentItemDetailMapper
;
import
org.jeecg.modules.checkData.mapper.RailInspectionEquipmentItemMapper
;
import
org.jeecg.modules.checkData.service.IRailInspectionEquipmentItemService
;
import
org.jeecg.modules.checkData.vo.RailInspectionEquipmentItemDetailVO
;
import
org.jeecg.modules.checkData.vo.RailInspectionEquipmentItemVO
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
...
...
@@ -41,14 +44,21 @@ public class RailInspectionEquipmentItemServiceImpl extends ServiceImpl<RailInsp
@Resource
private
RailInspectionEquipmentItemDetailMapper
railInspectionEquipmentItemDetailMapper
;
@Resource
private
MovementRecordsMasterMapper
movementRecordsMasterMapper
;
@Override
public
List
<
RailInspectionEquipmentItemVO
>
queryList
(
String
masterId
)
{
return
this
.
baseMapper
.
queryList
(
masterId
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
uploadFile
(
String
masterId
,
MultipartFile
file
)
{
try
{
MovementRecordsMaster
recordsMaster
=
movementRecordsMasterMapper
.
selectById
(
masterId
);
//读取第一个sheet页的数据
ExcelReader
reader
=
ExcelUtil
.
getReader
(
file
.
getInputStream
(),
0
);
//读取Excel中所有的数据,以行保存
...
...
@@ -57,15 +67,41 @@ public class RailInspectionEquipmentItemServiceImpl extends ServiceImpl<RailInsp
List
<
RailInspectionEquipmentItem
>
items
=
new
ArrayList
<>();
List
<
RailInspectionEquipmentItemDetail
>
itemDetails
=
new
ArrayList
<>();
boolean
startExist
=
false
;
boolean
endExist
=
false
;
int
sort
=
1
;
for
(
int
i
=
0
;
i
<
rowRecords
.
size
();
)
{
List
<
Object
>
cols
=
rowRecords
.
get
(
i
);
String
titleHeader
=
Convert
.
toStr
(
cols
.
get
(
13
));
// 检查起始里程
BigDecimal
courseStartingMileage
=
Convert
.
toBigDecimal
(
cols
.
get
(
3
));
// 检查终点里程
BigDecimal
courseEndMileage
=
Convert
.
toBigDecimal
(
cols
.
get
(
6
));
if
((
ObjectUtil
.
isNotEmpty
(
titleHeader
)
&&
titleHeader
.
contains
(
"股道"
))
&&
(
ObjectUtil
.
isNotEmpty
(
courseStartingMileage
)
&&
ObjectUtil
.
isNotEmpty
(
courseEndMileage
)))
{
// 如果开始里程 > 外面的主表的开始程则报错
BigDecimal
currentStartMileage
=
courseStartingMileage
.
multiply
(
new
BigDecimal
(
1000
));
BigDecimal
currentEntMileage
=
courseEndMileage
.
multiply
(
new
BigDecimal
(
1000
));
if
(
currentStartMileage
.
compareTo
(
currentEntMileage
)
>=
0
)
{
throw
JeecgBootException
.
error
(
"开始里程不能大于等于结束里程"
);
}
if
(
currentStartMileage
.
compareTo
(
recordsMaster
.
getStartingMileage
())
<
0
)
{
throw
JeecgBootException
.
error
(
"开始里程小于当前批次开始里程"
);
}
else
if
(
currentStartMileage
.
compareTo
(
recordsMaster
.
getStartingMileage
())
==
0
)
{
startExist
=
true
;
}
// 如果结束里程 < 外面的主表的结束里程
if
(
currentEntMileage
.
compareTo
(
recordsMaster
.
getEndMileage
())
>
0
)
{
throw
JeecgBootException
.
error
(
"结束里程大于当前批次结束里程"
);
}
else
if
(
currentEntMileage
.
compareTo
(
recordsMaster
.
getEndMileage
())
==
0
)
{
endExist
=
true
;
}
// 曲线半径
BigDecimal
curveRadius
=
null
;
if
(
ObjectUtil
.
isNotEmpty
(
cols
.
get
(
18
).
toString
().
trim
()))
{
...
...
@@ -88,24 +124,26 @@ public class RailInspectionEquipmentItemServiceImpl extends ServiceImpl<RailInsp
item
.
setCurveRadius
(
curveRadius
);
item
.
setSuperHigh
(
superHigh
);
item
.
setSlopeRatio
(
slopeRatio
);
item
.
setRailInspectionEquipmentId
(
masterId
);
item
.
setDelFlag
(
"0"
);
item
.
setSort
(
sort
);
items
.
add
(
item
);
int
skipRow
=
analysis
ItemDetail
(
i
,
titleHeader
,
item
.
getId
(),
rowRecords
,
itemDetails
);
// 读取item详情
int
skipRow
=
read
ItemDetail
(
i
,
titleHeader
,
item
.
getId
(),
rowRecords
,
itemDetails
);
i
=
i
+
skipRow
;
sort
++;
}
else
{
i
++;
}
}
for
(
int
i
=
0
;
i
<
items
.
size
();
i
++
)
{
RailInspectionEquipmentItem
item
=
items
.
get
(
i
);
item
.
setSort
(
i
+
1
);
item
.
setDelFlag
(
"0"
);
item
.
setRailInspectionEquipmentId
(
masterId
);
if
(!
startExist
)
{
throw
JeecgBootException
.
error
(
"起点里程要和批次的起点里程一致"
);
}
if
(!
endExist
)
{
throw
JeecgBootException
.
error
(
"终点里程要和批次的起点里程一致"
);
}
// 项目信息-先删除,再导入
this
.
lambdaUpdate
().
eq
(
RailInspectionEquipmentItem:
:
getRailInspectionEquipmentId
,
masterId
).
remove
();
...
...
@@ -113,17 +151,15 @@ public class RailInspectionEquipmentItemServiceImpl extends ServiceImpl<RailInsp
queryWrapper
.
eq
(
RailInspectionEquipmentItemDetail:
:
getRailInspectionEquipmentId
,
masterId
);
railInspectionEquipmentItemDetailMapper
.
delete
(
queryWrapper
);
railInspectionEquipmentItemDetailMapper
.
insertBatch
(
itemDetails
);
this
.
saveBatch
(
items
);
}
catch
(
IOException
io
)
{
throw
new
JeecgBootException
(
io
);
}
}
private
int
analysis
ItemDetail
(
int
rows
,
String
titleHeader
,
String
itemId
,
List
<
List
<
Object
>>
rowRecords
,
List
<
RailInspectionEquipmentItemDetail
>
itemDetails
)
{
private
int
read
ItemDetail
(
int
rows
,
String
titleHeader
,
String
itemId
,
List
<
List
<
Object
>>
rowRecords
,
List
<
RailInspectionEquipmentItemDetail
>
itemDetails
)
{
// 解析检查项目:1行:跳过2行不解析
...
...
@@ -183,9 +219,9 @@ public class RailInspectionEquipmentItemServiceImpl extends ServiceImpl<RailInsp
// 解析轨向、高低及其它 1行:空白不解析
// 解析临修日期及内容 1行:空白不解析
// 如果是
正线
解析首轮检查负责人1行
// 如果是
股道
解析首轮检查负责人1行
int
skipRow
=
14
;
if
(
titleHeader
.
contains
(
"
正线
"
))
{
if
(
titleHeader
.
contains
(
"
股道
"
))
{
skipRow
=
skipRow
+
1
;
}
...
...
@@ -258,17 +294,7 @@ public class RailInspectionEquipmentItemServiceImpl extends ServiceImpl<RailInsp
@Override
public
void
updateRecord
(
RailInspectionEquipmentItem
record
)
{
this
.
lambdaUpdate
()
.
set
(
RailInspectionEquipmentItem:
:
getRemark
,
record
.
getRemark
())
.
set
(
RailInspectionEquipmentItem:
:
getCourseStartingMileage
,
record
.
getCourseStartingMileage
())
.
set
(
RailInspectionEquipmentItem:
:
getCourseEndMileage
,
record
.
getCourseEndMileage
())
.
set
(
RailInspectionEquipmentItem:
:
getCurveRadius
,
record
.
getCurveRadius
())
.
set
(
RailInspectionEquipmentItem:
:
getLongExtent
,
record
.
getLongExtent
())
.
set
(
RailInspectionEquipmentItem:
:
getSlopeRatio
,
record
.
getSlopeRatio
())
.
set
(
RailInspectionEquipmentItem:
:
getSuperHigh
,
record
.
getSuperHigh
())
.
set
(
RailInspectionEquipmentItem:
:
getWiden
,
record
.
getWiden
())
.
eq
(
RailInspectionEquipmentItem:
:
getId
,
record
.
getId
())
.
update
();
this
.
lambdaUpdate
().
set
(
RailInspectionEquipmentItem:
:
getRemark
,
record
.
getRemark
()).
set
(
RailInspectionEquipmentItem:
:
getCourseStartingMileage
,
record
.
getCourseStartingMileage
()).
set
(
RailInspectionEquipmentItem:
:
getCourseEndMileage
,
record
.
getCourseEndMileage
()).
set
(
RailInspectionEquipmentItem:
:
getCurveRadius
,
record
.
getCurveRadius
()).
set
(
RailInspectionEquipmentItem:
:
getLongExtent
,
record
.
getLongExtent
()).
set
(
RailInspectionEquipmentItem:
:
getSlopeRatio
,
record
.
getSlopeRatio
()).
set
(
RailInspectionEquipmentItem:
:
getSuperHigh
,
record
.
getSuperHigh
()).
set
(
RailInspectionEquipmentItem:
:
getWiden
,
record
.
getWiden
()).
eq
(
RailInspectionEquipmentItem:
:
getId
,
record
.
getId
()).
update
();
// this.updateById(record);
}
...
...
jeecg-module-system/src/main/java/org/jeecg/modules/dynamicStaticAnalysis/algorithm/AnalysisAlgorithm.java
View file @
271591d2
...
...
@@ -1676,10 +1676,13 @@ public class AnalysisAlgorithm {
// 计算超限:如果为null则计算,否则和单元绑定
if
(
null
==
transfinite
)
{
transfinite
=
this
.
labourCheckTransfinite
(
analysisBatch
,
movementCourseInfo
);
}
else
{
// 如果超限不为空则添加进去
if
(
null
!=
transfinite
)
{
unitDevice
.
put
(
"labourCheckTransfinite"
,
transfinite
);
}
}
}
// 计算得分
this
.
labourCheckScore
(
analysisBatch
,
labourCheckList
,
unitDevice
);
...
...
jeecg-module-system/src/main/java/org/jeecg/modules/subwayNetwork/controller/SubwaySectionController.java
View file @
271591d2
...
...
@@ -8,8 +8,15 @@ import cn.hutool.core.util.ObjectUtil;
import
org.jeecg.common.api.dto.PageSearch
;
import
org.jeecg.common.api.vo.Result
;
import
org.jeecg.common.exception.JeecgBootException
;
import
org.jeecg.modules.checkData.entity.MovementRecordsMaster
;
import
org.jeecg.modules.checkData.entity.RecordsMasterCheck
;
import
org.jeecg.modules.checkData.mapper.MovementRecordsMasterMapper
;
import
org.jeecg.modules.checkData.service.IMovementRecordsMasterService
;
import
org.jeecg.modules.checkData.service.IRecordsMasterCheckService
;
import
org.jeecg.modules.deviceAsset.entity.*
;
import
org.jeecg.modules.deviceAsset.service.*
;
import
org.jeecg.modules.dynamicStaticAnalysis.service.IAnalysisBatchService
;
import
org.jeecg.modules.maintenanceWork.service.IWorkBatchService
;
import
org.jeecg.modules.subwayNetwork.dto.SubwaySectionEditDTO
;
import
org.jeecg.modules.subwayNetwork.dto.SubwaySectionQueryDTO
;
import
org.jeecg.modules.subwayNetwork.entity.SectionStationMap
;
...
...
@@ -56,7 +63,11 @@ public class SubwaySectionController extends JeecgController<SubwaySection, ISub
private
ISignBoardManagementService
signBoardManagementService
;
@Resource
private
ISleeperManagementService
sleeperManagementService
;
@Resource
private
IMovementRecordsMasterService
movementRecordsMasterService
;
@Resource
private
IRecordsMasterCheckService
recordsMasterCheckService
;
@AutoLog
(
value
=
"线路车站-地铁区间-分页列表查询"
)
@ApiOperation
(
value
=
"线路车站-地铁区间-分页列表查询"
,
notes
=
"线路车站-地铁区间-分页列表查询"
)
...
...
@@ -132,7 +143,12 @@ public class SubwaySectionController extends JeecgController<SubwaySection, ISub
Long
signBoardCount
=
signBoardManagementService
.
lambdaQuery
()
.
eq
(
SignBoardManagement:
:
getSectionId
,
id
)
.
count
();
Long
movementRecordsCount
=
movementRecordsMasterService
.
lambdaQuery
()
.
eq
(
MovementRecordsMaster:
:
getSubwaySectionId
,
id
)
.
count
();
Long
recordsMasterCount
=
recordsMasterCheckService
.
lambdaQuery
()
.
eq
(
RecordsMasterCheck:
:
getSubwaySectionId
,
id
)
.
count
();
boolean
isDel
=
false
;
StringBuilder
errorMsg
=
new
StringBuilder
(
"该区间下还有"
);
...
...
@@ -168,6 +184,14 @@ public class SubwaySectionController extends JeecgController<SubwaySection, ISub
isDel
=
true
;
errorMsg
.
append
(
"轨行区标示牌:"
+
signBoardCount
+
"个"
);
}
if
(
movementRecordsCount
!=
0
)
{
isDel
=
true
;
errorMsg
.
append
(
"动静态几何数据关联:"
+
movementRecordsCount
+
"条"
);
}
if
(
recordsMasterCount
!=
0
)
{
isDel
=
true
;
errorMsg
.
append
(
"设备检查记录数据关联:"
+
recordsMasterCount
+
"条"
);
}
if
(
isDel
)
{
throw
JeecgBootException
.
error
(
errorMsg
.
toString
());
}
...
...
@@ -223,6 +247,12 @@ public class SubwaySectionController extends JeecgController<SubwaySection, ISub
Long
signBoardCount
=
signBoardManagementService
.
lambdaQuery
()
.
eq
(
SignBoardManagement:
:
getSectionId
,
id
)
.
count
();
Long
movementRecordsCount
=
movementRecordsMasterService
.
lambdaQuery
()
.
eq
(
MovementRecordsMaster:
:
getSubwaySectionId
,
id
)
.
count
();
Long
recordsMasterCount
=
recordsMasterCheckService
.
lambdaQuery
()
.
eq
(
RecordsMasterCheck:
:
getSubwaySectionId
,
id
)
.
count
();
boolean
isDel
=
false
;
if
(
railCount
!=
0
)
{
isDel
=
true
;
...
...
@@ -248,6 +278,12 @@ public class SubwaySectionController extends JeecgController<SubwaySection, ISub
if
(
signBoardCount
!=
0
)
{
isDel
=
true
;
}
if
(
movementRecordsCount
!=
0
)
{
isDel
=
true
;
}
if
(
recordsMasterCount
!=
0
)
{
isDel
=
true
;
}
if
(
isDel
)
{
failNum
++;
...
...
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