Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zhny
Project
Project
Details
Activity
Releases
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
王夏晖
zhny
Commits
f880d13e
Commit
f880d13e
authored
Oct 16, 2018
by
jichao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
设备报表--导出数据bug
parent
30d2059f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
31 deletions
+94
-31
BusDeviceRepository.java
...isoft/business/device/assets/dao/BusDeviceRepository.java
+8
-0
BusDeviceMeterRepository.java
...rcisoft/business/manage/dao/BusDeviceMeterRepository.java
+8
-0
BusProjectServiceImpl.java
...t/business/manage/service/impl/BusProjectServiceImpl.java
+78
-31
No files found.
src/main/java/org/rcisoft/business/device/assets/dao/BusDeviceRepository.java
View file @
f880d13e
...
...
@@ -106,5 +106,13 @@ public interface BusDeviceRepository extends Mapper<BusDevice> {
@Update
(
"<script>update bus_device set ERROR_NUM = ${errorNum} where DEV_NUM = #{devNum}</script>"
)
@ResultType
(
java
.
lang
.
Integer
.
class
)
Integer
updateErrorNum
(
String
devNum
,
Integer
errorNum
);
/**
* 根据proid查询
* @param proId
* @return
*/
@Select
(
"<script>select DEV_NUM as devNum, DEV_NM as devNm from bus_device where PRO_ID=#{proId}</script>"
)
List
<
Map
<
String
,
Object
>>
queryNm
(
@Param
(
"proId"
)
String
proId
);
}
src/main/java/org/rcisoft/business/manage/dao/BusDeviceMeterRepository.java
View file @
f880d13e
...
...
@@ -42,5 +42,13 @@ public interface BusDeviceMeterRepository extends BaseMapper<BusDeviceMeter> {
*/
@Select
(
"<script>select * from bus_device_meter where met_num = #{metNum}</script>"
)
List
<
Map
<
String
,
Object
>>
queryBusMetByMetNum
(
@Param
(
"metNum"
)
String
metNum
);
/**
* 根据proid查询
* @param proId
* @return
*/
@Select
(
"<script>select MET_NUM as devNum, MET_NM as devNm from bus_device_meter where PRO_ID=#{proId}</script>"
)
List
<
Map
<
String
,
Object
>>
queryNm
(
@Param
(
"proId"
)
String
proId
);
}
src/main/java/org/rcisoft/business/manage/service/impl/BusProjectServiceImpl.java
View file @
f880d13e
...
...
@@ -2,15 +2,20 @@ package org.rcisoft.business.manage.service.impl;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.beust.jcommander.internal.Lists
;
import
com.beust.jcommander.internal.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.hssf.usermodel.HSSFRow
;
import
org.apache.poi.hssf.usermodel.HSSFSheet
;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook
;
import
org.apache.poi.ss.usermodel.CellType
;
import
org.rcisoft.business.device.assets.dao.BusDeviceRepository
;
import
org.rcisoft.business.mainte.adaptive.dao.BusParamReferRepository
;
import
org.rcisoft.business.mainte.adaptive.entity.BusParamRefer
;
import
org.rcisoft.business.mainte.adaptive.proenum.ProEnum
;
import
org.rcisoft.business.manage.dao.BusDeviceMeterRepository
;
import
org.rcisoft.business.manage.entity.BusDeviceMeter
;
import
org.rcisoft.business.manage.entity.BusProject
;
import
org.rcisoft.business.manage.entity.BusSaving
;
import
org.rcisoft.business.manage.service.BusProjectAreaService
;
...
...
@@ -71,6 +76,10 @@ public class BusProjectServiceImpl implements BusProjectService {
private
TotalOriginalRepository
totalOriginalRepository
;
@Autowired
private
TotalSensorRepository
totalSensorRepository
;
@Autowired
private
BusDeviceMeterRepository
busDeviceMeterRepository
;
@Autowired
private
BusDeviceRepository
busDeviceRepository
;
private
Integer
saveRefer
(
String
proId
)
{
Integer
result
=
0
;
...
...
@@ -309,19 +318,31 @@ public class BusProjectServiceImpl implements BusProjectService {
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
List
<
Map
<
String
,
String
>>
excelList
=
new
ArrayList
<>();
// 1. 根据type判断,1:查询表具,2:查询传感器
if
(
excelParams
.
getType
()
==
1
)
{
Integer
type
=
excelParams
.
getType
();
// 1. 根据type判断,1:查询表具,2:查询传感器,3:设备
if
(
type
==
1
||
type
==
3
)
{
// 表具或设备名称集合
Map
<
String
,
String
>
nameMap
=
this
.
getNm
(
type
,
proId
);
Example
example
=
new
Example
(
TotalOriginal
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"proId"
,
proId
);
criteria
.
andBetween
(
"tm"
,
start
,
end
);
criteria
.
andIsNotNull
(
"waterV"
);
criteria
.
andIsNotNull
(
"elecV"
);
criteria
.
andIsNotNull
(
"gasV"
);
if
(
excelParams
.
getType
()
==
1
)
{
criteria
.
andIsNotNull
(
"waterV"
);
criteria
.
andIsNotNull
(
"elecV"
);
criteria
.
andIsNotNull
(
"gasV"
);
}
else
if
(
excelParams
.
getType
()
==
3
)
{
criteria
.
andIsNull
(
"waterV"
);
criteria
.
andIsNull
(
"elecV"
);
criteria
.
andIsNull
(
"gasV"
);
}
example
.
setOrderByClause
(
"DEV_NUM asc, TM asc"
);
List
<
TotalOriginal
>
originalList
=
totalOriginalRepository
.
selectByExample
(
example
);
//解析到 excelList 中
originalList
.
forEach
(
totalOriginal
->
{
String
devNum
=
totalOriginal
.
getDevNum
();
// 根据devNum获得devNm
String
devNm
=
nameMap
.
get
(
devNum
);
String
originalStr
=
totalOriginal
.
getOriginalStr
();
JSONObject
jsonObject
=
JSON
.
parseObject
(
originalStr
);
String
value
=
jsonObject
.
get
(
code
)
==
null
?
""
:
jsonObject
.
get
(
code
).
toString
();
...
...
@@ -329,11 +350,11 @@ public class BusProjectServiceImpl implements BusProjectService {
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"time"
,
time
);
map
.
put
(
"value"
,
value
);
map
.
put
(
"n
um"
,
totalOriginal
.
getDevNum
()
);
set
.
add
(
totalOriginal
.
getDevNum
()
);
map
.
put
(
"n
m"
,
devNm
);
set
.
add
(
devNm
);
excelList
.
add
(
map
);
});
}
else
{
}
else
if
(
type
==
2
)
{
Example
example
=
new
Example
(
TotalSensor
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"proId"
,
proId
);
...
...
@@ -352,38 +373,44 @@ public class BusProjectServiceImpl implements BusProjectService {
}
// 2. 生成excel
HSSFWorkbook
workbook
=
new
HSSFWorkbook
();
if
(
excelParams
.
getType
()
==
1
)
{
//表具
set
.
forEach
(
s
->
{
HSSFSheet
sheet
=
workbook
.
createSheet
(
s
);
if
(
excelList
.
size
()
==
0
)
{
HSSFSheet
sheet
=
workbook
.
createSheet
(
"sheet1"
);
HSSFRow
row
=
sheet
.
createRow
(
0
);
row
.
createCell
(
0
,
CellType
.
STRING
).
setCellValue
(
"没有数据"
);
}
else
{
if
(
type
==
1
||
type
==
3
)
{
//表具
set
.
forEach
(
s
->
{
HSSFSheet
sheet
=
workbook
.
createSheet
(
s
);
// 第一行:时间,参数
HSSFRow
row_1
=
sheet
.
createRow
(
0
);
row_1
.
createCell
(
0
,
CellType
.
STRING
).
setCellValue
(
"时间"
);
row_1
.
createCell
(
1
,
CellType
.
STRING
).
setCellValue
(
"参数:"
+
code
);
// 循环list放入数据
for
(
int
i
=
0
,
k
=
0
;
i
<
excelList
.
size
();
i
++)
{
Map
<
String
,
String
>
param
=
excelList
.
get
(
i
);
//dev_num 不一样,继续下一条循环
if
(!
StringUtils
.
equals
(
s
,
param
.
get
(
"nm"
)))
{
k
++;
continue
;
}
HSSFRow
row
=
sheet
.
createRow
(
i
-
k
+
1
);
row
.
createCell
(
0
,
CellType
.
STRING
).
setCellValue
(
param
.
get
(
"time"
));
//时间
row
.
createCell
(
1
,
CellType
.
STRING
).
setCellValue
(
param
.
get
(
"value"
));
//参数
}
});
}
else
{
//传感器
HSSFSheet
sheet
=
workbook
.
createSheet
(
"传感器"
);
// 第一行:时间,参数
HSSFRow
row_1
=
sheet
.
createRow
(
0
);
row_1
.
createCell
(
0
,
CellType
.
STRING
).
setCellValue
(
"时间"
);
row_1
.
createCell
(
1
,
CellType
.
STRING
).
setCellValue
(
"参数:"
+
code
);
// 循环list放入数据
for
(
int
i
=
0
,
k
=
0
;
i
<
excelList
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
excelList
.
size
();
i
++)
{
Map
<
String
,
String
>
param
=
excelList
.
get
(
i
);
//dev_num 不一样,继续下一条循环
if
(!
StringUtils
.
equals
(
s
,
param
.
get
(
"num"
)))
{
k
++;
continue
;
}
HSSFRow
row
=
sheet
.
createRow
(
i
-
k
+
1
);
HSSFRow
row
=
sheet
.
createRow
(
i
+
1
);
row
.
createCell
(
0
,
CellType
.
STRING
).
setCellValue
(
param
.
get
(
"time"
));
//时间
row
.
createCell
(
1
,
CellType
.
STRING
).
setCellValue
(
param
.
get
(
"value"
));
//参数
}
});
}
else
{
//传感器
HSSFSheet
sheet
=
workbook
.
createSheet
(
"sensor"
);
// 第一行:时间,参数
HSSFRow
row_1
=
sheet
.
createRow
(
0
);
row_1
.
createCell
(
0
,
CellType
.
STRING
).
setCellValue
(
"时间"
);
row_1
.
createCell
(
1
,
CellType
.
STRING
).
setCellValue
(
"参数:"
+
code
);
// 循环list放入数据
for
(
int
i
=
0
;
i
<
excelList
.
size
();
i
++)
{
Map
<
String
,
String
>
param
=
excelList
.
get
(
i
);
HSSFRow
row
=
sheet
.
createRow
(
i
+
1
);
row
.
createCell
(
0
,
CellType
.
STRING
).
setCellValue
(
param
.
get
(
"time"
));
//时间
row
.
createCell
(
1
,
CellType
.
STRING
).
setCellValue
(
param
.
get
(
"value"
));
//参数
}
}
// 3. 下载
...
...
@@ -398,5 +425,25 @@ public class BusProjectServiceImpl implements BusProjectService {
}
/**
* 根据id,type获取表具或设备的名称
* @param type 1:表具,2:设备
* @param proId
* @return
*/
private
Map
<
String
,
String
>
getNm
(
Integer
type
,
String
proId
)
{
Map
<
String
,
String
>
resultMap
=
Maps
.
newHashMap
();
List
<
Map
<
String
,
Object
>>
list
=
null
;
if
(
type
==
1
)
{
list
=
busDeviceMeterRepository
.
queryNm
(
proId
);
}
else
if
(
type
==
3
)
{
list
=
busDeviceRepository
.
queryNm
(
proId
);
}
list
.
forEach
(
map
->
{
resultMap
.
put
(
map
.
get
(
"devNum"
).
toString
(),
map
.
get
(
"devNm"
).
toString
());
});
return
resultMap
;
}
}
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