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
8f467709
Commit
8f467709
authored
May 04, 2018
by
王夏晖
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop
parents
efd7675b
c9bd220f
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
684 additions
and
1 deletion
+684
-1
ReportController.java
...t/business/device/report/controller/ReportController.java
+34
-0
ReportRepository.java
.../rcisoft/business/device/report/dao/ReportRepository.java
+42
-0
Original.java
...a/org/rcisoft/business/device/report/entity/Original.java
+28
-0
Report.java
...ava/org/rcisoft/business/device/report/entity/Report.java
+30
-0
ReportService.java
...rcisoft/business/device/report/service/ReportService.java
+20
-0
ReportServiceImpl.java
...usiness/device/report/service/impl/ReportServiceImpl.java
+175
-0
DeviceVo.java
.../java/org/rcisoft/business/device/report/vo/DeviceVo.java
+19
-0
Params.java
...in/java/org/rcisoft/business/device/report/vo/Params.java
+22
-0
ReportVo.java
.../java/org/rcisoft/business/device/report/vo/ReportVo.java
+22
-0
AnalysisController.java
...ness/evaluate/analysis/controller/AnalysisController.java
+64
-0
BusReportRepository.java
...t/business/evaluate/analysis/dao/BusReportRepository.java
+12
-0
BusReport.java
.../rcisoft/business/evaluate/analysis/entity/BusReport.java
+29
-0
AnalysisService.java
...t/business/evaluate/analysis/service/AnalysisService.java
+47
-0
AnalysisServiceImpl.java
...s/evaluate/analysis/service/impl/AnalysisServiceImpl.java
+103
-0
application.yml
src/main/resources/application.yml
+5
-1
ReportMapper.xml
src/main/resources/mapper/sys/device/report/ReportMapper.xml
+19
-0
AnalysisMapper.xml
src/main/resources/mapper/sys/evaluate/AnalysisMapper.xml
+13
-0
No files found.
src/main/java/org/rcisoft/business/device/report/controller/ReportController.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
device
.
report
.
controller
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.rcisoft.business.device.report.service.ReportService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletResponse
;
/**
* Created by JiChao on 2018/5/3.
* 设备维护--设备报表
*/
@RestController
@RequestMapping
(
"report"
)
public
class
ReportController
{
@Autowired
private
ReportService
reportServiceImpl
;
@ApiOperation
(
value
=
"下载文件"
,
notes
=
"下载文件"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"proId"
,
value
=
"项目主键"
,
required
=
true
,
dataType
=
"字符串"
),
@ApiImplicitParam
(
name
=
"year"
,
value
=
"年"
,
required
=
true
,
dataType
=
"数字"
),
@ApiImplicitParam
(
name
=
"month"
,
value
=
"月"
,
required
=
true
,
dataType
=
"数字"
),
@ApiImplicitParam
(
name
=
"month"
,
value
=
"日"
,
required
=
true
,
dataType
=
"数字"
)})
@RequestMapping
(
"/download"
)
public
void
download
(
HttpServletResponse
response
,
@RequestParam
String
proId
,
Integer
year
,
Integer
month
,
Integer
day
)
{
reportServiceImpl
.
download
(
response
,
proId
,
year
,
month
,
day
);
}
}
src/main/java/org/rcisoft/business/device/report/dao/ReportRepository.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
device
.
report
.
dao
;
import
org.apache.ibatis.annotations.ResultMap
;
import
org.apache.ibatis.annotations.Select
;
import
org.rcisoft.business.device.report.entity.Original
;
import
org.rcisoft.business.device.report.entity.Report
;
import
org.rcisoft.business.device.report.vo.Params
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* Created by JiChao on 2018/5/3.
*/
@Repository
public
interface
ReportRepository
{
/**
* 获取设备列表,原始格式
* @param params
* @return
*/
@Select
(
"<script>select b.DEV_NUM,b.DEV_NM,bp.PARAM,dp.P_SOURCE,dp.PARAM_NM "
+
"from bus_device_param bp,bus_devicetp_param dp,bus_device b "
+
"where bp.PARAM_CODE=dp.PARAM_CODE and b.PRO_ID=dp.PRO_ID and bp.DEV_NUM=b.DEV_NUM and b.PRO_ID=#{proId}"
+
"order by b.DEV_NUM,dp.P_SOURCE</script>"
)
@ResultMap
(
value
=
"report"
)
List
<
Report
>
reportList
(
Params
params
);
/**
* 获取数据
* @param params
* @return
*/
@Select
(
"<script>select t.DEV_NUM,t.TM,t.ORIGINAL_STR,s.SENSOR_JSON from total_original t,total_sensor s "
+
"where t.TM=s.TM and t.PRO_ID=s.PRO_ID and t.WATER_V is null and t.ELEC_V is null and t.GAS_V is null "
+
"and t.PRO_ID=#{proId} and date_format(t.TM, '%Y-%c-%e')=#{time} "
+
"order by t.DEV_NUM,t.TM</script>"
)
@ResultMap
(
value
=
"original"
)
List
<
Original
>
originalList
(
Params
params
);
}
src/main/java/org/rcisoft/business/device/report/entity/Original.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
device
.
report
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
/**
* Created by JiChao on 2018/5/3.
* 原始数据 + 传感器数据
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
Original
{
//设备num
private
String
devNum
;
//时间
private
String
tm
;
//设备参数集
private
String
originalStr
;
//传感器参数集
private
String
sensorJson
;
}
src/main/java/org/rcisoft/business/device/report/entity/Report.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
device
.
report
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
/**
* Created by JiChao on 2018/5/3.
* 设备信息
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
Report
{
//设备编号
private
String
devNum
;
//设备名称
private
String
devNm
;
//参数
private
String
param
;
//所属类型 1:设备 2:传感器
private
String
psource
;
//参数名称
private
String
paramNm
;
}
src/main/java/org/rcisoft/business/device/report/service/ReportService.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
device
.
report
.
service
;
import
javax.servlet.http.HttpServletResponse
;
/**
* Created by JiChao on 2018/5/3.
*/
public
interface
ReportService
{
/**
* 下载选定日期的设备报表
* @param response
* @param proId
* @param year
* @param month
* @param day
*/
void
download
(
HttpServletResponse
response
,
String
proId
,
Integer
year
,
Integer
month
,
Integer
day
);
}
src/main/java/org/rcisoft/business/device/report/service/impl/ReportServiceImpl.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
device
.
report
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.hssf.usermodel.HSSFCell
;
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.report.dao.ReportRepository
;
import
org.rcisoft.business.device.report.entity.Original
;
import
org.rcisoft.business.device.report.entity.Report
;
import
org.rcisoft.business.device.report.service.ReportService
;
import
org.rcisoft.business.device.report.vo.DeviceVo
;
import
org.rcisoft.business.device.report.vo.Params
;
import
org.rcisoft.business.device.report.vo.ReportVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Created by JiChao on 2018/5/3.
*/
@Service
public
class
ReportServiceImpl
implements
ReportService
{
@Value
(
"${filepath.equipment}"
)
private
String
filePath
;
@Autowired
private
ReportRepository
reportRepository
;
@Override
public
void
download
(
HttpServletResponse
response
,
String
proId
,
Integer
year
,
Integer
month
,
Integer
day
)
{
byte
[]
bytes
=
null
;
//如果有文件
String
fileName
=
filePath
+
proId
+
File
.
separator
+
year
+
File
.
separator
+
month
+
File
.
separator
+
day
+
".xls"
;
File
file
=
new
File
(
fileName
);
try
(
OutputStream
outputStream
=
response
.
getOutputStream
())
{
//如果不存在
if
(!
file
.
exists
())
file
=
this
.
createExcel
(
proId
,
year
,
month
,
day
,
file
);
//转成字节
bytes
=
FileUtils
.
readFileToByteArray
(
file
);
//设置下载头
response
.
setHeader
(
"Content-disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
day
+
".xls"
,
"iso-8859-1"
));
outputStream
.
write
(
bytes
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 查找,组合数据,生成文件
* @param proId
* @param year
* @param month
* @param day
* @param file
* @return
*/
private
File
createExcel
(
String
proId
,
Integer
year
,
Integer
month
,
Integer
day
,
File
file
)
{
//查询条件
Params
p
=
new
Params
(
proId
,
year
,
month
,
day
,
year
+
"-"
+
month
+
"-"
+
day
);
//得到设备的结果集
List
<
ReportVo
>
reportVoList
=
this
.
getReportVoList
(
p
);
//得到数据的结果集
List
<
Original
>
originalList
=
reportRepository
.
originalList
(
p
);
//---------------定义excel-----------------------
HSSFWorkbook
workbook
=
new
HSSFWorkbook
();
//---------------定义excel-----------------------
//循环设备结果集,每个设备创建一个sheet页
reportVoList
.
forEach
(
reportVo
->
{
//定义sheet
HSSFSheet
sheet
=
workbook
.
createSheet
(
reportVo
.
getDevNm
());
//创建表头
HSSFRow
head
=
sheet
.
createRow
(
0
);
List
<
DeviceVo
>
deviceList
=
reportVo
.
getDeviceList
();
//第一列填时间
head
.
createCell
(
0
,
CellType
.
STRING
).
setCellValue
(
"时间"
);
for
(
int
i
=
0
;
i
<
deviceList
.
size
();
i
++)
{
HSSFCell
cell
=
head
.
createCell
(
i
+
1
,
CellType
.
STRING
);
//表头填入参数名称
cell
.
setCellValue
(
deviceList
.
get
(
i
).
getParamNm
());
}
//定义一个增量
int
x
=
1
;
//循环数据
for
(
int
i
=
0
;
i
<
originalList
.
size
();
i
++)
{
Original
original
=
originalList
.
get
(
i
);
String
devNum
=
original
.
getDevNum
();
//判断devNum是否等于当前设备的devNum
if
(
StringUtils
.
equals
(
devNum
,
reportVo
.
getDevNum
()))
{
//第一列放入时间
HSSFRow
row
=
sheet
.
createRow
(
x
++);
row
.
createCell
(
0
,
CellType
.
STRING
).
setCellValue
(
original
.
getTm
());
//设备的参数对象
JSONObject
originalJson
=
JSONObject
.
parseObject
(
original
.
getOriginalStr
());
//传感器参数对象
JSONObject
sensorJson
=
JSONObject
.
parseObject
(
original
.
getSensorJson
());
//循环设备
for
(
int
j
=
0
;
j
<
deviceList
.
size
();
j
++)
{
DeviceVo
deviceVo
=
deviceList
.
get
(
j
);
String
param
=
deviceVo
.
getParam
();
//参数code
String
psource
=
deviceVo
.
getPsource
();
//参数来源,1:设备 2:传感器
//需要保存的结果
String
res
=
""
;
if
(
psource
.
equals
(
"1"
))
res
=
originalJson
.
get
(
param
)
==
null
?
""
:
originalJson
.
get
(
param
).
toString
();
else
if
(
psource
.
equals
(
"2"
))
res
=
sensorJson
.
get
(
param
)
==
null
?
""
:
sensorJson
.
get
(
param
).
toString
();
//依次放入行中
row
.
createCell
(
j
+
1
,
CellType
.
STRING
).
setCellValue
(
res
);
}
//用完删除当前行的数据
originalList
.
remove
(
i
--);
}
}
});
try
{
workbook
.
write
(
file
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
workbook
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
file
;
}
/**
* 转换结果集,变成设备的list,每个设备有自己的参数list
* list套list形式
* @param params proId
* @return
*/
private
List
<
ReportVo
>
getReportVoList
(
Params
params
)
{
//所有设备参数的list
List
<
Report
>
reportList
=
reportRepository
.
reportList
(
params
);
String
_devNum
=
""
;
//返回的结果
List
<
ReportVo
>
reportVoList
=
new
ArrayList
<>();
//记录最后结果集的标签
int
num
=
-
1
;
for
(
int
i
=
0
;
i
<
reportList
.
size
();
i
++)
{
Report
report
=
reportList
.
get
(
i
);
String
devNum
=
report
.
getDevNum
();
//不等于
if
(!
StringUtils
.
equals
(
_devNum
,
devNum
)){
_devNum
=
devNum
;
ReportVo
reportVo
=
new
ReportVo
();
reportVo
.
setDevNm
(
devNum
);
reportVo
.
setDevNum
(
report
.
getDevNum
());
//加入新的集合中
reportVoList
.
add
(
reportVo
);
num
++;
}
//从集合里取到需要添加的记录,将当前的值放入
ReportVo
reportVo
=
reportVoList
.
get
(
num
);
List
<
DeviceVo
>
deviceVoList
=
reportVo
.
getDeviceList
();
DeviceVo
deviceVo
=
new
DeviceVo
(
report
.
getParam
(),
report
.
getPsource
(),
report
.
getParamNm
());
deviceVoList
.
add
(
deviceVo
);
}
return
reportVoList
;
}
}
src/main/java/org/rcisoft/business/device/report/vo/DeviceVo.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
device
.
report
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* Created by JiChao on 2018/5/3.
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
DeviceVo
{
private
String
param
;
private
String
psource
;
private
String
paramNm
;
}
src/main/java/org/rcisoft/business/device/report/vo/Params.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
device
.
report
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* Created by JiChao on 2018/5/3.
* 需要用到的查询参数
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
Params
{
private
String
proId
;
private
Integer
year
;
private
Integer
month
;
private
Integer
day
;
private
String
time
;
}
src/main/java/org/rcisoft/business/device/report/vo/ReportVo.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
device
.
report
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Created by JiChao on 2018/5/3.
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
ReportVo
{
private
String
devNum
;
private
String
devNm
;
private
List
<
DeviceVo
>
deviceList
=
new
ArrayList
<>();
}
src/main/java/org/rcisoft/business/evaluate/analysis/controller/AnalysisController.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
evaluate
.
analysis
.
controller
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.rcisoft.business.evaluate.analysis.service.AnalysisService
;
import
org.rcisoft.core.constant.MessageConstant
;
import
org.rcisoft.core.model.PersistModel
;
import
org.rcisoft.core.result.Result
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
/**
* Created by JiChao on 2018/5/2.
* 评估--分析报告
*/
@RestController
@RequestMapping
(
"analysis"
)
public
class
AnalysisController
{
@Autowired
private
AnalysisService
analysisServiceImpl
;
@ApiOperation
(
value
=
"上传文件"
,
notes
=
"上传文件"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"proId"
,
value
=
"项目主键"
,
required
=
true
,
dataType
=
"字符串"
),
@ApiImplicitParam
(
name
=
"year"
,
value
=
"年"
,
required
=
true
,
dataType
=
"数字"
),
@ApiImplicitParam
(
name
=
"month"
,
value
=
"月"
,
required
=
true
,
dataType
=
"数字"
)
})
@RequestMapping
(
"/upload"
)
public
Result
upload
(
@RequestParam
String
proId
,
@RequestParam
Integer
year
,
@RequestParam
Integer
month
,
@RequestParam
MultipartFile
file
)
{
Integer
result
=
analysisServiceImpl
.
upload
(
proId
,
year
,
month
,
file
);
return
Result
.
builder
(
new
PersistModel
(
result
),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
result
);
}
@ApiOperation
(
value
=
"下载文件"
,
notes
=
"下载文件"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"文件的主键"
,
required
=
true
,
dataType
=
"数字"
)})
@RequestMapping
(
"/download"
)
public
void
download
(
HttpServletResponse
response
,
@RequestParam
Integer
id
)
{
analysisServiceImpl
.
download
(
response
,
id
);
}
@ApiOperation
(
value
=
"查询列表"
,
notes
=
"根据年份、项目主键查询已经存在的文件列表,最多返回12条记录"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"proId"
,
value
=
"项目主键"
,
required
=
true
,
dataType
=
"字符串"
),
@ApiImplicitParam
(
name
=
"year"
,
value
=
"年"
,
required
=
true
,
dataType
=
"数字"
)
})
@RequestMapping
(
"/analysisFile"
)
public
Result
analysisFile
(
@RequestParam
String
proId
,
@RequestParam
Integer
year
)
{
return
Result
.
builder
(
new
PersistModel
(
1
),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
analysisServiceImpl
.
analysisFile
(
proId
,
year
));
}
@ApiOperation
(
value
=
"删除文件"
,
notes
=
"删除文件"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"文件的主键"
,
required
=
true
,
dataType
=
"数字"
)})
@RequestMapping
(
"/delete"
)
public
Result
delete
(
@RequestParam
Integer
id
)
{
Integer
result
=
analysisServiceImpl
.
delete
(
id
);
return
Result
.
builder
(
new
PersistModel
(
result
),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
result
);
}
}
src/main/java/org/rcisoft/business/evaluate/analysis/dao/BusReportRepository.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
evaluate
.
analysis
.
dao
;
import
org.rcisoft.business.evaluate.analysis.entity.BusReport
;
import
org.springframework.stereotype.Repository
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* Created by JiChao on 2018/5/3.
*/
@Repository
public
interface
BusReportRepository
extends
Mapper
<
BusReport
>
{
}
src/main/java/org/rcisoft/business/evaluate/analysis/entity/BusReport.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
evaluate
.
analysis
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
/**
* Created by JiChao on 2018/5/3.
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table
(
name
=
"bus_report"
)
public
class
BusReport
implements
Serializable
{
@Id
private
Integer
id
;
private
String
proId
;
private
Integer
year
;
private
Integer
month
;
private
String
path
;
}
src/main/java/org/rcisoft/business/evaluate/analysis/service/AnalysisService.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
evaluate
.
analysis
.
service
;
import
org.rcisoft.business.evaluate.analysis.entity.BusReport
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
/**
* Created by JiChao on 2018/5/3.
*/
public
interface
AnalysisService
{
/**
* 上传文件,数据库新增数据,文件保存
* 如果已经存在,删除之前的(删文件,删数据库记录)
* @param proId
* @param year
* @param month
* @param file
* @return
*/
Integer
upload
(
String
proId
,
Integer
year
,
Integer
month
,
MultipartFile
file
);
/**
* 查出地址,转换成流,发送到前台
* @param response
* @param id
*/
void
download
(
HttpServletResponse
response
,
Integer
id
);
/**
* 查询列表
* @param proId
* @param year
* @return
*/
List
<
BusReport
>
analysisFile
(
String
proId
,
Integer
year
);
/**
* 删除文件,删除数据库记录
* @param id
* @return
*/
Integer
delete
(
Integer
id
);
}
src/main/java/org/rcisoft/business/evaluate/analysis/service/impl/AnalysisServiceImpl.java
0 → 100644
View file @
8f467709
package
org
.
rcisoft
.
business
.
evaluate
.
analysis
.
service
.
impl
;
import
org.apache.commons.io.FileUtils
;
import
org.rcisoft.business.evaluate.analysis.dao.BusReportRepository
;
import
org.rcisoft.business.evaluate.analysis.entity.BusReport
;
import
org.rcisoft.business.evaluate.analysis.service.AnalysisService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.util.List
;
/**
* Created by JiChao on 2018/5/3.
*/
@Service
public
class
AnalysisServiceImpl
implements
AnalysisService
{
@Value
(
"${filepath.analysis}"
)
private
String
filepath
;
@Autowired
private
BusReportRepository
busReportRepository
;
@Transactional
@Override
public
Integer
upload
(
String
proId
,
Integer
year
,
Integer
month
,
MultipartFile
file
)
{
int
result
=
0
;
BusReport
busReport
=
new
BusReport
(
null
,
proId
,
year
,
month
,
null
);
String
fileName
=
file
.
getOriginalFilename
();
String
suffixName
=
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
));
//文件路径
String
savePath
=
filepath
+
proId
+
File
.
separator
+
year
+
File
.
separator
+
month
+
suffixName
;
File
saveFile
=
new
File
(
savePath
);
//如果存在,删除文件,删除数据库记录
if
(
saveFile
.
exists
())
{
saveFile
.
delete
();
busReportRepository
.
delete
(
busReport
);
}
//保存
busReport
.
setPath
(
savePath
);
try
{
FileUtils
.
copyInputStreamToFile
(
file
.
getInputStream
(),
saveFile
);
result
=
busReportRepository
.
insert
(
busReport
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
@Override
public
void
download
(
HttpServletResponse
response
,
Integer
id
)
{
BusReport
busReport
=
new
BusReport
();
busReport
.
setId
(
id
);
busReport
=
busReportRepository
.
selectOne
(
busReport
);
String
path
=
busReport
.
getPath
();
String
filename
=
busReport
.
getProId
()
+
"-"
+
busReport
.
getYear
()
+
"-"
+
busReport
.
getMonth
()
+
path
.
substring
(
path
.
lastIndexOf
(
"."
));
try
(
OutputStream
outputStream
=
response
.
getOutputStream
())
{
//获取文件字节
byte
[]
bytes
=
FileUtils
.
readFileToByteArray
(
new
File
(
path
));
//设置下载头
response
.
setHeader
(
"Content-disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
filename
,
"iso-8859-1"
));
outputStream
.
write
(
bytes
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
@Override
public
List
<
BusReport
>
analysisFile
(
String
proId
,
Integer
year
)
{
BusReport
busReport
=
new
BusReport
();
busReport
.
setProId
(
proId
);
busReport
.
setYear
(
year
);
List
<
BusReport
>
list
=
busReportRepository
.
select
(
busReport
);
list
.
forEach
(
b
->
{
b
.
setProId
(
null
);
b
.
setYear
(
null
);
b
.
setPath
(
null
);
});
return
list
;
}
@Transactional
@Override
public
Integer
delete
(
Integer
id
)
{
BusReport
busReport
=
new
BusReport
();
busReport
.
setId
(
id
);
busReport
=
busReportRepository
.
selectOne
(
busReport
);
String
path
=
busReport
.
getPath
();
File
file
=
new
File
(
path
);
if
(
file
.
exists
())
{
file
.
delete
();
}
return
busReportRepository
.
delete
(
busReport
);
}
}
src/main/resources/application.yml
View file @
8f467709
spring
:
profiles
:
active
:
dev
\ No newline at end of file
active
:
dev
filepath
:
analysis
:
D:\zhny\filepath\analysis\
equipment
:
D:\zhny\filepath\equipment\
\ No newline at end of file
src/main/resources/mapper/sys/device/report/ReportMapper.xml
0 → 100644
View file @
8f467709
<?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=
"org.rcisoft.business.device.report.dao.ReportRepository"
>
<resultMap
id=
"report"
type=
"org.rcisoft.business.device.report.entity.Report"
>
<result
column=
"DEV_NUM"
jdbcType=
"VARCHAR"
property=
"devNum"
/>
<result
column=
"DEV_NM"
jdbcType=
"VARCHAR"
property=
"devNm"
/>
<result
column=
"PARAM"
jdbcType=
"VARCHAR"
property=
"param"
/>
<result
column=
"P_SOURCE"
jdbcType=
"VARCHAR"
property=
"psource"
/>
<result
column=
"PARAM_NM"
jdbcType=
"VARCHAR"
property=
"paramNm"
/>
</resultMap>
<resultMap
id=
"original"
type=
"org.rcisoft.business.device.report.entity.Original"
>
<result
column=
"DEV_NUM"
jdbcType=
"VARCHAR"
property=
"devNum"
/>
<result
column=
"TM"
jdbcType=
"TIMESTAMP"
property=
"tm"
/>
<result
column=
"ORIGINAL_STR"
jdbcType=
"VARCHAR"
property=
"originalStr"
/>
<result
column=
"SENSOR_JSON"
jdbcType=
"VARCHAR"
property=
"sensorJson"
/>
</resultMap>
</mapper>
\ No newline at end of file
src/main/resources/mapper/sys/evaluate/AnalysisMapper.xml
0 → 100644
View file @
8f467709
<?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=
"org.rcisoft.business.evaluate.analysis.dao.BusReportRepository"
>
<resultMap
id=
"BaseResultMap"
type=
"org.rcisoft.business.evaluate.analysis.entity.BusReport"
>
<id
column=
"ID"
jdbcType=
"INTEGER"
property=
"id"
/>
<result
column=
"PRO_ID"
jdbcType=
"VARCHAR"
property=
"proId"
/>
<result
column=
"YEAR"
jdbcType=
"INTEGER"
property=
"year"
/>
<result
column=
"MONTH"
jdbcType=
"INTEGER"
property=
"month"
/>
<result
column=
"PATH"
jdbcType=
"VARCHAR"
property=
"path"
/>
</resultMap>
<!--<cache type="${corePackag!}.util.RedisCache"/>-->
</mapper>
\ No newline at end of file
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