Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
indicators
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
zhangkb
indicators
Commits
c1b8f152
Commit
c1b8f152
authored
Sep 23, 2020
by
hzc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
短板管理缺下发对象
parent
ceedd548
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1008 additions
and
1 deletion
+1008
-1
ShortboardTaskCtrl.java
...eymobile/indicators/api/hytobacco/ShortboardTaskCtrl.java
+85
-0
ShortboardTaskValCtrl.java
...obile/indicators/api/hytobacco/ShortboardTaskValCtrl.java
+202
-0
Custemhandler.java
...ain/java/com/keymobile/indicators/conf/Custemhandler.java
+70
-0
Constants.java
...ain/java/com/keymobile/indicators/constant/Constants.java
+22
-0
ShortBoardTask.java
...le/indicators/model/entity/shortboard/ShortBoardTask.java
+174
-0
ShortBoardTaskVal.java
...indicators/model/entity/shortboard/ShortBoardTaskVal.java
+90
-0
ShortboardAnalysisValue.java
...tors/model/entity/shortboard/ShortboardAnalysisValue.java
+18
-0
ShortboardParam.java
...e/indicators/model/entity/shortboard/ShortboardParam.java
+27
-0
ShortboardRecord.java
.../indicators/model/entity/shortboard/ShortboardRecord.java
+3
-1
ShortboardTaskMapper.java
...dicators/model/mapper/indmapper/ShortboardTaskMapper.java
+25
-0
ShortboardTaskValMapper.java
...ators/model/mapper/indmapper/ShortboardTaskValMapper.java
+9
-0
ShortboardTaskService.java
...e/indicators/service/hytobacco/ShortboardTaskService.java
+188
-0
ShortboardTaskMapper.xml
src/main/resources/mybatis/mapping/ShortboardTaskMapper.xml
+78
-0
ShortboardTaskValMapper.xml
...ain/resources/mybatis/mapping/ShortboardTaskValMapper.xml
+17
-0
No files found.
src/main/java/com/keymobile/indicators/api/hytobacco/ShortboardTaskCtrl.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
api
.
hytobacco
;
import
com.keymobile.indicators.model.entity.shortboard.ShortBoardTask
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardParam
;
import
com.keymobile.indicators.result.Result
;
import
com.keymobile.indicators.service.hytobacco.ShortboardTaskService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.*
;
@Api
(
tags
=
{
"短板管理-短板清单,结果汇总"
})
@RequestMapping
(
"ShortboardTask"
)
@RestController
@Slf4j
public
class
ShortboardTaskCtrl
{
@Autowired
private
ShortboardTaskService
shortboardTaskService
;
@ApiOperation
(
value
=
"下发短板"
,
notes
=
"下发短板"
)
@PostMapping
(
"assign"
)
public
Result
assignShortboard
(
@RequestBody
ShortBoardTask
shortBoardTask
){
return
shortboardTaskService
.
assignShortboard
(
shortBoardTask
);
}
@ApiOperation
(
value
=
"查询短板清单"
,
notes
=
"查询短板清单"
)
@PostMapping
(
"find"
)
public
Page
<
ShortBoardTask
>
find
(
@RequestBody
ShortboardParam
shortboardParam
){
PageRequest
request
=
PageRequest
.
of
(
shortboardParam
.
getPage
()-
1
,
shortboardParam
.
getSize
());
shortboardParam
.
setOffset
(
request
.
getOffset
());
List
<
ShortBoardTask
>
lists
=
new
ArrayList
<>();
long
count
=
shortboardTaskService
.
selectCountByParam
(
shortboardParam
);
if
(
count
>
0
){
lists
=
shortboardTaskService
.
selectPageByParam
(
shortboardParam
);
}
return
new
PageImpl
<>(
lists
,
request
,
count
);
}
@ApiOperation
(
value
=
"更新短板状态"
,
notes
=
"更新短板状态 1是短板清单 2待改善 3以改善 4加入白名单 5不合格"
)
@GetMapping
(
"updateStatus"
)
public
Result
updateStatus
(
@ApiParam
(
"短板任务id"
)
@RequestParam
(
name
=
"taskId"
)
Integer
taskId
,
@ApiParam
(
"状态值"
)
@RequestParam
(
"status"
)
Integer
status
){
return
shortboardTaskService
.
updateTaskStatus
(
taskId
,
status
);
}
@ApiOperation
(
value
=
"获取短板状态分析数据"
,
notes
=
"获取短板状态分析数据"
)
@PostMapping
(
"analysisStatus"
)
public
List
<
ShortboardAnalysisValue
>
analysisStatus
(
@RequestBody
ShortboardParam
shortboardParam
){
return
shortboardTaskService
.
analysisStatus
(
shortboardParam
);
}
@ApiOperation
(
value
=
"获取短板指标目录分析数据"
,
notes
=
"获取短板指标目录分析数据"
)
@PostMapping
(
"analysisDrive"
)
public
List
<
ShortboardAnalysisValue
>
analysisDrive
(
@RequestBody
ShortboardParam
shortboardParam
){
return
shortboardTaskService
.
analysisDrive
(
shortboardParam
);
}
@ApiOperation
(
value
=
"获取短板单位分析数据"
,
notes
=
"获取短板单位分析数据"
)
@PostMapping
(
"analysisUnit"
)
public
List
<
ShortboardAnalysisValue
>
analysisUnit
(
@RequestBody
ShortboardParam
shortboardParam
){
return
shortboardTaskService
.
analysisUnit
(
shortboardParam
);
}
@ApiOperation
(
value
=
"查询短板结果汇总表格数据"
,
notes
=
"查询短板结果汇总表格数据"
)
@PostMapping
(
"analysisData"
)
public
Page
<
ShortBoardTask
>
analysisData
(
@RequestBody
ShortboardParam
shortboardParam
){
PageRequest
request
=
PageRequest
.
of
(
shortboardParam
.
getPage
()-
1
,
shortboardParam
.
getSize
());
shortboardParam
.
setOffset
(
request
.
getOffset
());
List
<
ShortBoardTask
>
lists
=
new
ArrayList
<>();
long
count
=
shortboardTaskService
.
selectCountByParam
(
shortboardParam
);
if
(
count
>
0
){
lists
=
shortboardTaskService
.
selectAnalysisDataPageByParam
(
shortboardParam
);
}
return
new
PageImpl
<>(
lists
,
request
,
count
);
}
}
src/main/java/com/keymobile/indicators/api/hytobacco/ShortboardTaskValCtrl.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
api
.
hytobacco
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.support.ExcelTypeEnum
;
import
com.alibaba.excel.write.builder.ExcelWriterBuilder
;
import
com.google.gson.Gson
;
import
com.keymobile.indicators.conf.Custemhandler
;
import
com.keymobile.indicators.model.entity.shortboard.ShortBoardTask
;
import
com.keymobile.indicators.model.entity.shortboard.ShortBoardTaskVal
;
import
com.keymobile.indicators.result.Result
;
import
com.keymobile.indicators.service.hytobacco.ShortboardTaskService
;
import
com.keymobile.indicators.utils.DateUtils
;
import
com.keymobile.indicators.utils.ExcelUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Slf4j
@RestController
@RequestMapping
(
"ShortboardTaskVal"
)
@Api
(
tags
=
{
"短板管理-数据填报"
})
public
class
ShortboardTaskValCtrl
{
@Autowired
private
ShortboardTaskService
shortboardTaskService
;
@ApiOperation
(
value
=
"查找任务清单填报值"
,
notes
=
"通过id查找任务清单填报值"
)
@GetMapping
(
"findById"
)
public
ShortBoardTaskVal
findById
(
@RequestParam
Integer
shortBoardTaskId
){
return
shortboardTaskService
.
selectShortBoardTaskValByTaskIdId
(
shortBoardTaskId
);
}
@ApiOperation
(
value
=
"保存短板清单填报(在线填报)"
,
notes
=
"保存短板清单填报(在线填报)"
)
@PostMapping
(
"saveOrUpdate"
)
public
Result
saveOrUpdate
(
@RequestBody
ShortBoardTaskVal
shortBoardTaskVal
){
return
shortboardTaskService
.
saveOrUpdateShortBoardTaskVal
(
shortBoardTaskVal
);
}
@ApiOperation
(
value
=
"保存短板清单填报(excel填报)"
,
notes
=
"保存短板清单填报(excel填报)"
)
@PostMapping
(
"importData"
)
public
Result
saveDataByExcel
(
@RequestParam
(
"file"
)
MultipartFile
file
,
@ApiParam
(
"短板清单id"
)
@RequestParam
(
"id"
)
Integer
id
){
ShortBoardTaskVal
shortBoardTaskVal
=
shortboardTaskService
.
selectShortBoardTaskValByTaskIdId
(
id
);
if
(
shortBoardTaskVal
==
null
){
shortBoardTaskVal
=
new
ShortBoardTaskVal
();
}
shortBoardTaskVal
.
setShortBoardTaskId
(
id
);
int
x
=
6
;
int
y
=
1
;
int
size
=
6
;
InputStream
is
=
null
;
try
{
is
=
file
.
getInputStream
();
XSSFWorkbook
xssfWorkbook
=
new
XSSFWorkbook
(
is
);
XSSFSheet
sheet
=
xssfWorkbook
.
getSheetAt
(
0
);
List
<
String
>
values
=
new
ArrayList
<>();
for
(
int
r
=
0
;
r
<
size
;
r
++){
XSSFRow
row
=
sheet
.
getRow
(
x
+
r
);
String
val1
=
ExcelUtil
.
getXSSFCellValue
(
row
.
getCell
(
y
));
values
.
add
(
val1
);
}
shortBoardTaskVal
.
setAnalysisCauses
(
values
.
get
(
0
));
shortBoardTaskVal
.
setHandleUser
(
values
.
get
(
1
));
shortBoardTaskVal
.
setCreateMeasure
(
values
.
get
(
2
));
shortBoardTaskVal
.
setImproveUser
(
values
.
get
(
3
));
shortBoardTaskVal
.
setStartMeasure
(
values
.
get
(
4
));
shortBoardTaskVal
.
setStartUser
(
values
.
get
(
5
));
//保存
shortboardTaskService
.
saveOrUpdateShortBoardTaskVal
(
shortBoardTaskVal
);
}
catch
(
Exception
e
)
{
log
.
error
(
"解析短板填报excel出错"
);
e
.
printStackTrace
();
}
return
Result
.
genOkResult
();
}
@ApiOperation
(
value
=
"下载excel模板"
,
notes
=
"下载excel模板"
)
@GetMapping
(
"exportToExcel"
)
public
void
exportToExcel
(
@RequestParam
(
"id"
)
Integer
id
,
HttpServletResponse
response
)
throws
IOException
{
try
{
List
<
List
<
String
>>
headers
=
new
ArrayList
<>();
List
<
List
<
String
>>
datas
=
new
ArrayList
<>();
response
.
setContentType
(
"application/vnd.ms-excel"
);
response
.
setCharacterEncoding
(
"utf-8"
);
ExcelWriterBuilder
writerBuilder
=
EasyExcel
.
write
(
response
.
getOutputStream
());
ShortBoardTaskVal
shortBoardTaskVal
=
shortboardTaskService
.
selectShortBoardTaskValByTaskIdId
(
id
);
ShortBoardTask
shortBoardTask
=
shortboardTaskService
.
selectShortBoardTaskById
(
id
);
String
fileName
=
URLEncoder
.
encode
(
"短板任务清单填报"
,
"UTF-8"
);
String
levelArr
[]
=
{
"省"
,
"市"
,
"县"
};
String
level
=
""
;
if
(
StringUtils
.
isNotBlank
(
shortBoardTask
.
getCode
())){
level
=
levelArr
[
shortBoardTask
.
getCode
().
length
()/
3
];
}
List
<
String
>
column1
=
new
ArrayList
<>();
column1
.
add
(
""
);
List
<
String
>
column2
=
new
ArrayList
<>();
column2
.
add
(
"指标名称"
);
column2
.
add
(
shortBoardTask
.
getDriveName
());
column2
.
add
(
"下发人"
);
column2
.
add
(
shortBoardTask
.
getCreateUser
());
List
<
String
>
column3
=
new
ArrayList
<>();
column3
.
add
(
"任务层级"
);
column3
.
add
(
level
);
column3
.
add
(
"接收人"
);
column3
.
add
(
shortBoardTask
.
getEnterUser
());
List
<
String
>
column4
=
new
ArrayList
<>();
column4
.
add
(
"单位"
);
column4
.
add
(
shortBoardTask
.
getUnitName
());
column4
.
add
(
"指标值"
);
column4
.
add
(
shortBoardTask
.
getValue
());
List
<
String
>
column5
=
new
ArrayList
<>();
column5
.
add
(
"短板规则描述"
);
column5
.
add
(
shortBoardTask
.
getShortboardDesc
());
column5
.
add
(
"下发时间"
);
column5
.
add
(
DateUtils
.
formatDate
(
shortBoardTask
.
getStartTime
(),
"yyyy-MM-dd HH:mm:ss"
));
List
<
String
>
column6
=
new
ArrayList
<>();
column6
.
add
(
"截止时间"
);
column6
.
add
(
DateUtils
.
formatDate
(
shortBoardTask
.
getEndTime
(),
"yyyy-MM-dd HH:mm:ss"
));
column6
.
add
(
"下发原因"
);
column6
.
add
(
shortBoardTask
.
getCause
());
//短板原因分析
List
<
String
>
column7
=
new
ArrayList
<>();
column7
.
add
(
"短板原因分析"
);
column7
.
add
(
""
);
//短板受理员
List
<
String
>
column8
=
new
ArrayList
<>();
column8
.
add
(
"短板受理员"
);
column8
.
add
(
""
);
//制定改善措施
List
<
String
>
column9
=
new
ArrayList
<>();
column9
.
add
(
"制定改善措施"
);
column9
.
add
(
""
);
//改善人员
List
<
String
>
column10
=
new
ArrayList
<>();
column10
.
add
(
"改善人员"
);
column10
.
add
(
""
);
//执行改善措施
List
<
String
>
column11
=
new
ArrayList
<>();
column11
.
add
(
"执行改善措施"
);
column11
.
add
(
""
);
//执行人员
List
<
String
>
column12
=
new
ArrayList
<>();
column12
.
add
(
"执行人员"
);
column12
.
add
(
""
);
datas
.
add
(
column2
);
datas
.
add
(
column3
);
datas
.
add
(
column4
);
datas
.
add
(
column5
);
datas
.
add
(
column6
);
datas
.
add
(
column7
);
datas
.
add
(
column8
);
datas
.
add
(
column9
);
datas
.
add
(
column10
);
datas
.
add
(
column11
);
datas
.
add
(
column12
);
List
<
String
>
header
=
new
ArrayList
<>();
header
.
add
(
"短板清单填报"
);
headers
.
add
(
column1
);
headers
.
add
(
header
);
response
.
setHeader
(
"Content-disposition"
,
"attachment;filename="
+
fileName
+
".xlsx"
);
writerBuilder
.
excelType
(
ExcelTypeEnum
.
XLSX
).
registerWriteHandler
(
new
Custemhandler
()).
head
(
headers
)
.
autoCloseStream
(
false
).
sheet
(
"短板填报"
).
doWrite
(
datas
);
}
catch
(
Exception
e
){
log
.
error
(
"生成excel模板出错"
,
e
);
response
.
reset
();
response
.
setContentType
(
"application/json"
);
response
.
setCharacterEncoding
(
"utf-8"
);
Map
<
String
,
String
>
map
=
new
HashMap
<>(
4
);
map
.
put
(
"status"
,
"failure"
);
map
.
put
(
"message"
,
"导出数据失败:"
+
e
.
getMessage
());
Gson
gson
=
new
Gson
();
response
.
getWriter
().
write
(
gson
.
toJson
(
map
));
}
}
}
src/main/java/com/keymobile/indicators/conf/Custemhandler.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
conf
;
import
com.alibaba.excel.enums.CellDataTypeEnum
;
import
com.alibaba.excel.metadata.CellData
;
import
com.alibaba.excel.metadata.Head
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.write.metadata.holder.WriteSheetHolder
;
import
com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy
;
import
org.apache.poi.ss.usermodel.Cell
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
Custemhandler
extends
AbstractColumnWidthStyleStrategy
{
private
static
final
int
MAX_COLUMN_WIDTH
=
255
;
private
Map
<
Integer
,
Map
<
Integer
,
Integer
>>
CACHE
=
new
HashMap
(
8
);
public
Custemhandler
()
{
}
protected
void
setColumnWidth
(
WriteSheetHolder
writeSheetHolder
,
List
<
CellData
>
cellDataList
,
Cell
cell
,
Head
head
,
Integer
relativeRowIndex
,
Boolean
isHead
)
{
boolean
needSetWidth
=
isHead
||
!
CollectionUtils
.
isEmpty
(
cellDataList
);
if
(
needSetWidth
)
{
Map
<
Integer
,
Integer
>
maxColumnWidthMap
=
(
Map
)
CACHE
.
get
(
writeSheetHolder
.
getSheetNo
());
if
(
maxColumnWidthMap
==
null
)
{
maxColumnWidthMap
=
new
HashMap
(
16
);
CACHE
.
put
(
writeSheetHolder
.
getSheetNo
(),
maxColumnWidthMap
);
}
Integer
columnWidth
=
this
.
dataLength
(
cellDataList
,
cell
,
isHead
);
if
(
columnWidth
>=
0
)
{
if
(
columnWidth
>
255
)
{
columnWidth
=
255
;
}
Integer
maxColumnWidth
=
(
Integer
)((
Map
)
maxColumnWidthMap
).
get
(
cell
.
getColumnIndex
());
if
(
maxColumnWidth
==
null
||
columnWidth
>
maxColumnWidth
)
{
((
Map
)
maxColumnWidthMap
).
put
(
cell
.
getColumnIndex
(),
columnWidth
);
writeSheetHolder
.
getSheet
().
setColumnWidth
(
cell
.
getColumnIndex
(),
columnWidth
*
256
);
}
}
}
}
private
Integer
dataLength
(
List
<
CellData
>
cellDataList
,
Cell
cell
,
Boolean
isHead
)
{
if
(
isHead
)
{
return
cell
.
getStringCellValue
().
getBytes
().
length
;
}
else
{
CellData
cellData
=
(
CellData
)
cellDataList
.
get
(
0
);
CellDataTypeEnum
type
=
cellData
.
getType
();
if
(
type
==
null
)
{
return
-
1
;
}
else
{
switch
(
type
)
{
case
STRING:
return
cellData
.
getStringValue
().
getBytes
().
length
;
case
BOOLEAN:
return
cellData
.
getBooleanValue
().
toString
().
getBytes
().
length
;
case
NUMBER:
return
cellData
.
getNumberValue
().
toString
().
getBytes
().
length
;
default
:
return
-
1
;
}
}
}
}
}
src/main/java/com/keymobile/indicators/constant/Constants.java
View file @
c1b8f152
...
@@ -209,4 +209,26 @@ public class Constants {
...
@@ -209,4 +209,26 @@ public class Constants {
* 基础项单位
* 基础项单位
*/
*/
public
static
final
String
BASE_IND_UNIT
=
"BASE_IND_UNIT"
;
public
static
final
String
BASE_IND_UNIT
=
"BASE_IND_UNIT"
;
/**
* 短板状态 短板清单
*/
public
static
final
int
SHORT_BOARD_START
=
1
;
/**
* 短板状态 待改善
*/
public
static
final
int
SHORT_BOARD_START_IMPROVED
=
2
;
/**
* 短板状态 以改善
*/
public
static
final
int
SHORT_BOARD_IMPROVED_PASS
=
3
;
/**
* 短板状态 加入白名单
*/
public
static
final
int
SHORT_BOARD_WHITE_LIST
=
4
;
/**
* 短板状态 不合格
*/
public
static
final
int
SHORT_BOARD_IMPROVED_BELOW
=
5
;
}
}
src/main/java/com/keymobile/indicators/model/entity/shortboard/ShortBoardTask.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
model
.
entity
.
shortboard
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 短板任务清单
* @Author hzc
* @Date 2020-09-21
*/
@Data
@Table
(
name
=
"short_board_task"
)
@ApiModel
(
"短板清单"
)
public
class
ShortBoardTask
implements
Serializable
{
private
static
final
Long
serialVersionUID
=
6561627308939148332L
;
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@Column
(
name
=
"id"
)
private
Integer
id
;
/**
* 预警数据id
*/
@Column
(
name
=
"record_id"
)
private
Integer
recordId
;
/**
* 下发时间
*/
@Column
(
name
=
"start_time"
)
private
Date
startTime
;
@Column
(
name
=
"drive_name"
)
private
String
driveName
;
/**
* 截止时间
*/
@Column
(
name
=
"end_time"
)
private
Date
endTime
;
/**
* 短板名称
*/
@Column
(
name
=
"shortboard_name"
)
private
String
shortboardName
;
/**
* 下发原因
*/
@Column
(
name
=
"cause"
)
private
String
cause
;
/**
* 短板值
*/
@Column
(
name
=
"value"
)
private
String
value
;
/**
* 下发人
*/
@Column
(
name
=
"create_user"
)
private
String
createUser
;
/**
* 下发人id
*/
@Column
(
name
=
"create_user_id"
)
private
String
createUserId
;
/**
* 接收人id
*/
@Column
(
name
=
"enter_user_id"
)
private
String
enterUserId
;
/**
* 接收人
*/
@Column
(
name
=
"enter_user"
)
private
String
enterUser
;
/**
* 审核接收人
*/
@Column
(
name
=
"audit_user"
)
private
String
auditUser
;
/**
* 审核接收人id
*/
@Column
(
name
=
"audit_user_id"
)
private
String
auditUserId
;
/**
* 单位id
*/
@Column
(
name
=
"unit_id"
)
private
String
unitId
;
/**
* 单位名称
*/
@Column
(
name
=
"unit_name"
)
private
String
unitName
;
/**
* 短板规则描述
*/
@Column
(
name
=
"shortboard_desc"
)
private
String
shortboardDesc
;
/**
* 指标路径(判别指标类型)
*/
@Column
(
name
=
"drive_id_path"
)
private
String
driveIdPath
;
/**
* 清单状态
*/
@Column
(
name
=
"status"
)
private
Integer
status
;
/**
* 机构编码
*/
@Column
(
name
=
"code"
)
private
String
code
;
/**
* 更新时间
*/
@Column
(
name
=
"update_time"
)
private
Date
updateTime
;
/**
* 创建时间
*/
@Column
(
name
=
"create_time"
)
private
Date
createTime
;
/**
* 更新者
*/
@Column
(
name
=
"updater"
)
private
String
updater
;
/**
* 短板规则id逗号分隔
*/
@Column
(
name
=
"rule_ids"
)
private
String
ruleIds
;
/**
* 短板规则名称逗号分隔
*/
@Column
(
name
=
"rule_names"
)
private
String
ruleNames
;
/**
* 短板执行记录
*/
@Column
(
name
=
"action_record"
)
private
String
actionRecord
;
/**
* 改善措施
*/
@Transient
private
String
improveMeasure
;
}
src/main/java/com/keymobile/indicators/model/entity/shortboard/ShortBoardTaskVal.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
model
.
entity
.
shortboard
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
import
java.util.Date
;
/**
* @Description
* @Author Hunter
* @Date 2020-09-22
*/
@Setter
@Getter
@ToString
@Entity
@Table
(
name
=
"short_board_task_val"
)
public
class
ShortBoardTaskVal
implements
Serializable
{
private
static
final
long
serialVersionUID
=
4262965314071873010L
;
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@Column
(
name
=
"id"
)
private
Integer
id
;
/**
* 短板清单id
*/
@Column
(
name
=
"short_board_task_id"
)
private
Integer
shortBoardTaskId
;
/**
* 原因分析
*/
@Column
(
name
=
"analysis_causes"
)
private
String
analysisCauses
;
/**
* 受理人员
*/
@Column
(
name
=
"handle_user"
)
private
String
handleUser
;
/**
* 制定措施
*/
@Column
(
name
=
"create_measure"
)
private
String
createMeasure
;
/**
* 改善人员
*/
@Column
(
name
=
"improve_user"
)
private
String
improveUser
;
/**
* 执行改善措施
*/
@Column
(
name
=
"start_measure"
)
private
String
startMeasure
;
/**
* 执行人员
*/
@Column
(
name
=
"start_user"
)
private
String
startUser
;
/**
* 创建时间
*/
@Column
(
name
=
"create_time"
)
private
Date
createTime
;
/**
* 更新时间
*/
@Column
(
name
=
"update_time"
)
private
Date
updateTime
;
/**
* 更新人
*/
@Column
(
name
=
"updater"
)
private
String
updater
;
}
src/main/java/com/keymobile/indicators/model/entity/shortboard/ShortboardAnalysisValue.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
model
.
entity
.
shortboard
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.Data
;
@Data
@ApiModel
(
"短板数据统计"
)
public
class
ShortboardAnalysisValue
{
@ApiModelProperty
(
"方便数据获取,前端可忽略"
)
private
Integer
status
;
@ApiModelProperty
(
"统计名称"
)
private
String
name
;
@ApiModelProperty
(
"统计数量"
)
private
Integer
count
;
}
src/main/java/com/keymobile/indicators/model/entity/shortboard/ShortboardParam.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
model
.
entity
.
shortboard
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
"短板管理查询条件"
)
public
class
ShortboardParam
{
@ApiModelProperty
(
"当前页"
)
private
Integer
page
;
private
Long
offset
;
@ApiModelProperty
(
"一页条数"
)
private
Integer
size
;
@ApiModelProperty
(
"搜索关键词"
)
private
String
keyword
;
@ApiModelProperty
(
"机构编码"
)
private
String
code
;
@ApiModelProperty
(
"状态 1是短板清单 2待改善 3以改善 4加入白名单 5不合格"
)
private
Integer
statusArr
[];
@ApiModelProperty
(
"单位Id"
)
private
Integer
unitId
;
@ApiModelProperty
(
"用户id"
)
private
String
userId
;
}
src/main/java/com/keymobile/indicators/model/entity/shortboard/ShortboardRecord.java
View file @
c1b8f152
...
@@ -22,9 +22,11 @@ public class ShortboardRecord {
...
@@ -22,9 +22,11 @@ public class ShortboardRecord {
private
Integer
id
;
private
Integer
id
;
private
Integer
shortboardUnitId
;
//短表单元id
private
Integer
shortboardUnitId
;
//短表单元id
private
String
compareObj
;
//对标实体
private
String
compareObj
;
//对标实体编号
private
String
unitName
;
//对标实体中文名
private
String
driveId
;
//指标id
private
String
driveId
;
//指标id
private
String
driveName
;
//指标名称
private
String
driveName
;
//指标名称
private
String
drivePath
;
//指标路径(方便统计指标类别
private
String
value
;
//对标值
private
String
value
;
//对标值
private
Integer
date
;
//对标日期
private
Integer
date
;
//对标日期
private
String
compareCalResultJson
;
//对标结果实体json
private
String
compareCalResultJson
;
//对标结果实体json
...
...
src/main/java/com/keymobile/indicators/model/mapper/indmapper/ShortboardTaskMapper.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
model
.
mapper
.
indmapper
;
import
com.keymobile.indicators.model.entity.shortboard.ShortBoardTask
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardParam
;
import
org.apache.ibatis.annotations.Mapper
;
import
tk.mybatis.mapper.common.BaseMapper
;
import
java.util.List
;
@Mapper
public
interface
ShortboardTaskMapper
extends
BaseMapper
<
ShortBoardTask
>
{
long
selectCountByParam
(
ShortboardParam
shortboardParam
);
List
<
ShortBoardTask
>
selectPageByParam
(
ShortboardParam
shortboardParam
);
List
<
ShortboardAnalysisValue
>
analysisStatus
(
ShortboardParam
shortboardParam
);
List
<
ShortboardAnalysisValue
>
analysisDrive
(
ShortboardParam
shortboardParam
);
List
<
ShortboardAnalysisValue
>
analysisUnit
(
ShortboardParam
shortboardParam
);
List
<
ShortBoardTask
>
selectAnalysisDataPageByParam
(
ShortboardParam
shortboardParam
);
}
src/main/java/com/keymobile/indicators/model/mapper/indmapper/ShortboardTaskValMapper.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
model
.
mapper
.
indmapper
;
import
com.keymobile.indicators.model.entity.shortboard.ShortBoardTaskVal
;
import
org.apache.ibatis.annotations.Mapper
;
import
tk.mybatis.mapper.common.BaseMapper
;
@Mapper
public
interface
ShortboardTaskValMapper
extends
BaseMapper
<
ShortBoardTaskVal
>
{
ShortBoardTaskVal
selectBYShortBoardTaskId
(
Integer
shortBoardTaskId
);
}
src/main/java/com/keymobile/indicators/service/hytobacco/ShortboardTaskService.java
0 → 100644
View file @
c1b8f152
package
com
.
keymobile
.
indicators
.
service
.
hytobacco
;
import
com.keymobile.indicators.constant.Constants
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndCatalog
;
import
com.keymobile.indicators.model.entity.shortboard.*
;
import
com.keymobile.indicators.model.mapper.indmapper.ShortboardRecordMapper
;
import
com.keymobile.indicators.model.mapper.indmapper.ShortboardRuleMapper
;
import
com.keymobile.indicators.model.mapper.indmapper.ShortboardTaskMapper
;
import
com.keymobile.indicators.model.mapper.indmapper.ShortboardTaskValMapper
;
import
com.keymobile.indicators.result.Result
;
import
com.keymobile.indicators.utils.SystemUserUtil
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
@Service
public
class
ShortboardTaskService
{
@Autowired
private
ShortboardRecordMapper
shortboardRecordMapper
;
@Autowired
private
ShortboardTaskMapper
shortboardTaskMapper
;
@Autowired
private
ShortboardTaskValMapper
shortboardTaskValMapper
;
@Autowired
private
ShortboardRuleMapper
shortboardRuleMapper
;
public
Result
assignShortboard
(
@RequestBody
ShortBoardTask
shortBoardTask
)
{
Integer
recordId
=
shortBoardTask
.
getRecordId
();
Date
date
=
new
Date
();
ShortboardRecord
shortboardRecord
=
shortboardRecordMapper
.
selectByPrimaryKey
(
recordId
);
shortBoardTask
.
setCode
(
shortboardRecord
.
getCode
());
shortBoardTask
.
setShortboardName
(
shortboardRecord
.
getShortboardName
());
shortBoardTask
.
setDriveIdPath
(
shortboardRecord
.
getDrivePath
());
shortBoardTask
.
setShortboardDesc
(
shortboardRecord
.
getShortboardDesc
());
shortBoardTask
.
setUnitId
(
shortboardRecord
.
getCompareObj
());
shortBoardTask
.
setUnitName
(
shortboardRecord
.
getUnitName
());
shortBoardTask
.
setValue
(
shortboardRecord
.
getValue
());
shortBoardTask
.
setDriveName
(
shortboardRecord
.
getDriveName
());
shortBoardTask
.
setRuleIds
(
shortboardRecord
.
getShortboardRuleIds
());
shortBoardTask
.
setStatus
(
Constants
.
SHORT_BOARD_START
);
//获取短板筛选规则名称 多个逗号分隔
String
shortboardRuleIds
=
shortboardRecord
.
getShortboardRuleIds
();
StringBuffer
ruleNames
=
new
StringBuffer
();
if
(
StringUtils
.
isNotBlank
(
shortboardRuleIds
)){
String
[]
split
=
shortboardRuleIds
.
split
(
Constants
.
SEP_COMMA
);
List
<
Integer
>
ruleIds
=
new
ArrayList
<>();
for
(
String
s
:
split
)
{
ruleIds
.
add
(
Integer
.
valueOf
(
s
));
}
List
<
ShortboardRule
>
ShortboardRules
=
this
.
shortboardRuleMapper
.
findByIdList
(
ruleIds
);
for
(
ShortboardRule
shortboardRule
:
ShortboardRules
)
{
ruleNames
.
append
(
shortboardRule
.
getRuleName
());
ruleNames
.
append
(
Constants
.
SEP_COMMA
);
}
ruleNames
=
ruleNames
.
delete
(
ruleNames
.
length
()-
1
,
ruleNames
.
length
());
}
shortBoardTask
.
setRuleNames
(
ruleNames
.
toString
());
//接收人待定
shortBoardTask
.
setEnterUserId
(
",1,"
);
shortBoardTask
.
setEnterUser
(
"root"
);
//下发人id
shortBoardTask
.
setCreateUserId
(
SystemUserUtil
.
getCurrentUserId
());
String
currentUser
=
SystemUserUtil
.
getCurrentUser
();
String
[]
split
=
currentUser
.
split
(
Constants
.
SEP_COLON
);
if
(
split
.
length
>
2
){
shortBoardTask
.
setCreateUser
(
split
[
2
]);
}
shortBoardTask
.
setCreateTime
(
date
);
shortBoardTask
.
setUpdateTime
(
date
);
shortBoardTask
.
setUpdater
(
SystemUserUtil
.
getCurrentUser
());
shortboardTaskMapper
.
insert
(
shortBoardTask
);
System
.
out
.
println
(
shortBoardTask
);
return
Result
.
genOkResult
();
}
public
long
selectCountByParam
(
ShortboardParam
shortboardParam
)
{
return
shortboardTaskMapper
.
selectCountByParam
(
shortboardParam
);
}
/**
* 任务清单表格数据
* */
public
List
<
ShortBoardTask
>
selectPageByParam
(
ShortboardParam
shortboardParam
)
{
return
shortboardTaskMapper
.
selectPageByParam
(
shortboardParam
);
}
/**
* 短板清单填报更新或新增
* **/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
saveOrUpdateShortBoardTaskVal
(
ShortBoardTaskVal
shortBoardTaskVal
)
{
Date
date
=
new
Date
();
shortBoardTaskVal
.
setUpdateTime
(
date
);
shortBoardTaskVal
.
setUpdater
(
SystemUserUtil
.
getCurrentUser
());
if
(
shortBoardTaskVal
.
getId
()!=
null
&&
shortBoardTaskVal
.
getId
()!=
0
){
//更新
shortboardTaskValMapper
.
updateByPrimaryKey
(
shortBoardTaskVal
);
}
else
{
shortBoardTaskVal
.
setCreateTime
(
date
);
shortboardTaskValMapper
.
insert
(
shortBoardTaskVal
);
}
ShortBoardTask
shortboardTask
=
new
ShortBoardTask
();
shortboardTask
.
setUpdateTime
(
date
);
shortboardTask
.
setUpdater
(
SystemUserUtil
.
getCurrentUser
());
shortboardTask
.
setId
(
shortBoardTaskVal
.
getShortBoardTaskId
());
shortboardTask
.
setStatus
(
Constants
.
SHORT_BOARD_START_IMPROVED
);
shortboardTaskMapper
.
updateByPrimaryKeySelective
(
shortboardTask
);
return
Result
.
genOkResult
();
}
public
ShortBoardTaskVal
selectShortBoardTaskValByTaskIdId
(
Integer
shortBoardTaskId
)
{
return
shortboardTaskValMapper
.
selectBYShortBoardTaskId
(
shortBoardTaskId
);
}
public
ShortBoardTask
selectShortBoardTaskById
(
Integer
id
)
{
return
shortboardTaskMapper
.
selectByPrimaryKey
(
id
);
}
public
Result
updateTaskStatus
(
Integer
taskId
,
Integer
status
)
{
Date
date
=
new
Date
();
ShortBoardTask
shortBoardTask
=
new
ShortBoardTask
();
shortBoardTask
.
setUpdateTime
(
date
);
shortBoardTask
.
setUpdater
(
SystemUserUtil
.
getCurrentUser
());
shortBoardTask
.
setId
(
taskId
);
shortBoardTask
.
setStatus
(
status
);
shortboardTaskMapper
.
updateByPrimaryKeySelective
(
shortBoardTask
);
return
Result
.
genOkResult
();
}
public
List
<
ShortboardAnalysisValue
>
analysisStatus
(
ShortboardParam
shortboardParam
)
{
List
<
ShortboardAnalysisValue
>
tmps
=
shortboardTaskMapper
.
analysisStatus
(
shortboardParam
);
List
<
ShortboardAnalysisValue
>
values
=
new
ArrayList
<>();
for
(
ShortboardAnalysisValue
tmp
:
tmps
)
{
switch
(
tmp
.
getStatus
()){
case
Constants
.
SHORT_BOARD_IMPROVED_PASS
:
tmp
.
setName
(
"改善合格"
);
values
.
add
(
tmp
);
break
;
case
Constants
.
SHORT_BOARD_WHITE_LIST
:
tmp
.
setName
(
"白名单"
);
values
.
add
(
tmp
);
break
;
case
Constants
.
SHORT_BOARD_IMPROVED_BELOW
:
values
.
add
(
tmp
);
tmp
.
setName
(
"改善不合格"
);
}
}
return
values
;
}
public
List
<
ShortboardAnalysisValue
>
analysisDrive
(
ShortboardParam
shortboardParam
)
{
return
shortboardTaskMapper
.
analysisDrive
(
shortboardParam
);
}
public
List
<
ShortboardAnalysisValue
>
analysisUnit
(
ShortboardParam
shortboardParam
)
{
return
shortboardTaskMapper
.
analysisUnit
(
shortboardParam
);
}
/**
* 结果汇总表数据
* */
public
List
<
ShortBoardTask
>
selectAnalysisDataPageByParam
(
ShortboardParam
shortboardParam
)
{
return
shortboardTaskMapper
.
selectAnalysisDataPageByParam
(
shortboardParam
);
}
}
src/main/resources/mybatis/mapping/ShortboardTaskMapper.xml
0 → 100644
View file @
c1b8f152
<?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.keymobile.indicators.model.mapper.indmapper.ShortboardTaskMapper"
>
<select
id=
"selectPageByParam"
resultType=
"com.keymobile.indicators.model.entity.shortboard.ShortBoardTask"
>
select *
from short_board_task sbt
<include
refid=
"findWhereSql"
></include>
order by update_time desc
limit #{offset}, #{size}
</select>
<select
id=
"selectAnalysisDataPageByParam"
resultType=
"com.keymobile.indicators.model.entity.shortboard.ShortBoardTask"
>
select sbt.*,sbtl.create_measure as improveMeasure
from short_board_task sbt left join short_board_task_val sbtl on sbt.id=sbtl.short_board_task_id
<include
refid=
"findWhereSql"
></include>
order by update_time desc
limit #{offset}, #{size}
</select>
<select
id=
"selectCountByParam"
resultType=
"long"
>
select count(id)
from short_board_task sbt
<include
refid=
"findWhereSql"
></include>
</select>
<select
id=
"analysisStatus"
resultType=
"com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue"
>
select count(id) as count,status
from short_board_task sbt
<include
refid=
"findWhereSql"
></include>
group by status
</select>
<select
id=
"analysisDrive"
resultType=
"com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue"
>
select count(sbt.id) as count,dic.catalog_name as name
from short_board_task sbt left join drive_ind_catalog dic on sbt.drive_id_path=dic.id_path
<include
refid=
"findWhereSql"
></include>
group by sbt.drive_id_path
</select>
<select
id=
"analysisUnit"
resultType=
"com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue"
>
select count(id) as count,unit_name as name
from short_board_task sbt
<include
refid=
"findWhereSql"
></include>
group by unit_name
</select>
<sql
id=
"findWhereSql"
>
where 1 = 1
<if
test=
"keyword != null and keyword != ''"
>
and sbt.shortboard_name like concat('%', #{keyword}, '%')
</if>
<if
test=
"statusArr != null"
>
and sbt.status in
<foreach
collection=
"statusArr"
open=
"("
item=
"status"
close=
")"
separator=
","
>
#{status}
</foreach>
</if>
<if
test=
"code != null and code != ''"
>
and sbt.code =#{code}
</if>
<if
test=
"unitId !=null and unitId!=0"
>
and sbt.unit_id =#{unitId}
</if>
<if
test=
"userId !=null and userId != ''"
>
and sbt.enter_user_id like concat('%,',#{userId},',%')
</if>
</sql>
</mapper>
\ No newline at end of file
src/main/resources/mybatis/mapping/ShortboardTaskValMapper.xml
0 → 100644
View file @
c1b8f152
<?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.keymobile.indicators.model.mapper.indmapper.ShortboardTaskValMapper"
>
<select
id=
"selectBYShortBoardTaskId"
resultType=
"com.keymobile.indicators.model.entity.shortboard.ShortBoardTaskVal"
>
select *
from short_board_task_val
where short_board_task_id = #{shortBoardTaskId}
order by update_time desc
</select>
</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