Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
25db61b2
Commit
25db61b2
authored
Nov 22, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加海康门禁设备管理
parent
c5a15917
Changes
16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
2070 additions
and
0 deletions
+2070
-0
attendance-performance-manager-ui/admin/src/router.js
attendance-performance-manager-ui/admin/src/router.js
+2
-0
attendance-performance-manager-ui/admin/src/views/door/drawershow.vue
...erformance-manager-ui/admin/src/views/door/drawershow.vue
+114
-0
attendance-performance-manager-ui/admin/src/views/door/list.vue
...ance-performance-manager-ui/admin/src/views/door/list.vue
+79
-0
attendance-performance-manager-ui/admin/src/views/door/view.vue
...ance-performance-manager-ui/admin/src/views/door/view.vue
+69
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/dao/DoorDao.java
...rc/main/java/com/mortals/xhx/module/door/dao/DoorDao.java
+17
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/dao/ibatis/DoorDaoImpl.java
...a/com/mortals/xhx/module/door/dao/ibatis/DoorDaoImpl.java
+21
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/DoorEntity.java
...in/java/com/mortals/xhx/module/door/model/DoorEntity.java
+65
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/DoorQuery.java
...ain/java/com/mortals/xhx/module/door/model/DoorQuery.java
+860
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/vo/DoorVo.java
...ain/java/com/mortals/xhx/module/door/model/vo/DoorVo.java
+23
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/DoorService.java
...java/com/mortals/xhx/module/door/service/DoorService.java
+16
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java
...mortals/xhx/module/door/service/impl/DoorServiceImpl.java
+21
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/web/DoorController.java
.../java/com/mortals/xhx/module/door/web/DoorController.java
+50
-0
attendance-performance-manager/src/main/resources/sqlmap/module/door/DoorMapper.xml
...ager/src/main/resources/sqlmap/module/door/DoorMapper.xml
+651
-0
attendance-performance-manager/src/test/java/com/mortals/httpclient/door/DoorController.http
...test/java/com/mortals/httpclient/door/DoorController.http
+60
-0
db/add.sql
db/add.sql
+22
-0
doc/考勤绩效管理系统.docx
doc/考勤绩效管理系统.docx
+0
-0
No files found.
attendance-performance-manager-ui/admin/src/router.js
View file @
25db61b2
...
@@ -139,6 +139,8 @@ const router = new Router({
...
@@ -139,6 +139,8 @@ const router = new Router({
...
restBuilder
(
"
staff/perform/summary
"
,
"
staff/perform/summary
"
),
//员工绩效统计汇总
...
restBuilder
(
"
staff/perform/summary
"
,
"
staff/perform/summary
"
),
//员工绩效统计汇总
...
restBuilder
(
"
door
"
,
"
door
"
),
//门禁设备管理
// 360评估
// 360评估
...
restBuilder
(
"
homeCharts/record
"
,
"
homeCharts/record
"
),
...
restBuilder
(
"
homeCharts/record
"
,
"
homeCharts/record
"
),
//以下为基础路由配置
//以下为基础路由配置
...
...
attendance-performance-manager-ui/admin/src/views/door/drawershow.vue
0 → 100644
View file @
25db61b2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
:destroy-on-close=
"true"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"设备名称"
prop=
"deviceName"
v-model=
"form.deviceName"
placeholder=
"请输入设备名称"
/>
<Field
label=
"设备编码"
prop=
"deviceCode"
v-model=
"form.deviceCode"
placeholder=
"请输入设备编码"
/>
<Field
label=
"Ip地址"
prop=
"ip"
v-model=
"form.ip"
placeholder=
"请输入Ip地址"
/>
<Field
label=
"用户名"
prop=
"username"
v-model=
"form.username"
placeholder=
"请输入用户名"
/>
<Field
label=
"密码"
prop=
"password"
v-model=
"form.password"
placeholder=
"请输入密码"
/>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
DoorDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
door
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
门禁设备
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
],
toDate
:[
],
// 表单校验
rules
:
{
}
};
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
door/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改门禁设备
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
door/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增门禁设备
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
door/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
门禁设备详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
deviceName
:
""
,
deviceCode
:
""
,
ip
:
""
,
username
:
""
,
password
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/door/list.vue
0 → 100644
View file @
25db61b2
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
</LayoutTable>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
DoorList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
},
methods
:
{
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
deviceCode
"
,
type
:
"
text
"
,
label
:
"
设备编码
"
,
fuzzy
:
true
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
设备名称
"
,
prop
:
"
deviceName
"
},
{
label
:
"
设备编码
"
,
prop
:
"
deviceCode
"
},
{
label
:
"
Ip地址
"
,
prop
:
"
ip
"
},
{
label
:
"
用户名
"
,
prop
:
"
username
"
},
{
label
:
"
密码
"
,
prop
:
"
password
"
},
{
label
:
"
创建时间
"
,
prop
:
"
createTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
row
=>
{
return
(
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
}
}
]
}
};
}
};
</
script
>
\ No newline at end of file
attendance-performance-manager-ui/admin/src/views/door/view.vue
0 → 100644
View file @
25db61b2
<
template
>
<layout-view>
<el-descriptions
:title=
"title"
:column=
"column"
:size=
"size"
:colon=
"false"
border
>
<template
slot=
"title"
>
<i
class=
"el-icon-tickets"
></i>
基本详细信息
</
template
>
<
template
slot=
"extra"
>
<el-button
type=
"primary"
@
click=
"$router.go(-1)"
size=
"small"
>
返回
</el-button>
</
template
>
<el-descriptions-item
label=
"设备名称"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.deviceName}}
</el-descriptions-item>
<el-descriptions-item
label=
"设备编码"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.deviceCode}}
</el-descriptions-item>
<el-descriptions-item
label=
"Ip地址"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.ip}}
</el-descriptions-item>
<el-descriptions-item
label=
"用户名"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.username}}
</el-descriptions-item>
<el-descriptions-item
label=
"密码"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.password}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<
script
>
import
view
from
"
@/assets/mixins/view
"
;
export
default
{
mixins
:
[
view
],
components
:
{
},
methods
:
{
},
data
()
{
return
{
size
:
"
small
"
,
column
:
2
,
toString
:[
],
toArrays
:
[
],
toDate
:
[
]
}
}
}
</
script
>
<
style
lang=
"less"
>
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</
style
>
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/dao/DoorDao.java
0 → 100644
View file @
25db61b2
package
com.mortals.xhx.module.door.dao
;
import
com.mortals.framework.dao.ICRUDDao
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
java.util.List
;
/**
* 门禁设备Dao
* 门禁设备 DAO接口
*
* @author zxfei
* @date 2023-11-22
*/
public
interface
DoorDao
extends
ICRUDDao
<
DoorEntity
,
Long
>{
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/dao/ibatis/DoorDaoImpl.java
0 → 100644
View file @
25db61b2
package
com.mortals.xhx.module.door.dao.ibatis
;
import
org.springframework.stereotype.Repository
;
import
com.mortals.xhx.module.door.dao.DoorDao
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
java.util.Date
;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
java.util.List
;
/**
* 门禁设备DaoImpl DAO接口
*
* @author zxfei
* @date 2023-11-22
*/
@Repository
(
"doorDao"
)
public
class
DoorDaoImpl
extends
BaseCRUDDaoMybatis
<
DoorEntity
,
Long
>
implements
DoorDao
{
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/DoorEntity.java
0 → 100644
View file @
25db61b2
package
com.mortals.xhx.module.door.model
;
import
java.util.List
;
import
java.util.ArrayList
;
import
java.math.BigDecimal
;
import
cn.hutool.core.date.DateUtil
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.mortals.framework.annotation.Excel
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.xhx.module.door.model.vo.DoorVo
;
import
lombok.Data
;
/**
* 门禁设备实体对象
*
* @author zxfei
* @date 2023-11-22
*/
@Data
public
class
DoorEntity
extends
DoorVo
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 设备名称
*/
private
String
deviceName
;
/**
* 设备编码
*/
private
String
deviceCode
;
/**
* Ip地址
*/
private
String
ip
;
/**
* 用户名
*/
private
String
username
;
/**
* 密码
*/
private
String
password
;
@Override
public
int
hashCode
()
{
return
this
.
getId
().
hashCode
();
}
@Override
public
boolean
equals
(
Object
obj
)
{
if
(
obj
==
null
)
return
false
;
if
(
obj
instanceof
DoorEntity
)
{
DoorEntity
tmp
=
(
DoorEntity
)
obj
;
if
(
this
.
getId
()
==
tmp
.
getId
())
{
return
true
;
}
}
return
false
;
}
public
void
initAttrValue
(){
this
.
deviceName
=
""
;
this
.
deviceCode
=
""
;
this
.
ip
=
""
;
this
.
username
=
""
;
this
.
password
=
""
;
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/DoorQuery.java
0 → 100644
View file @
25db61b2
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/vo/DoorVo.java
0 → 100644
View file @
25db61b2
package
com.mortals.xhx.module.door.model.vo
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
java.util.ArrayList
;
import
java.util.List
;
import
lombok.Data
;
import
com.mortals.framework.annotation.Excel
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 门禁设备视图对象
*
* @author zxfei
* @date 2023-11-22
*/
@Data
public
class
DoorVo
extends
BaseEntityLong
{
/** 序号,主键,自增长列表 */
private
List
<
Long
>
idList
;
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/DoorService.java
0 → 100644
View file @
25db61b2
package
com.mortals.xhx.module.door.service
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.door.dao.DoorDao
;
/**
* DoorService
*
* 门禁设备 service接口
*
* @author zxfei
* @date 2023-11-22
*/
public
interface
DoorService
extends
ICRUDService
<
DoorEntity
,
Long
>{
DoorDao
getDao
();
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java
0 → 100644
View file @
25db61b2
package
com.mortals.xhx.module.door.service.impl
;
import
org.springframework.stereotype.Service
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.xhx.module.door.dao.DoorDao
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.door.service.DoorService
;
import
lombok.extern.slf4j.Slf4j
;
/**
* DoorService
* 门禁设备 service实现
*
* @author zxfei
* @date 2023-11-22
*/
@Service
(
"doorService"
)
@Slf4j
public
class
DoorServiceImpl
extends
AbstractCRUDServiceImpl
<
DoorDao
,
DoorEntity
,
Long
>
implements
DoorService
{
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/web/DoorController.java
0 → 100644
View file @
25db61b2
package
com.mortals.xhx.module.door.web
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.param.service.ParamService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
com.mortals.framework.model.Context
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.door.service.DoorService
;
import
org.apache.commons.lang3.ArrayUtils
;
import
com.mortals.framework.util.StringUtils
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.Arrays
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
static
com
.
mortals
.
framework
.
ap
.
SysConstains
.*;
import
com.mortals.xhx.common.code.*
;
/**
*
* 门禁设备
*
* @author zxfei
* @date 2023-11-22
*/
@RestController
@RequestMapping
(
"door"
)
public
class
DoorController
extends
BaseCRUDJsonBodyMappingController
<
DoorService
,
DoorEntity
,
Long
>
{
@Autowired
private
ParamService
paramService
;
public
DoorController
(){
super
.
setModuleDesc
(
"门禁设备"
);
}
@Override
protected
void
init
(
Map
<
String
,
Object
>
model
,
Context
context
)
{
super
.
init
(
model
,
context
);
}
}
\ No newline at end of file
attendance-performance-manager/src/main/resources/sqlmap/module/door/DoorMapper.xml
0 → 100644
View file @
25db61b2
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/test/java/com/mortals/httpclient/door/DoorController.http
0 → 100644
View file @
25db61b2
###登录
POST {{baseUrl}}/login/login
Content-Type: application/json
{
"loginName":"admin",
"password":"admin",
"securityCode":"8888"
}
> {%
client.global.set("SmsSet_id", JSON.parse(response.body).data.id);
client.global.set("authToken", JSON.parse(response.body).data.token);
%}
###门禁设备列表
POST {{baseUrl}}/door/list
Content-Type: application/json
{
"deviceCode":"9ci6cz",
"page":1,
"size":10
}
###门禁设备更新与保存
POST {{baseUrl}}/door/save
Authorization: {{authToken}}
Content-Type: application/json
{
"deviceName":"r1vf4o",
"deviceCode":"a74fjp",
"ip":"nu6vgw",
"username":"ufxpy5",
"password":"9d2qwd",
}
> {%
client.global.set("Door_id", JSON.parse(response.body).data.id);
%}
###门禁设备查看
GET {{baseUrl}}/door/info?id={{Door_id}}
Accept: application/json
###门禁设备编辑
GET {{baseUrl}}/door/edit?id={{Door_id}}
Accept: application/json
###门禁设备删除
GET {{baseUrl}}/door/delete?id={{Door_id}}
Authorization: {{authToken}}
Accept: application/json
db/add.sql
View file @
25db61b2
...
@@ -880,3 +880,25 @@ CREATE TABLE `mortals_sys_holiday`
...
@@ -880,3 +880,25 @@ CREATE TABLE `mortals_sys_holiday`
PRIMARY
KEY
(
`id`
)
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
COMMENT
=
'节假日表'
ROW_FORMAT
=
Dynamic
;
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
COMMENT
=
'节假日表'
ROW_FORMAT
=
Dynamic
;
-- ----------------------------
2023
-
11
-
22
-- ----------------------------
-- ----------------------------
-- 门禁设备表
-- ----------------------------
DROP
TABLE
IF
EXISTS
`mortals_xhx_door`
;
CREATE
TABLE
mortals_xhx_door
(
`id`
bigint
(
20
)
AUTO_INCREMENT
COMMENT
'序号,主键,自增长'
,
`deviceName`
varchar
(
64
)
COMMENT
'设备名称'
,
`deviceCode`
varchar
(
64
)
COMMENT
'设备编码'
,
`ip`
varchar
(
64
)
COMMENT
'Ip地址'
,
`username`
varchar
(
64
)
COMMENT
'用户名'
,
`password`
varchar
(
64
)
COMMENT
'密码'
,
`createTime`
datetime
COMMENT
'创建时间'
,
`createUserId`
bigint
(
20
)
COMMENT
'创建用户'
,
`updateUserId`
bigint
(
20
)
COMMENT
'更新用户'
,
`updateTime`
datetime
COMMENT
'修改时间'
,
PRIMARY
KEY
(
`id`
)
,
KEY
`deviceCode`
(
`deviceCode`
)
USING
BTREE
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
COMMENT
=
'门禁设备'
;
doc/考勤绩效管理系统.docx
View file @
25db61b2
No preview for this file type
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