Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jyzb_platformV2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
赵剑炜
jyzb_platformV2
Commits
1c5a2b49
Commit
1c5a2b49
authored
Jan 19, 2024
by
赵剑炜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增警柜的人员信息
parent
2e7d8c6f
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
22 个修改的文件
包含
571 行增加
和
9 行删除
+571
-9
pom.xml
jyzb-api/pom.xml
+4
-0
CabinetPoliceDto.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/dto/CabinetPoliceDto.java
+17
-0
PoliceDetailDto.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/dto/PoliceDetailDto.java
+19
-0
PolicemanReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/query/PolicemanReq.java
+1
-0
CabinetDataList.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/CabinetDataList.java
+18
-0
CabinetPolicemanReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/CabinetPolicemanReq.java
+44
-0
CabinetUploadReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/CabinetUploadReq.java
+22
-0
PoliceListReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/PoliceListReq.java
+26
-0
UpdatePolicemanReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/UpdatePolicemanReq.java
+2
-0
OnOpenReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/wsReq/OnOpenReq.java
+26
-0
JYZBConstant.java
jyzb-api/src/main/java/com/junmp/jyzb/api/constant/JYZBConstant.java
+5
-0
UserExceptionEnum.java
jyzb-api/src/main/java/com/junmp/jyzb/api/exception/enums/UserExceptionEnum.java
+5
-1
OnlineRedisCache.java
jyzb-biz/src/main/java/com/junmp/jyzb/cache/OnlineRedisCache.java
+71
-0
PoliceController.java
jyzb-biz/src/main/java/com/junmp/jyzb/controller/PoliceController.java
+33
-1
PubOrg.java
jyzb-biz/src/main/java/com/junmp/jyzb/entity/PubOrg.java
+12
-1
OnlineState.java
jyzb-biz/src/main/java/com/junmp/jyzb/entity/Temp/OnlineState.java
+16
-0
PolicemanService.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/PolicemanService.java
+9
-6
PolicemanServiceImpl.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/PolicemanServiceImpl.java
+0
-0
RabbitMQSendMsg.java
jyzb-biz/src/main/java/com/junmp/jyzb/utils/RabbitMQSendMsg.java
+6
-0
CustomScreenWebSocketServer.java
jyzb-biz/src/main/java/com/junmp/jyzb/websocket/CustomScreenWebSocketServer.java
+218
-0
ActivitiConfig.java
jyzb-process/src/main/java/com/junmp/junmpProcess/config/ActivitiConfig.java
+1
-0
pom.xml
pom.xml
+16
-0
没有找到文件。
jyzb-api/pom.xml
View file @
1c5a2b49
...
@@ -53,6 +53,10 @@
...
@@ -53,6 +53,10 @@
<version>
2.5.0
</version>
<version>
2.5.0
</version>
<scope>
compile
</scope>
<scope>
compile
</scope>
</dependency>
</dependency>
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-annotations
</artifactId>
</dependency>
</dependencies>
</dependencies>
</project>
</project>
...
...
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/dto/CabinetPoliceDto.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
api
.
bean
.
dto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
CabinetPoliceDto
{
private
String
orgId
;
private
String
orgName
;
private
String
ActionUpdateTime
;
private
String
lastAction
;
private
List
<
PoliceDetailDto
>
policeList
;
}
\ No newline at end of file
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/dto/PoliceDetailDto.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
api
.
bean
.
dto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
PoliceDetailDto
{
private
String
id
;
private
String
name
;
private
String
finger
;
private
String
policeCode
;
private
String
photo
;
private
String
cabinetName
;
private
String
serialNum
;
private
List
<
String
>
boxList
;
}
\ No newline at end of file
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/query/PolicemanReq.java
View file @
1c5a2b49
...
@@ -19,6 +19,7 @@ public class PolicemanReq extends BaseRequest {
...
@@ -19,6 +19,7 @@ public class PolicemanReq extends BaseRequest {
@NotBlank
(
message
=
"姓名不能为空"
)
@NotBlank
(
message
=
"姓名不能为空"
)
private
String
name
;
private
String
name
;
private
List
<
String
>
orgList
;
private
String
cabinetId
;
private
String
cabinetId
;
private
List
<
String
>
boxList
;
private
List
<
String
>
boxList
;
...
...
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/CabinetDataList.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
api
.
bean
.
req
;
import
com.junmp.v2.common.bean.request.BaseRequest
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.ArrayList
;
import
java.util.List
;
@Data
public
class
CabinetDataList
{
private
String
orgId
;
List
<
PoliceListReq
>
policeList
;
}
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/CabinetPolicemanReq.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
api
.
bean
.
req
;
import
com.junmp.v2.common.bean.request.BaseRequest
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
import
java.util.List
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
CabinetPolicemanReq
extends
BaseRequest
{
@NotBlank
(
message
=
"警员主键不能为空"
,
groups
=
{
edit
.
class
,
delete
.
class
,
detail
.
class
})
private
String
policeId
;
@NotBlank
(
message
=
"警员名字不能为空"
,
groups
=
{
add
.
class
,
edit
.
class
})
private
String
name
;
private
String
cabinetOrgId
;
private
String
currentCabinetId
;
@NotNull
(
message
=
"组织机构id不能为空"
,
groups
=
{
add
.
class
,
edit
.
class
})
private
Long
orgId
;
@NotBlank
(
message
=
"警员编号不能为空"
,
groups
=
{
add
.
class
,
edit
.
class
})
private
String
policeCode
;
@NotBlank
(
message
=
"人脸信息不能为空"
,
groups
=
{
detail
.
class
})
private
String
photo
;
@NotBlank
(
message
=
"主柜不能为空"
,
groups
=
{
add
.
class
,
edit
.
class
})
private
String
serialNum
;
/**
* 指纹list
*/
private
String
finger
;
private
List
<
Long
>
RolesList
;
}
\ No newline at end of file
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/CabinetUploadReq.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
api
.
bean
.
req
;
import
com.junmp.v2.common.bean.request.BaseRequest
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
CabinetUploadReq
extends
BaseRequest
{
private
String
cabinetOrgId
;
private
String
serialNum
;
private
List
<
CabinetDataList
>
dataList
;
}
\ No newline at end of file
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/PoliceListReq.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
api
.
bean
.
req
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
PoliceListReq
{
private
String
policeID
;
private
String
policeCode
;
private
String
cabinetBoxId
;
private
String
photo
;
private
String
name
;
private
String
finger
;
// /**
// * 角色id列表
// */
private
List
<
Long
>
rolesList
;
}
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/UpdatePolicemanReq.java
View file @
1c5a2b49
...
@@ -19,7 +19,9 @@ public class UpdatePolicemanReq extends BaseRequest {
...
@@ -19,7 +19,9 @@ public class UpdatePolicemanReq extends BaseRequest {
@NotBlank
(
message
=
"警员名字不能为空"
,
groups
=
{
add
.
class
,
edit
.
class
})
@NotBlank
(
message
=
"警员名字不能为空"
,
groups
=
{
add
.
class
,
edit
.
class
})
private
String
name
;
private
String
name
;
private
String
cabinetOrgId
;
private
String
currentCabinetId
;
@NotNull
(
message
=
"组织机构id不能为空"
,
groups
=
{
add
.
class
,
edit
.
class
})
@NotNull
(
message
=
"组织机构id不能为空"
,
groups
=
{
add
.
class
,
edit
.
class
})
private
Long
orgId
;
private
Long
orgId
;
...
...
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/wsReq/OnOpenReq.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
api
.
bean
.
req
.
wsReq
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
@Data
public
class
OnOpenReq
{
/**
*
*/
private
String
type
;
/**
*
*/
private
String
typeId
;
// 有参构造函数
public
OnOpenReq
(
@JsonProperty
(
"type"
)
String
type
,
@JsonProperty
(
"typeId"
)
String
typeId
)
{
this
.
type
=
type
;
this
.
typeId
=
typeId
;
}
}
jyzb-api/src/main/java/com/junmp/jyzb/api/constant/JYZBConstant.java
View file @
1c5a2b49
...
@@ -35,5 +35,10 @@ public interface JYZBConstant {
...
@@ -35,5 +35,10 @@ public interface JYZBConstant {
*/
*/
String
JYZB_TEMP_PREFIX
=
"temp:"
;
String
JYZB_TEMP_PREFIX
=
"temp:"
;
/**
* 设备状态前缀
*/
String
JYZB_ONLINE_PREFIX
=
"onlineState:"
;
String
JYZB_JWT_KEY
=
"JWT"
;
String
JYZB_JWT_KEY
=
"JWT"
;
}
}
jyzb-api/src/main/java/com/junmp/jyzb/api/exception/enums/UserExceptionEnum.java
View file @
1c5a2b49
...
@@ -9,7 +9,11 @@ public enum UserExceptionEnum implements IExceptionEnum {
...
@@ -9,7 +9,11 @@ public enum UserExceptionEnum implements IExceptionEnum {
/**
/**
* 账号已存在
* 账号已存在
*/
*/
USER_IS_EXIST
(
CommonConstant
.
DEFAULT_USER_ERROR_CODE
,
"账号已存在"
)
USER_IS_EXIST
(
CommonConstant
.
DEFAULT_USER_ERROR_CODE
,
"账号已存在"
),
/**
* 账号已存在
*/
POLICE_IS_EXIST
(
CommonConstant
.
DEFAULT_USER_ERROR_CODE
,
"警员已存在"
)
;
;
/**
/**
* 错误编码
* 错误编码
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/cache/OnlineRedisCache.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
cache
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.junmp.jyzb.api.constant.JYZBConstant
;
import
com.junmp.jyzb.entity.Temp.HumidityAndtemperature
;
import
com.junmp.jyzb.entity.Temp.OnlineState
;
import
com.junmp.v2.cache.AbstractRedisCache
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Set
;
@Component
public
class
OnlineRedisCache
extends
AbstractRedisCache
<
Object
>
{
public
OnlineRedisCache
(
RedisTemplate
<
String
,
Object
>
redisTemplate
)
{
super
(
redisTemplate
);
}
@Override
public
String
getCommonKeyPrefix
()
{
return
JYZBConstant
.
JYZB_ONLINE_PREFIX
;
}
public
void
addSessionValue
(
String
type
,
String
sessionId
,
String
typeId
,
long
temperature
)
{
OnlineState
data
=
new
OnlineState
();
data
.
setType
(
type
);
data
.
setTypeId
(
typeId
);
String
key
=
sessionId
;
String
jsonData
;
// 将OnlineState对象转换为JSON字符串
ObjectMapper
objectMapper
=
new
ObjectMapper
();
try
{
jsonData
=
objectMapper
.
writeValueAsString
(
data
);
}
catch
(
Exception
e
)
{
// 处理转换异常
e
.
printStackTrace
();
return
;
}
getRedisTemplate
().
opsForValue
().
set
(
key
,
jsonData
);
put
(
key
,
data
);
}
public
OnlineState
getDataValue
(
String
sessionId
)
{
boolean
exists
=
getRedisTemplate
().
hasKey
(
sessionId
);
if
(!
exists
)
{
// 处理不存在的情况
return
null
;
}
Set
<
Object
>
dataInRange
=
getRedisTemplate
().
opsForZSet
().
range
(
sessionId
,
0
,
-
1
);
// 如果集合非空,返回第一个元素,否则返回null
if
(!
dataInRange
.
isEmpty
())
{
Object
firstElement
=
dataInRange
.
iterator
().
next
();
// 检查类型是否为 OnlineState
if
(
firstElement
instanceof
OnlineState
)
{
return
(
OnlineState
)
firstElement
;
// 执行强制类型转换
}
else
{
// 处理类型不匹配的情况
return
null
;
}
}
else
{
return
null
;
}
}
}
jyzb-biz/src/main/java/com/junmp/jyzb/controller/PoliceController.java
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
controller
;
package
com
.
junmp
.
jyzb
.
controller
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.junmp.jyzb.api.bean.dto.CabinetPoliceDto
;
import
com.junmp.jyzb.api.bean.dto.FetchingDataDto.PoliceDto
;
import
com.junmp.jyzb.api.bean.dto.FetchingDataDto.PoliceDto
;
import
com.junmp.jyzb.api.bean.dto.FetchingDataDto.UserDto
;
import
com.junmp.jyzb.api.bean.dto.FetchingDataDto.UserDto
;
import
com.junmp.jyzb.api.bean.dto.PolicemanDto
;
import
com.junmp.jyzb.api.bean.dto.PolicemanDto
;
...
@@ -8,6 +9,8 @@ import com.junmp.jyzb.api.bean.dto.ReassignmentDto;
...
@@ -8,6 +9,8 @@ import com.junmp.jyzb.api.bean.dto.ReassignmentDto;
import
com.junmp.jyzb.api.bean.query.CabinetReq
;
import
com.junmp.jyzb.api.bean.query.CabinetReq
;
import
com.junmp.jyzb.api.bean.query.PolicemanReq
;
import
com.junmp.jyzb.api.bean.query.PolicemanReq
;
import
com.junmp.jyzb.api.bean.query.QueryReassignmentReq
;
import
com.junmp.jyzb.api.bean.query.QueryReassignmentReq
;
import
com.junmp.jyzb.api.bean.req.CabinetPolicemanReq
;
import
com.junmp.jyzb.api.bean.req.CabinetUploadReq
;
import
com.junmp.jyzb.api.bean.req.UpdatePolicemanReq
;
import
com.junmp.jyzb.api.bean.req.UpdatePolicemanReq
;
import
com.junmp.jyzb.api.bean.req.UpdateReassignmentReq
;
import
com.junmp.jyzb.api.bean.req.UpdateReassignmentReq
;
import
com.junmp.jyzb.entity.EquipmentSize
;
import
com.junmp.jyzb.entity.EquipmentSize
;
...
@@ -50,6 +53,12 @@ public class PoliceController {
...
@@ -50,6 +53,12 @@ public class PoliceController {
String
policeId
=
policemanService
.
AddPoliceman
(
req
);
String
policeId
=
policemanService
.
AddPoliceman
(
req
);
return
ApiRes
.
success
(
policeId
);
return
ApiRes
.
success
(
policeId
);
}
}
@PostMapping
(
path
=
"/AddPolicemanFromCab"
,
name
=
"添加警员信息(单警柜使用)#logType=30"
)
@ApiOperation
(
"添加警员信息"
)
public
ApiRes
<
String
>
AddPolicemanFromCab
(
@RequestBody
@Validated
(
ValidationApi
.
add
.
class
)
CabinetPolicemanReq
req
)
{
String
policeId
=
policemanService
.
AddPolicemanFromCab
(
req
);
return
ApiRes
.
success
(
policeId
);
}
//添加警员时先将没有组织机构号的警员查询出来
//添加警员时先将没有组织机构号的警员查询出来
@PostMapping
(
path
=
"/GetPoliceWithoutOrg"
,
name
=
"获取没有组织机构的警员信息#enable"
)
@PostMapping
(
path
=
"/GetPoliceWithoutOrg"
,
name
=
"获取没有组织机构的警员信息#enable"
)
@ApiOperation
(
"/获取没有组织机构的警员信息"
)
@ApiOperation
(
"/获取没有组织机构的警员信息"
)
...
@@ -94,6 +103,24 @@ public class PoliceController {
...
@@ -94,6 +103,24 @@ public class PoliceController {
}
}
return
ApiRes
.
success
(
b
);
return
ApiRes
.
success
(
b
);
}
}
@PostMapping
(
path
=
"/UploadPolicemanList"
,
name
=
"上传当前所有警员信息#logType=30"
)
@ApiOperation
(
"上传当前所有警员信息"
)
public
ApiRes
<
Boolean
>
UploadPolicemanList
(
@RequestBody
@Validated
(
ValidationApi
.
edit
.
class
)
CabinetUploadReq
req
)
{
boolean
b
=
policemanService
.
UploadPolicemanList
(
req
);
if
(!
b
){
return
ApiRes
.
failure
(
"修改失败"
);
}
return
ApiRes
.
success
(
b
);
}
@PostMapping
(
path
=
"/UpdatePoliceFromCab"
,
name
=
"修改警员信息(警柜使用)#logType=30"
)
@ApiOperation
(
"修改警员信息"
)
public
ApiRes
<
Boolean
>
UpdatePoliceFromCab
(
@RequestBody
@Validated
(
ValidationApi
.
edit
.
class
)
CabinetPolicemanReq
req
)
{
boolean
b
=
policemanService
.
UpdatePoliceFromCab
(
req
);
if
(!
b
){
return
ApiRes
.
failure
(
"修改失败"
);
}
return
ApiRes
.
success
(
b
);
}
//重置密码
//重置密码
@PostMapping
(
path
=
"/reSetPassword"
,
name
=
"重置密码#logType=30"
)
@PostMapping
(
path
=
"/reSetPassword"
,
name
=
"重置密码#logType=30"
)
@ApiOperation
(
"重置密码"
)
@ApiOperation
(
"重置密码"
)
...
@@ -117,7 +144,12 @@ public class PoliceController {
...
@@ -117,7 +144,12 @@ public class PoliceController {
List
<
PolicemanDto
>
policemanDtos
=
policemanService
.
GetAllPolicemanList
(
req
);
List
<
PolicemanDto
>
policemanDtos
=
policemanService
.
GetAllPolicemanList
(
req
);
return
ApiRes
.
success
(
policemanDtos
);
return
ApiRes
.
success
(
policemanDtos
);
}
}
@PostMapping
(
path
=
"/GetListByOrg"
,
name
=
"根据组织机构查询对应警员信息(警柜使用)#enable"
)
@ApiOperation
(
"根据组织机构查询对应警员信息(警柜使用)"
)
public
ApiRes
<
List
<
CabinetPoliceDto
>>
GetListByOrg
(
@RequestBody
PolicemanReq
req
){
List
<
CabinetPoliceDto
>
policemanDtos
=
policemanService
.
GetListByOrgAsync
(
req
);
return
ApiRes
.
success
(
policemanDtos
);
}
//根据组条件查询,只查询本级,不包含下级(page)--可以根据组织机构查询
//根据组条件查询,只查询本级,不包含下级(page)--可以根据组织机构查询
@PostMapping
(
path
=
"/ShowPolicePage"
,
name
=
"根据条件查询所有警员信息#enable"
)
@PostMapping
(
path
=
"/ShowPolicePage"
,
name
=
"根据条件查询所有警员信息#enable"
)
@ApiOperation
(
"根据条件查询所有警员信息(page)"
)
@ApiOperation
(
"根据条件查询所有警员信息(page)"
)
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/entity/PubOrg.java
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
entity
;
package
com
.
junmp
.
jyzb
.
entity
;
import
cn.hutool.core.date.DateTime
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
...
@@ -210,6 +211,15 @@ public class PubOrg implements Serializable {
...
@@ -210,6 +211,15 @@ public class PubOrg implements Serializable {
*/
*/
@TableField
(
value
=
"org_name"
)
@TableField
(
value
=
"org_name"
)
private
String
orgName
;
private
String
orgName
;
/**
* 最后的警员信息更新终端
*/
@TableField
(
value
=
"police_update_service"
)
private
String
policeUpdateService
;
/**
* 最后警员信息更新时间
*/
@TableField
(
value
=
"police_update_time"
)
private
Date
policeUpdateTime
;
}
}
\ No newline at end of file
jyzb-biz/src/main/java/com/junmp/jyzb/entity/Temp/OnlineState.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
entity
.
Temp
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.context.annotation.Configuration
;
@Data
@Configuration
@NoArgsConstructor
public
class
OnlineState
{
//类型
private
String
type
;
//类型ID
private
String
typeId
;
}
jyzb-biz/src/main/java/com/junmp/jyzb/service/PolicemanService.java
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
service
;
package
com
.
junmp
.
jyzb
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.junmp.jyzb.api.bean.dto.CabinetPoliceDto
;
import
com.junmp.jyzb.api.bean.dto.FetchingDataDto.PoliceDto
;
import
com.junmp.jyzb.api.bean.dto.FetchingDataDto.PoliceDto
;
import
com.junmp.jyzb.api.bean.dto.FetchingDataDto.UserDto
;
import
com.junmp.jyzb.api.bean.dto.FetchingDataDto.UserDto
;
import
com.junmp.jyzb.api.bean.dto.PolicemanDto
;
import
com.junmp.jyzb.api.bean.dto.PolicemanDto
;
...
@@ -9,9 +10,7 @@ import com.junmp.jyzb.api.bean.dto.UploadPolicePhotoDto;
...
@@ -9,9 +10,7 @@ import com.junmp.jyzb.api.bean.dto.UploadPolicePhotoDto;
import
com.junmp.jyzb.api.bean.query.CabinetReq
;
import
com.junmp.jyzb.api.bean.query.CabinetReq
;
import
com.junmp.jyzb.api.bean.query.PolicemanReq
;
import
com.junmp.jyzb.api.bean.query.PolicemanReq
;
import
com.junmp.jyzb.api.bean.query.QueryReassignmentReq
;
import
com.junmp.jyzb.api.bean.query.QueryReassignmentReq
;
import
com.junmp.jyzb.api.bean.req.UpdatePolicemanReq
;
import
com.junmp.jyzb.api.bean.req.*
;
import
com.junmp.jyzb.api.bean.req.UpdateReassignmentReq
;
import
com.junmp.jyzb.api.bean.req.UploadPolicePhotoReq
;
import
com.junmp.jyzb.entity.PoliceEquipment
;
import
com.junmp.jyzb.entity.PoliceEquipment
;
import
com.junmp.jyzb.entity.Policeman
;
import
com.junmp.jyzb.entity.Policeman
;
import
com.junmp.jyzb.entity.Reassignment
;
import
com.junmp.jyzb.entity.Reassignment
;
...
@@ -30,7 +29,8 @@ public interface PolicemanService extends IService<Policeman> {
...
@@ -30,7 +29,8 @@ public interface PolicemanService extends IService<Policeman> {
//添加警员
//添加警员
String
AddPoliceman
(
UpdatePolicemanReq
req
);
String
AddPoliceman
(
UpdatePolicemanReq
req
);
//添加警员,警柜使用
String
AddPolicemanFromCab
(
CabinetPolicemanReq
req
);
//获取单个警员信息
//获取单个警员信息
PolicemanDto
GetOnePolice
(
PolicemanReq
req
);
PolicemanDto
GetOnePolice
(
PolicemanReq
req
);
...
@@ -42,9 +42,9 @@ public interface PolicemanService extends IService<Policeman> {
...
@@ -42,9 +42,9 @@ public interface PolicemanService extends IService<Policeman> {
//修改警员信息
//修改警员信息
boolean
UpdatePolice
(
UpdatePolicemanReq
req
);
boolean
UpdatePolice
(
UpdatePolicemanReq
req
);
boolean
UpdatePoliceFromCab
(
CabinetPolicemanReq
req
);
boolean
UploadPolicemanList
(
CabinetUploadReq
req
);
boolean
AddFaceInfo
(
UpdatePolicemanReq
req
);
boolean
AddFaceInfo
(
UpdatePolicemanReq
req
);
...
@@ -54,6 +54,9 @@ public interface PolicemanService extends IService<Policeman> {
...
@@ -54,6 +54,9 @@ public interface PolicemanService extends IService<Policeman> {
//通过条件查询警员列表(list)
//通过条件查询警员列表(list)
List
<
PolicemanDto
>
GetAllPolicemanList
(
PolicemanReq
req
);
List
<
PolicemanDto
>
GetAllPolicemanList
(
PolicemanReq
req
);
//通过组织机构列表查询
List
<
CabinetPoliceDto
>
GetListByOrgAsync
(
PolicemanReq
req
);
//通过条件查询警员列表(page)
//通过条件查询警员列表(page)
PageResult
<
PolicemanDto
>
GetAllPolicemanPage
(
PolicemanReq
req
);
PageResult
<
PolicemanDto
>
GetAllPolicemanPage
(
PolicemanReq
req
);
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/PolicemanServiceImpl.java
View file @
1c5a2b49
差异被折叠。
点击展开。
jyzb-biz/src/main/java/com/junmp/jyzb/utils/RabbitMQSendMsg.java
View file @
1c5a2b49
...
@@ -24,6 +24,12 @@ public class RabbitMQSendMsg {
...
@@ -24,6 +24,12 @@ public class RabbitMQSendMsg {
rabbitAdmin
.
declareExchange
(
exchange
);
rabbitAdmin
.
declareExchange
(
exchange
);
rabbitAdmin
.
declareBinding
(
BindingBuilder
.
bind
(
queue
).
to
(
exchange
).
with
(
name
).
noargs
());
rabbitAdmin
.
declareBinding
(
BindingBuilder
.
bind
(
queue
).
to
(
exchange
).
with
(
name
).
noargs
());
String
jsonString
=
JSON
.
toJSONString
(
msg
);
String
jsonString
=
JSON
.
toJSONString
(
msg
);
// // 创建 MessageProperties 对象,并设置 TTL
// MessageProperties messageProperties = new MessageProperties();
// messageProperties.setExpiration(String.valueOf(ttlMillis));
//
// // 发送带有 TTL 的消息
// rabbitTemplate.send(exchangeName, name, new Message(jsonString.getBytes(), messageProperties));
rabbitTemplate
.
convertAndSend
(
exchangeName
,
name
,
jsonString
);
rabbitTemplate
.
convertAndSend
(
exchangeName
,
name
,
jsonString
);
}
}
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/websocket/CustomScreenWebSocketServer.java
0 → 100644
View file @
1c5a2b49
package
com
.
junmp
.
jyzb
.
websocket
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.extra.spring.SpringUtil
;
import
com.alibaba.fastjson2.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.junmp.jyzb.api.bean.req.wsReq.OnOpenReq
;
import
com.junmp.jyzb.cache.OnlineRedisCache
;
import
com.junmp.jyzb.cache.TemperatureRedisCache
;
import
com.junmp.jyzb.entity.Cabinet
;
import
com.junmp.jyzb.entity.Reassignment
;
import
com.junmp.jyzb.entity.Temp.OnlineState
;
import
com.junmp.jyzb.service.CabinetService
;
import
com.junmp.v2.ws.api.enums.ClientMsgType
;
import
com.junmp.v2.ws.api.enums.ServerMsgType
;
import
com.junmp.v2.ws.api.enums.SysMsgTypeEnum
;
import
com.junmp.v2.ws.api.message.WsCallbackApi
;
import
com.junmp.v2.ws.api.session.bean.WsSession
;
import
com.junmp.v2.ws.bean.WsMsgDto
;
import
com.junmp.v2.ws.channel.WsSessionContainer
;
import
com.junmp.v2.ws.message.WsMessageHandle
;
import
com.junmp.v2.ws.server.ScreenWebSocketServer
;
import
com.junmp.v2.ws.session.WsSessionHandle
;
import
io.jsonwebtoken.JwtException
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
javax.websocket.*
;
import
javax.websocket.server.PathParam
;
import
javax.websocket.server.ServerEndpoint
;
import
java.io.IOException
;
import
java.time.Instant
;
//@Component
//@ServerEndpoint("/notice1/{data}")
//public class CustomScreenWebSocketServer extends ScreenWebSocketServer {
// @Override
//
// public void onOpen(Session session, @PathParam("data") String data) {
// String aa=data;
// // Your custom logic here
// super.onOpen(session, data); // Call the original method if needed
// }
//}
@Component
@ServerEndpoint
(
"/notice1/{data}"
)
public
class
CustomScreenWebSocketServer
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
com
.
junmp
.
v2
.
ws
.
server
.
ScreenWebSocketServer
.
class
);
@Resource
public
CabinetService
cabinetService
;
@Resource
private
OnlineRedisCache
onlineRedisCache
;
public
CustomScreenWebSocketServer
()
{
}
@OnOpen
public
void
onOpen
(
Session
session
,
@PathParam
(
"data"
)
String
data
)
{
String
userId
=
null
;
try
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
OnOpenReq
onOpenObject
=
objectMapper
.
readValue
(
data
,
OnOpenReq
.
class
);
String
type
=
onOpenObject
.
getType
();
String
typeId
=
onOpenObject
.
getTypeId
();
// 获取当前时间的时间戳
Instant
now
=
Instant
.
now
();
// 转换为long类型
long
timestamp
=
now
.
toEpochMilli
();
if
(
type
.
equals
(
"cabinet"
))
//警柜已连接
{
Cabinet
cabinet
=
cabinetService
.
getOne
(
new
LambdaQueryWrapper
<
Cabinet
>()
.
eq
(
Cabinet:
:
getCabinetNum
,
typeId
));
cabinet
.
setOnlineState
(
1
);
cabinet
.
setUpdateTime
(
DateTime
.
now
());
// cabinetService.updateById(cabinet);
// //将数据放入redis
// onlineRedisCache.addSessionValue(session.getId(),type,typeId,timestamp);
}
else
if
(
type
.
equals
(
"warehouse"
))
{
//仓库主机已连接
}
}
catch
(
JwtException
|
JsonProcessingException
var15
)
{
log
.
error
(
"建立连接异常>>"
+
var15
.
getMessage
());
try
{
session
.
close
();
log
.
warn
(
"因连接失败,会话自动关闭"
);
}
catch
(
IOException
var14
)
{
var14
.
printStackTrace
();
log
.
error
(
"会话关闭异常>>"
+
var14
.
getMessage
());
}
}
WsSessionContainer
wsContainer
=
new
WsSessionContainer
(
session
);
WsSession
<
WsSessionContainer
>
socketSession
=
new
WsSession
();
WsMsgDto
replyMsg
=
new
WsMsgDto
();
boolean
var13
=
false
;
try
{
var13
=
true
;
replyMsg
.
setServerMsgType
(
ServerMsgType
.
REPLY_MSG_TYPE
.
getCode
());
// replyMsg.setToUserId(userId);
replyMsg
.
setData
(
session
.
getId
());
socketSession
.
setSessionId
(
session
.
getId
());
socketSession
.
setUserId
(
userId
);
socketSession
.
setWsApi
(
wsContainer
);
socketSession
.
setToken
(
data
);
// socketSession.setData();
socketSession
.
setConnectionTime
(
System
.
currentTimeMillis
());
WsSessionHandle
.
addWsSession
(
socketSession
);
var13
=
false
;
}
finally
{
if
(
var13
)
{
wsContainer
.
writeAndFlush
(
replyMsg
);
WsCallbackApi
wsCallbackApi
=
WsMessageHandle
.
getWsCallback
(
SysMsgTypeEnum
.
LISTENER_ON_OPEN
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
wsCallbackApi
))
{
wsCallbackApi
.
callback
(
SysMsgTypeEnum
.
LISTENER_ON_OPEN
.
getCode
(),
(
Object
)
null
,
socketSession
);
}
log
.
info
(
"已建立连接"
);
}
}
wsContainer
.
writeAndFlush
(
replyMsg
);
WsCallbackApi
wsCallbackApi
=
WsMessageHandle
.
getWsCallback
(
SysMsgTypeEnum
.
LISTENER_ON_OPEN
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
wsCallbackApi
))
{
wsCallbackApi
.
callback
(
SysMsgTypeEnum
.
LISTENER_ON_OPEN
.
getCode
(),
(
Object
)
null
,
socketSession
);
}
log
.
info
(
"已建立连接"
);
}
@OnMessage
public
void
onMessage
(
String
message
,
Session
channel
)
{
WsMsgDto
wsMsgDto
=
(
WsMsgDto
)
JSON
.
parseObject
(
message
,
WsMsgDto
.
class
);
WsSession
<
WsSessionContainer
>
wsSession
=
WsSessionHandle
.
getSessionBySessionId
(
channel
.
getId
());
if
(
ObjectUtil
.
isNotEmpty
(
wsSession
)
&&
ClientMsgType
.
USER_HEART
.
getCode
().
equals
(
wsMsgDto
.
getClientMsgType
()))
{
log
.
info
(
StrUtil
.
format
(
"来自与客户端[{}]的心跳消息。"
,
new
Object
[]{
wsMsgDto
.
getFromUserId
()}));
if
(
ObjectUtil
.
isNotEmpty
(
wsSession
))
{
wsSession
.
setLastActiveTime
(
System
.
currentTimeMillis
());
}
}
else
if
(!
ObjectUtil
.
isEmpty
(
wsMsgDto
.
getFromUserId
()))
{
if
(
ObjectUtil
.
isNotEmpty
(
wsSession
))
{
wsSession
.
setLastActiveTime
(
System
.
currentTimeMillis
());
WsCallbackApi
callbackApi
;
if
(
ClientMsgType
.
OPEN_AI_TYPE
.
getCode
().
equals
(
wsMsgDto
.
getClientMsgType
()))
{
log
.
info
(
StrUtil
.
format
(
"来自与客户端[{}]调用OpenAi的消息。"
,
new
Object
[]{
wsMsgDto
.
getFromUserId
()}));
callbackApi
=
(
WsCallbackApi
)
SpringUtil
.
getBean
(
WsCallbackApi
.
class
);
if
(
ObjectUtil
.
isNull
(
callbackApi
))
{
log
.
warn
(
"回调WsCallbackApi未注册."
);
}
else
{
callbackApi
.
callback
(
wsMsgDto
.
getClientMsgType
(),
wsMsgDto
.
getData
(),
wsSession
);
}
}
else
{
callbackApi
=
WsMessageHandle
.
getWsCallback
(
wsMsgDto
.
getClientMsgType
());
if
(
ObjectUtil
.
isNotEmpty
(
callbackApi
))
{
callbackApi
.
callback
(
wsMsgDto
.
getClientMsgType
(),
wsMsgDto
,
wsSession
);
}
else
{
log
.
warn
(
"未知的消息类型"
);
channel
.
getAsyncRemote
().
sendText
(
"{\"serverMsgType\":\"未知的消息类型\"}"
);
}
}
}
}
}
@OnClose
public
void
onClose
(
Session
session
)
{
try
{
WsSession
<
WsSessionContainer
>
wsSession
=
WsSessionHandle
.
getSessionBySessionId
(
session
.
getId
());
WsCallbackApi
wsCallbackApi
=
WsMessageHandle
.
getWsCallback
(
SysMsgTypeEnum
.
LISTENER_ON_CLOSE
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
wsSession
)
&&
ObjectUtil
.
isNotEmpty
(
wsCallbackApi
))
{
OnlineState
os
=
onlineRedisCache
.
getDataValue
(
wsSession
.
getSessionId
());
String
type
=
os
.
getType
();
String
typeId
=
os
.
getTypeId
();
if
(
type
.
equals
(
"cabinet"
))
//警柜断开连接
{
Cabinet
cabinet
=
cabinetService
.
getOne
(
new
LambdaQueryWrapper
<
Cabinet
>()
.
eq
(
Cabinet:
:
getCabinetNum
,
typeId
));
cabinet
.
setOnlineState
(
0
);
cabinet
.
setUpdateTime
(
DateTime
.
now
());
cabinetService
.
updateById
(
cabinet
);
onlineRedisCache
.
remove
(
wsSession
.
getSessionId
());
}
else
if
(
type
.
equals
(
"warehouse"
))
{
//仓库主机已连接
}
wsCallbackApi
.
callback
(
SysMsgTypeEnum
.
LISTENER_ON_CLOSE
.
getCode
(),
(
Object
)
null
,
wsSession
);
}
}
finally
{
WsSessionHandle
.
delById
(
session
.
getId
());
log
.
warn
(
"会话已关闭"
);
}
}
@OnError
public
void
onError
(
Session
session
,
Throwable
error
)
{
WsSession
<
WsSessionContainer
>
wsSession
=
WsSessionHandle
.
getSessionBySessionId
(
session
.
getId
());
WsCallbackApi
wsCallbackApi
=
WsMessageHandle
.
getWsCallback
(
SysMsgTypeEnum
.
LISTENER_ON_ERROR
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
wsCallbackApi
))
{
wsCallbackApi
.
callback
(
SysMsgTypeEnum
.
LISTENER_ON_ERROR
.
getCode
(),
(
Object
)
null
,
wsSession
);
}
}
}
jyzb-process/src/main/java/com/junmp/junmpProcess/config/ActivitiConfig.java
View file @
1c5a2b49
...
@@ -43,6 +43,7 @@ public class ActivitiConfig {
...
@@ -43,6 +43,7 @@ public class ActivitiConfig {
config
.
setDataSource
(
dataSource
);
config
.
setDataSource
(
dataSource
);
config
.
setTransactionManager
(
transactionManager
);
config
.
setTransactionManager
(
transactionManager
);
config
.
setDisableIdmEngine
(
true
);
config
.
setDisableIdmEngine
(
true
);
config
.
setAsyncExecutorNumberOfRetries
(
0
);
config
.
setDatabaseType
(
ProcessEngineConfigurationImpl
.
DATABASE_TYPE_MYSQL
);
config
.
setDatabaseType
(
ProcessEngineConfigurationImpl
.
DATABASE_TYPE_MYSQL
);
config
.
setDatabaseSchemaUpdate
(
ProcessEngineConfiguration
.
DB_SCHEMA_UPDATE_FALSE
);
config
.
setDatabaseSchemaUpdate
(
ProcessEngineConfiguration
.
DB_SCHEMA_UPDATE_FALSE
);
config
.
setDelegateExpressionFieldInjectionMode
(
DelegateExpressionFieldInjectionMode
.
MIXED
);
config
.
setDelegateExpressionFieldInjectionMode
(
DelegateExpressionFieldInjectionMode
.
MIXED
);
...
...
pom.xml
View file @
1c5a2b49
...
@@ -290,6 +290,22 @@
...
@@ -290,6 +290,22 @@
<version>
${junmp.v2.version}
</version>
<version>
${junmp.v2.version}
</version>
</dependency>
</dependency>
<!--ws模块-->
<dependency>
<groupId>
com.junmp.v2
</groupId>
<artifactId>
ws-api
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.junmp.v2
</groupId>
<artifactId>
ws-sdk
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.junmp.v2
</groupId>
<artifactId>
ws-boot-starter
</artifactId>
<version>
${project.version}
</version>
</dependency>
<!--消息推送-->
<!--消息推送-->
<dependency>
<dependency>
<groupId>
com.junmp.v2
</groupId>
<groupId>
com.junmp.v2
</groupId>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论