Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
763a306d
Commit
763a306d
authored
Aug 23, 2023
by
tangwei
Browse files
Options
Browse Files
Download
Plain Diff
解决冲突
parents
ac237e89
fa2b3210
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
558 additions
and
27 deletions
+558
-27
BizMessage.java
...om/yeejoin/amos/boot/module/jxiop/api/dto/BizMessage.java
+25
-0
PersonBasicDto.java
...eejoin/amos/boot/module/jxiop/api/dto/PersonBasicDto.java
+8
-0
RiskBizInfoVo.java
...yeejoin/amos/boot/module/jxiop/api/dto/RiskBizInfoVo.java
+24
-0
RiskDynamicDetailsVo.java
.../amos/boot/module/jxiop/api/dto/RiskDynamicDetailsVo.java
+17
-0
TableContentVo.java
...eejoin/amos/boot/module/jxiop/api/dto/TableContentVo.java
+15
-0
PersonBasic.java
...eejoin/amos/boot/module/jxiop/api/entity/PersonBasic.java
+7
-1
FeignBasicAuthRequestInterceptor.java
...ule/jxiop/api/feign/FeignBasicAuthRequestInterceptor.java
+52
-0
FeignConfiguration.java
.../amos/boot/module/jxiop/api/feign/FeignConfiguration.java
+34
-0
FeignErrorDecoder.java
...n/amos/boot/module/jxiop/api/feign/FeignErrorDecoder.java
+32
-0
McbWarningFeign.java
...oin/amos/boot/module/jxiop/api/feign/McbWarningFeign.java
+23
-0
PersonBasicController.java
...ot/module/jxiop/biz/controller/PersonBasicController.java
+55
-0
PersonYardMessage.java
...in/amos/boot/module/jxiop/biz/emqx/PersonYardMessage.java
+99
-0
StationYardMessage.java
...n/amos/boot/module/jxiop/biz/emqx/StationYardMessage.java
+3
-3
PersonBasicServiceImpl.java
...module/jxiop/biz/service/impl/PersonBasicServiceImpl.java
+111
-16
PersonYardTimeTask.java
...oot/module/jxiop/biz/service/impl/PersonYardTimeTask.java
+53
-7
No files found.
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/dto/BizMessage.java
0 → 100644
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
api
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.ToString
;
/**
* @author LiuLin
* @date 2023年08月02日 11:02
*/
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public
class
BizMessage
{
private
String
indexKey
;
private
String
indexValue
;
private
String
traceId
;
private
RiskBizInfoVo
bizInfo
;
/**
* 数据来源:实时数据、周期数据
*/
String
dataSource
;
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/dto/PersonBasicDto.java
View file @
763a306d
...
@@ -90,4 +90,12 @@ public class PersonBasicDto extends BaseDto {
...
@@ -90,4 +90,12 @@ public class PersonBasicDto extends BaseDto {
@ApiModelProperty
(
value
=
"岗位"
)
@ApiModelProperty
(
value
=
"岗位"
)
private
String
postName
;
private
String
postName
;
@ApiModelProperty
(
value
=
"赋码颜色"
)
private
String
qrcodeColor
;
@ApiModelProperty
(
value
=
"赋码描述"
)
private
String
qrcodeDesc
;
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/dto/RiskBizInfoVo.java
0 → 100644
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
api
.
dto
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author LiuLin
* @date 2023年08月02日 11:02
*/
@Data
public
class
RiskBizInfoVo
{
private
String
warningObjectName
;
private
String
warningObjectCode
;
private
String
warningTime
;
private
String
sourceAttribution
;
private
String
sourceAttributionDesc
;
private
String
sourceSupplyField
;
private
String
bussId
;
private
String
bussName
;
private
String
type
;
private
List
<
RiskDynamicDetailsVo
>
dynamicDetails
;
private
String
warningObjectType
;
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/dto/RiskDynamicDetailsVo.java
0 → 100644
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
api
.
dto
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author LiuLin
* @date 2023年08月02日 11:02
*/
@Data
public
class
RiskDynamicDetailsVo
{
private
String
tabName
;
private
List
<
TableContentVo
>
tabContent
;
private
Map
<
String
,
Object
>
specialMap
;
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/dto/TableContentVo.java
0 → 100644
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
api
.
dto
;
import
lombok.Data
;
/**
* @author LiuLin
* @date 2023年08月02日 11:02
*/
@Data
public
class
TableContentVo
{
private
String
key
;
private
String
label
;
private
Object
value
;
private
String
type
;
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/entity/PersonBasic.java
View file @
763a306d
...
@@ -151,8 +151,14 @@ public class PersonBasic extends BaseEntity {
...
@@ -151,8 +151,14 @@ public class PersonBasic extends BaseEntity {
private
String
postName
;
private
String
postName
;
/**
/**
*
岗位
*
赋码颜色
*/
*/
@TableField
(
"qrcode_color"
)
@TableField
(
"qrcode_color"
)
private
String
qrcodeColor
;
private
String
qrcodeColor
;
/**
* 赋码颜色描述
*/
@TableField
(
"qrcode_desc"
)
private
String
qrcodeDesc
;
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/feign/FeignBasicAuthRequestInterceptor.java
0 → 100644
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
api
.
feign
;
import
com.yeejoin.amos.component.robot.AmosRequestContext
;
import
feign.RequestInterceptor
;
import
feign.RequestTemplate
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
/**
* @author fengwang
* @date 2022-07-28.
*/
public
class
FeignBasicAuthRequestInterceptor
implements
RequestInterceptor
{
@Autowired
AmosRequestContext
amosAuth
;
public
FeignBasicAuthRequestInterceptor
()
{
}
@Override
public
void
apply
(
RequestTemplate
template
)
{
ServletRequestAttributes
attributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
if
(
attributes
!=
null
)
{
HttpServletRequest
request
=
attributes
.
getRequest
();
/* Get token from header */
String
authToken
=
request
.
getHeader
(
"token"
);
/* If token not found get it from request parameter */
if
(
StringUtils
.
isBlank
(
authToken
))
{
authToken
=
request
.
getHeader
(
"X-Access-Token"
);
}
template
.
header
(
"X-Access-Token"
,
authToken
);
template
.
header
(
"token"
,
authToken
);
template
.
header
(
"appKey"
,
request
.
getHeader
(
"appKey"
));
template
.
header
(
"product"
,
request
.
getHeader
(
"product"
));
template
.
header
(
"clientType"
,
"feignClient"
);
}
else
{
template
.
header
(
"X-Access-Token"
,
amosAuth
.
getToken
());
template
.
header
(
"token"
,
amosAuth
.
getToken
());
template
.
header
(
"appKey"
,
amosAuth
.
getAppKey
());
template
.
header
(
"product"
,
amosAuth
.
getProduct
());
template
.
header
(
"clientType"
,
"feignClient"
);
}
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/feign/FeignConfiguration.java
0 → 100644
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
api
.
feign
;
import
feign.codec.Encoder
;
import
feign.form.spring.SpringFormEncoder
;
import
org.springframework.beans.factory.ObjectFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.http.HttpMessageConverters
;
import
org.springframework.cloud.openfeign.support.SpringEncoder
;
import
org.springframework.context.annotation.Bean
;
/**
* @author fengwang
* @date 2022-07-28.
*/
public
class
FeignConfiguration
{
@Autowired
private
ObjectFactory
<
HttpMessageConverters
>
messageConverters
;
@Bean
public
Encoder
feignFormEncoder
()
{
return
new
SpringFormEncoder
(
new
SpringEncoder
(
messageConverters
));
}
@Bean
public
FeignBasicAuthRequestInterceptor
basicAuthRequestInterceptor
()
{
return
new
FeignBasicAuthRequestInterceptor
();
}
@Bean
public
FeignErrorDecoder
errorDecoder
(){
return
new
FeignErrorDecoder
();
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/feign/FeignErrorDecoder.java
0 → 100644
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
api
.
feign
;
import
com.alibaba.fastjson.JSONObject
;
import
feign.Response
;
import
feign.Util
;
import
feign.codec.ErrorDecoder
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.IOException
;
/**
* @author fengwang
* @date 2022-07-28.
*/
public
class
FeignErrorDecoder
implements
ErrorDecoder
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
FeignErrorDecoder
.
class
);
@Override
public
Exception
decode
(
String
methodKey
,
Response
response
)
{
String
msg
=
null
;
try
{
msg
=
Util
.
toString
(
response
.
body
().
asReader
(
Util
.
UTF_8
));
JSONObject
object
=
JSONObject
.
parseObject
(
msg
);
throw
new
RuntimeException
(
object
.
get
(
"devMessage"
).
toString
());
}
catch
(
IOException
e
)
{
log
.
error
(
"feign 调用失败"
+
e
.
getMessage
());
}
throw
new
RuntimeException
(
methodKey
+
"远程调用失败"
);
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/feign/McbWarningFeign.java
0 → 100644
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
api
.
feign
;
import
com.yeejoin.amos.component.feign.config.InnerInvokException
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
import
java.util.Map
;
@FeignClient
(
name
=
"${mcb.warning.name:MCB-SERVER}"
,
path
=
"warning"
,
configuration
=
{
FeignConfiguration
.
class
})
public
interface
McbWarningFeign
{
/**
* 根据风险来源查询人员红黄绿吗信息
*/
@GetMapping
(
"/task/getQrCodeCount"
)
FeignClientResult
<
Map
<
String
,
Object
>>
getQrCodeCount
(
@RequestParam
(
required
=
false
,
value
=
"parentCode"
)
String
parentCode
,
@RequestParam
(
value
=
"warningObjectType"
)
String
warningObjectType
);
}
amos-boot-system-jxiop/amos-boot-module-jxiop-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/controller/PersonBasicController.java
View file @
763a306d
...
@@ -3,7 +3,10 @@ package com.yeejoin.amos.boot.module.jxiop.biz.controller;
...
@@ -3,7 +3,10 @@ package com.yeejoin.amos.boot.module.jxiop.biz.controller;
import
com.yeejoin.amos.boot.module.jxiop.api.dto.PersonDto
;
import
com.yeejoin.amos.boot.module.jxiop.api.dto.PersonDto
;
import
com.yeejoin.amos.boot.module.jxiop.api.dto.StationBasicDto
;
import
com.yeejoin.amos.boot.module.jxiop.api.dto.StationBasicDto
;
import
com.yeejoin.amos.boot.module.jxiop.api.dto.UserMapperDto
;
import
com.yeejoin.amos.boot.module.jxiop.api.dto.UserMapperDto
;
import
com.yeejoin.amos.boot.module.jxiop.api.feign.McbWarningFeign
;
import
com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonBasicMapper
;
import
com.yeejoin.amos.component.feign.config.InnerInvokException
;
import
com.yeejoin.amos.component.feign.config.InnerInvokException
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
org.apache.poi.ss.formula.functions.T
;
import
org.apache.poi.ss.formula.functions.T
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
@@ -12,6 +15,7 @@ import io.swagger.annotations.Api;
...
@@ -12,6 +15,7 @@ import io.swagger.annotations.Api;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -44,6 +48,13 @@ public class PersonBasicController extends BaseController {
...
@@ -44,6 +48,13 @@ public class PersonBasicController extends BaseController {
@Autowired
@Autowired
PersonBasicServiceImpl
personBasicServiceImpl
;
PersonBasicServiceImpl
personBasicServiceImpl
;
@Autowired
McbWarningFeign
mcbWarningFeign
;
@Autowired
PersonBasicMapper
personBasicMapper
;
/**
/**
* 新增人员基本信息
* 新增人员基本信息
*
*
...
@@ -208,4 +219,48 @@ public class PersonBasicController extends BaseController {
...
@@ -208,4 +219,48 @@ public class PersonBasicController extends BaseController {
return
ResponseHelper
.
buildResponse
(
resultList
);
return
ResponseHelper
.
buildResponse
(
resultList
);
}
}
/**
* 评估大屏 - 人员赋码数量等统计
*
* @param parentCode 父级code
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/getQrCodeCount"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"评估大屏 - 人员赋码数量等统计"
,
notes
=
"评估大屏 - 人员赋码数量等统计"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
getQrCodeCount
(
@RequestParam
(
required
=
false
,
value
=
"parentCode"
)
String
parentCode
)
{
FeignClientResult
<
Map
<
String
,
Object
>>
sevenEntity
=
null
;
try
{
sevenEntity
=
mcbWarningFeign
.
getQrCodeCount
(
parentCode
,
"RYFM"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(
sevenEntity
!=
null
&&
200
==
sevenEntity
.
getStatus
())
{
Map
<
String
,
Object
>
result
=
sevenEntity
.
getResult
();
String
red
=
result
.
get
(
"red"
).
toString
();
String
yellow
=
result
.
get
(
"yellow"
).
toString
();
String
redToGreen
=
result
.
get
(
"redToGreen"
).
toString
();
String
yellowToGreen
=
result
.
get
(
"yellowToGreen"
).
toString
();
Integer
countAll
=
personBasicMapper
.
getPersonYardByPageCount
(
parentCode
);
result
.
put
(
"redToGreenPercent"
,
getPercent
(
new
BigDecimal
(
red
),
new
BigDecimal
(
countAll
)));
result
.
put
(
"redPercent"
,
getPercent
(
new
BigDecimal
(
redToGreen
),
new
BigDecimal
(
countAll
)));
result
.
put
(
"yellowToGreenPercent"
,
getPercent
(
new
BigDecimal
(
yellow
),
new
BigDecimal
(
countAll
)));
result
.
put
(
"yellowPercent"
,
getPercent
(
new
BigDecimal
(
yellowToGreen
),
new
BigDecimal
(
countAll
)));
return
ResponseHelper
.
buildResponse
(
result
);
}
return
ResponseHelper
.
buildResponse
(
null
);
}
/**
* 百分比
*
* @param numerator 分子
* @param denominator 分母
* @return 百分比
*/
private
double
getPercent
(
BigDecimal
numerator
,
BigDecimal
denominator
)
{
BigDecimal
multiply
=
numerator
.
divide
(
denominator
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
?
denominator
:
new
BigDecimal
(
1
),
4
,
BigDecimal
.
ROUND_DOWN
).
multiply
(
new
BigDecimal
(
100
));
return
Math
.
abs
(
multiply
.
doubleValue
());
}
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/emqx/PersonYardMessage.java
0 → 100644
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
emqx
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.yeejoin.amos.boot.biz.common.entity.BaseEntity
;
import
com.yeejoin.amos.boot.module.jxiop.api.entity.PersonBasic
;
import
com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonBasicMapper
;
import
com.yeejoin.amos.boot.module.jxiop.api.mapper.StationBasicMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.service.impl.PersonBasicServiceImpl
;
import
com.yeejoin.amos.component.robot.AmosRequestContext
;
import
lombok.extern.slf4j.Slf4j
;
import
org.eclipse.paho.client.mqttv3.MqttException
;
import
org.eclipse.paho.client.mqttv3.MqttMessage
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.stereotype.Component
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
org.typroject.tyboot.component.emq.EmqxListener
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
javax.annotation.PostConstruct
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.LinkedBlockingQueue
;
@Component
@EnableScheduling
@Slf4j
public
class
PersonYardMessage
extends
EmqxListener
{
@Autowired
private
AmosRequestContext
amosAuth
;
@Autowired
protected
EmqKeeper
emqKeeper
;
@Autowired
private
PersonBasicMapper
personBasicMapper
;
// 江西电建接收红黄绿码主题
private
static
final
String
RYFM_WARNING_CODING
=
"ryfm/warning/coding"
;
private
static
final
BlockingQueue
<
JSONObject
>
blockingQueue
=
new
LinkedBlockingQueue
<
JSONObject
>();
@PostConstruct
void
init
()
throws
Exception
{
new
Thread
(
taskRunnable
).
start
();
emqKeeper
.
subscript
(
RYFM_WARNING_CODING
,
2
,
this
);
}
@Override
public
void
processMessage
(
String
topic
,
MqttMessage
message
)
throws
Exception
{
log
.
info
(
"人员赋码消息{}"
,
new
String
(
message
.
getPayload
()));
JSONObject
ja
=
JSON
.
parseObject
(
new
String
(
message
.
getPayload
()));
blockingQueue
.
add
(
ja
);
}
Runnable
taskRunnable
=
new
Runnable
()
{
@Override
public
void
run
()
{
boolean
isRun
=
true
;
int
k
=
0
;
while
(
isRun
)
{
k
++;
isRun
=
k
<
Integer
.
MAX_VALUE
;
try
{
JSONObject
analysisResult
=
blockingQueue
.
take
();
// RequestContext.setAppKey(amosAuth.getAppKey());
// RequestContext.setProduct(amosAuth.getProduct());
// RequestContext.setToken(amosAuth.getToken());
jxIopUpdate
(
analysisResult
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
};
public
void
jxIopUpdate
(
JSONObject
analysisResult
)
{
log
.
info
(
"人员赋码数据:{}"
,
analysisResult
);
String
warningObjectCode
=
String
.
valueOf
(
analysisResult
.
get
(
"warningObjectCode"
));
String
codeColor
=
String
.
valueOf
(
analysisResult
.
get
(
"codeColor"
));
PersonBasic
personBasic
=
personBasicMapper
.
selectById
(
warningObjectCode
);
if
(
ObjectUtils
.
isEmpty
(
personBasic
))
{
try
{
emqKeeper
.
getMqttClient
().
publish
(
"ryfm/warning/coding"
,
analysisResult
.
toJSONString
().
getBytes
(),
2
,
Boolean
.
FALSE
);
}
catch
(
MqttException
e
)
{
e
.
printStackTrace
();
}
}
else
{
personBasic
.
setQrcodeColor
(
codeColor
);
personBasicMapper
.
updateById
(
personBasic
);
}
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/emqx/StationYardMessage.java
View file @
763a306d
...
@@ -64,9 +64,9 @@ public class StationYardMessage extends EmqxListener {
...
@@ -64,9 +64,9 @@ public class StationYardMessage extends EmqxListener {
isRun
=
k
<
Integer
.
MAX_VALUE
;
isRun
=
k
<
Integer
.
MAX_VALUE
;
try
{
try
{
List
<
Map
<
String
,
String
>>
analysisResult
=
blockingQueue
.
take
();
List
<
Map
<
String
,
String
>>
analysisResult
=
blockingQueue
.
take
();
RequestContext
.
setAppKey
(
amosAuth
.
getAppKey
());
//
RequestContext.setAppKey(amosAuth.getAppKey());
RequestContext
.
setProduct
(
amosAuth
.
getProduct
());
//
RequestContext.setProduct(amosAuth.getProduct());
RequestContext
.
setToken
(
amosAuth
.
getToken
());
//
RequestContext.setToken(amosAuth.getToken());
jxIopUpdate
(
analysisResult
);
jxIopUpdate
(
analysisResult
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
...
amos-boot-system-jxiop/amos-boot-module-jxiop-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/impl/PersonBasicServiceImpl.java
View file @
763a306d
...
@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...
@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.yeejoin.amos.boot.biz.common.feign.AmosFeignService
;
import
com.yeejoin.amos.boot.biz.common.feign.AmosFeignService
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
...
@@ -28,15 +30,19 @@ import com.yeejoin.amos.feign.privilege.util.DesUtil;
...
@@ -28,15 +30,19 @@ import com.yeejoin.amos.feign.privilege.util.DesUtil;
import
com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel
;
import
com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.eclipse.paho.client.mqttv3.MqttException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.lang.reflect.Field
;
import
java.nio.charset.StandardCharsets
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -77,6 +83,20 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
...
@@ -77,6 +83,20 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
@Autowired
@Autowired
private
RedisUtils
redisUtils
;
private
RedisUtils
redisUtils
;
@Autowired
protected
EmqKeeper
emqKeeper
;
/**
* 人员赋码触发风险模型
*/
public
static
final
String
RYFM_DATA_MQTT_TOPIC
=
"ryfm/data/analysis"
;
/**
* 人员红黄码恢复为绿码
*/
public
static
final
String
RYFM_GREEN
=
"ryfm/person/green"
;
private
String
UPDATE
=
"UPDATE"
;
private
String
UPDATE
=
"UPDATE"
;
...
@@ -117,6 +137,23 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
...
@@ -117,6 +137,23 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
redisUtils
.
set
(
Constants
.
JXIOP_DICT_CERTIFICATES
,
collect2
);
redisUtils
.
set
(
Constants
.
JXIOP_DICT_CERTIFICATES
,
collect2
);
}
}
public
RiskBizInfoVo
fetchData
(
PersonBasic
personBasic
,
PersonAccount
personAccount
)
{
RiskBizInfoVo
riskBizInfoVo
=
new
RiskBizInfoVo
();
riskBizInfoVo
.
setWarningObjectName
(
personAccount
.
getProjectName
()
+
personBasic
.
getPostName
()
+
personAccount
.
getName
());
riskBizInfoVo
.
setWarningObjectCode
(
String
.
valueOf
(
personBasic
.
getSequenceNbr
()));
riskBizInfoVo
.
setSourceAttribution
(
personBasic
.
getProjectOrgCode
());
riskBizInfoVo
.
setSourceAttributionDesc
(
personAccount
.
getProjectName
());
riskBizInfoVo
.
setWarningObjectType
(
"RYFM"
);
List
<
RiskDynamicDetailsVo
>
detailsVos
=
new
ArrayList
<>();
RiskDynamicDetailsVo
dynamicDetailsVo
=
new
RiskDynamicDetailsVo
();
dynamicDetailsVo
.
setTabName
(
"预警详情"
);
detailsVos
.
add
(
dynamicDetailsVo
);
riskBizInfoVo
.
setDynamicDetails
(
detailsVos
);
return
riskBizInfoVo
;
}
/**
/**
* 新增
* 新增
*/
*/
...
@@ -139,7 +176,8 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
...
@@ -139,7 +176,8 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
PersonBasic
personBasic
=
new
PersonBasic
();
PersonBasic
personBasic
=
new
PersonBasic
();
BeanUtils
.
copyProperties
(
personUser
,
personBasic
);
BeanUtils
.
copyProperties
(
personUser
,
personBasic
);
//默认红码
//默认红码
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
RED
.
getCode
());
// personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
personBasic
.
setQrcodeDesc
(
"证书不全"
);
// 该岗位应获得的证书
// 该岗位应获得的证书
List
<
String
>
list2
=
new
ArrayList
<>();
List
<
String
>
list2
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
personUser
.
getPostName
()))
{
if
(
StringUtils
.
isNotEmpty
(
personUser
.
getPostName
()))
{
...
@@ -172,12 +210,33 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
...
@@ -172,12 +210,33 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
}
}
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isInMonth
==
0
&&
isOver
==
0
)
{
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isInMonth
==
0
&&
isOver
==
0
)
{
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
GREEN
.
getCode
());
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
GREEN
.
getCode
());
personBasic
.
setQrcodeDesc
(
"证书齐全"
);
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
1
)
{
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
1
)
{
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
RED
.
getCode
());
// personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
personBasic
.
setQrcodeDesc
(
"证书不全"
);
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
0
&&
isInMonth
==
1
)
{
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
0
&&
isInMonth
==
1
)
{
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
YELLOW
.
getCode
());
// personBasic.setQrcodeColor(QrcodeColorEnum.YELLOW.getCode());
personBasic
.
setQrcodeDesc
(
"证书临期"
);
}
}
this
.
baseMapper
.
insert
(
personBasic
);
this
.
baseMapper
.
insert
(
personBasic
);
CompanyModel
companyModel
=
new
CompanyModel
();
//单位
companyModel
=
this
.
getCompanyModel
(
personAccount
.
getProjectId
());
if
(
"证书不全"
.
equals
(
personBasic
.
getQrcodeDesc
())
||
"证书临期"
.
equals
(
personBasic
.
getQrcodeDesc
()))
{
personBasic
.
setProjectOrgCode
(
companyModel
.
getOrgCode
());
personAccount
.
setProjectName
(
companyModel
.
getCompanyName
());
BizMessage
bizMessage
=
new
BizMessage
();
bizMessage
.
setIndexKey
(
"RYFM"
);
bizMessage
.
setIndexValue
(
personBasic
.
getPostName
()
+
personBasic
.
getQrcodeDesc
());
RiskBizInfoVo
riskBizInfoVo
=
fetchData
(
personBasic
,
personAccount
);
bizMessage
.
setBizInfo
(
riskBizInfoVo
);
bizMessage
.
setTraceId
(
String
.
valueOf
(
personBasic
.
getSequenceNbr
()));
try
{
emqKeeper
.
getMqttClient
().
publish
(
RYFM_DATA_MQTT_TOPIC
,
JSON
.
toJSONString
(
bizMessage
).
getBytes
(
StandardCharsets
.
UTF_8
),
2
,
false
);
}
catch
(
MqttException
e
)
{
e
.
printStackTrace
();
}
}
if
(
CollectionUtils
.
isNotEmpty
(
personCertificate
.
getCertificationInfo
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
personCertificate
.
getCertificationInfo
()))
{
personCertificate
.
getCertificationInfo
().
forEach
(
item
->
{
personCertificate
.
getCertificationInfo
().
forEach
(
item
->
{
item
.
setPersonId
(
personBasic
.
getSequenceNbr
());
item
.
setPersonId
(
personBasic
.
getSequenceNbr
());
...
@@ -234,9 +293,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
...
@@ -234,9 +293,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
if
(
personAccount
.
getDepartmentId
()
!=
null
)
{
if
(
personAccount
.
getDepartmentId
()
!=
null
)
{
departmentModel
=
this
.
getdepartmentModel
(
personAccount
.
getDepartmentId
());
departmentModel
=
this
.
getdepartmentModel
(
personAccount
.
getDepartmentId
());
}
}
CompanyModel
companyModel
=
new
CompanyModel
();
//单位
companyModel
=
this
.
getCompanyModel
(
personAccount
.
getProjectId
());
if
(
departmentModel
!=
null
)
{
if
(
departmentModel
!=
null
)
{
//personBasic.setProjectOrgCode(departmentModel.getOrgCode());
//personBasic.setProjectOrgCode(departmentModel.getOrgCode());
personAccount
.
setProjectDepartmentName
(
departmentModel
.
getDepartmentName
());
personAccount
.
setProjectDepartmentName
(
departmentModel
.
getDepartmentName
());
...
@@ -285,7 +342,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
...
@@ -285,7 +342,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
personUser
.
setPhone
(
personAccount
.
getPhoneNum
());
personUser
.
setPhone
(
personAccount
.
getPhoneNum
());
//人员基础信息
//人员基础信息
PersonBasic
personBasic
=
new
PersonBasic
(
);
PersonBasic
personBasic
=
personBasicMapper
.
selectById
(
sequenceNbr
);
personBasic
.
setSequenceNbr
(
sequenceNbr
);
personBasic
.
setSequenceNbr
(
sequenceNbr
);
personAccount
.
setPassword
(
DesUtil
.
encode
(
personAccount
.
getPassword
(),
secretKey
));
personAccount
.
setPassword
(
DesUtil
.
encode
(
personAccount
.
getPassword
(),
secretKey
));
personAccount
.
setSecondaryPassword
(
DesUtil
.
encode
(
personAccount
.
getSecondaryPassword
(),
secretKey
));
personAccount
.
setSecondaryPassword
(
DesUtil
.
encode
(
personAccount
.
getSecondaryPassword
(),
secretKey
));
...
@@ -306,7 +363,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
...
@@ -306,7 +363,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
personCertificateService
.
remove
(
wrapper
);
personCertificateService
.
remove
(
wrapper
);
//默认红码
//默认红码
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
RED
.
getCode
());
//
personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
// 该岗位应获得的证书
// 该岗位应获得的证书
List
<
String
>
list2
=
new
ArrayList
<>();
List
<
String
>
list2
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
personUser
.
getPostName
()))
{
if
(
StringUtils
.
isNotEmpty
(
personUser
.
getPostName
()))
{
...
@@ -337,15 +394,57 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
...
@@ -337,15 +394,57 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
list
.
remove
(
item
.
getCertificateName
());
list
.
remove
(
item
.
getCertificateName
());
}
}
}
}
CompanyModel
companyModel
=
new
CompanyModel
();
//单位
companyModel
=
this
.
getCompanyModel
(
personAccount
.
getProjectId
());
String
qrcodeDescOld
=
personBasic
.
getQrcodeDesc
();
String
qrcodeColorOld
=
personBasic
.
getQrcodeColor
();
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isInMonth
==
0
&&
isOver
==
0
)
{
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isInMonth
==
0
&&
isOver
==
0
)
{
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
GREEN
.
getCode
());
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
GREEN
.
getCode
());
personBasic
.
setQrcodeDesc
(
"证书齐全"
);
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
1
)
{
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
1
)
{
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
RED
.
getCode
());
// personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
personBasic
.
setQrcodeDesc
(
"证书不全"
);
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
0
&&
isInMonth
==
1
)
{
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
0
&&
isInMonth
==
1
)
{
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
YELLOW
.
getCode
());
// personBasic.setQrcodeColor(QrcodeColorEnum.YELLOW.getCode());
personBasic
.
setQrcodeDesc
(
"证书临期"
);
}
}
this
.
personBasicMapper
.
updateById
(
personBasic
);
personBasic
.
setProjectOrgCode
(
companyModel
.
getOrgCode
());
personAccount
.
setProjectName
(
companyModel
.
getCompanyName
());
if
(!
qrcodeDescOld
.
equals
(
personBasic
.
getQrcodeDesc
()))
{
personBasic
.
setRecDate
(
new
Date
());
this
.
personBasicMapper
.
updateById
(
personBasic
);
if
((
"证书不全"
.
equals
(
personBasic
.
getQrcodeDesc
())
||
"证书临期"
.
equals
(
personBasic
.
getQrcodeDesc
())))
{
BizMessage
bizMessage
=
new
BizMessage
();
bizMessage
.
setIndexKey
(
"RYFM"
);
bizMessage
.
setIndexValue
(
personBasic
.
getPostName
()
+
personBasic
.
getQrcodeDesc
());
RiskBizInfoVo
riskBizInfoVo
=
fetchData
(
personBasic
,
personAccount
);
bizMessage
.
setBizInfo
(
riskBizInfoVo
);
bizMessage
.
setDataSource
(
"人员赋码"
);
try
{
emqKeeper
.
getMqttClient
().
publish
(
PersonBasicServiceImpl
.
RYFM_DATA_MQTT_TOPIC
,
JSON
.
toJSONString
(
bizMessage
).
getBytes
(
StandardCharsets
.
UTF_8
),
2
,
false
);
}
catch
(
MqttException
e
)
{
e
.
printStackTrace
();
}
}
else
if
(
"证书齐全"
.
equals
(
personBasic
.
getQrcodeDesc
()))
{
HashMap
<
String
,
String
>
personMap
=
new
HashMap
<>();
personMap
.
put
(
"objectId"
,
String
.
valueOf
(
personBasic
.
getSequenceNbr
()));
personMap
.
put
(
"qrCodeColor"
,
qrcodeColorOld
);
personMap
.
put
(
"warningObjectType"
,
"RYFM"
);
personMap
.
put
(
"sourceAttribution"
,
personBasic
.
getProjectOrgCode
());
personMap
.
put
(
"sourceAttributionDesc"
,
personAccount
.
getProjectName
());
personMap
.
put
(
"warningSourceType"
,
"人员赋码"
);
try
{
emqKeeper
.
getMqttClient
().
publish
(
PersonBasicServiceImpl
.
RYFM_GREEN
,
JSON
.
toJSONString
(
personMap
).
getBytes
(
StandardCharsets
.
UTF_8
),
2
,
false
);
}
catch
(
MqttException
e
)
{
e
.
printStackTrace
();
}
}
}
//人员账号信息
//人员账号信息
personAccount
.
setPersonId
(
sequenceNbr
);
personAccount
.
setPersonId
(
sequenceNbr
);
oldpersonAccount
=
personAccountService
.
getById
(
personAccount
.
getSequenceNbr
());
oldpersonAccount
=
personAccountService
.
getById
(
personAccount
.
getSequenceNbr
());
...
@@ -390,10 +489,6 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
...
@@ -390,10 +489,6 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
if
(
personAccount
.
getDepartmentId
()
!=
null
)
{
if
(
personAccount
.
getDepartmentId
()
!=
null
)
{
departmentModel
=
this
.
getdepartmentModel
(
personAccount
.
getDepartmentId
());
departmentModel
=
this
.
getdepartmentModel
(
personAccount
.
getDepartmentId
());
}
}
CompanyModel
companyModel
=
new
CompanyModel
();
//单位
companyModel
=
this
.
getCompanyModel
(
personAccount
.
getProjectId
());
BeanUtils
.
copyProperties
(
personUser
,
personBasic
);
BeanUtils
.
copyProperties
(
personUser
,
personBasic
);
if
(
departmentModel
!=
null
)
{
if
(
departmentModel
!=
null
)
{
//personBasic.setProjectOrgCode(departmentModel.getOrgCode());
//personBasic.setProjectOrgCode(departmentModel.getOrgCode());
...
...
amos-boot-system-jxiop/amos-boot-module-jxiop-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/impl/PersonYardTimeTask.java
View file @
763a306d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
service
.
impl
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.yeejoin.amos.boot.biz.common.feign.AmosFeignService
;
import
com.yeejoin.amos.boot.biz.common.feign.AmosFeignService
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jxiop.api.Enum.QrcodeColorEnum
;
import
com.yeejoin.amos.boot.module.jxiop.api.Enum.QrcodeColorEnum
;
import
com.yeejoin.amos.boot.module.jxiop.api.dto.BizMessage
;
import
com.yeejoin.amos.boot.module.jxiop.api.dto.RiskBizInfoVo
;
import
com.yeejoin.amos.boot.module.jxiop.api.entity.PersonAccount
;
import
com.yeejoin.amos.boot.module.jxiop.api.entity.PersonBasic
;
import
com.yeejoin.amos.boot.module.jxiop.api.entity.PersonBasic
;
import
com.yeejoin.amos.boot.module.jxiop.api.entity.PersonCertificate
;
import
com.yeejoin.amos.boot.module.jxiop.api.entity.PersonCertificate
;
import
com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonAccountMapper
;
import
com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonBasicMapper
;
import
com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonBasicMapper
;
import
com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonCertificateMapper
;
import
com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonCertificateMapper
;
import
com.yeejoin.amos.boot.module.jxiop.api.util.Constants
;
import
com.yeejoin.amos.boot.module.jxiop.api.util.Constants
;
import
com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel
;
import
com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.eclipse.paho.client.mqttv3.MqttException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
java.nio.charset.StandardCharsets
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -42,6 +50,14 @@ public class PersonYardTimeTask {
...
@@ -42,6 +50,14 @@ public class PersonYardTimeTask {
@Autowired
@Autowired
private
RedisUtils
redisUtils
;
private
RedisUtils
redisUtils
;
@Autowired
private
PersonAccountMapper
personAccountMapper
;
@Autowired
protected
EmqKeeper
emqKeeper
;
@Scheduled
(
cron
=
"0 0 0 1/1 * ? "
)
@Scheduled
(
cron
=
"0 0 0 1/1 * ? "
)
public
void
timeYardTimeTask
()
{
public
void
timeYardTimeTask
()
{
if
(!
redisUtils
.
hasKey
(
Constants
.
JXIOP_DICT_POST
)
||
!
redisUtils
.
hasKey
(
Constants
.
JXIOP_DICT_CERTIFICATES
))
{
if
(!
redisUtils
.
hasKey
(
Constants
.
JXIOP_DICT_POST
)
||
!
redisUtils
.
hasKey
(
Constants
.
JXIOP_DICT_CERTIFICATES
))
{
...
@@ -55,13 +71,15 @@ public class PersonYardTimeTask {
...
@@ -55,13 +71,15 @@ public class PersonYardTimeTask {
List
<
PersonCertificate
>
personCertificates
=
personCertificateMapper
.
selectList
(
null
);
List
<
PersonCertificate
>
personCertificates
=
personCertificateMapper
.
selectList
(
null
);
List
<
PersonAccount
>
personAccounts
=
personAccountMapper
.
selectList
(
null
);
Map
<
Long
,
PersonAccount
>
personAccountMap
=
personAccounts
.
stream
().
collect
(
Collectors
.
toMap
(
PersonAccount:
:
getPersonId
,
t
->
t
));
Map
<
Long
,
List
<
PersonCertificate
>>
perCertificateMap
=
personCertificates
.
stream
().
filter
(
item
->
ObjectUtils
.
isNotEmpty
(
item
.
getPersonId
())).
collect
(
Collectors
.
groupingBy
(
PersonCertificate:
:
getPersonId
));
Map
<
Long
,
List
<
PersonCertificate
>>
perCertificateMap
=
personCertificates
.
stream
().
filter
(
item
->
ObjectUtils
.
isNotEmpty
(
item
.
getPersonId
())).
collect
(
Collectors
.
groupingBy
(
PersonCertificate:
:
getPersonId
));
List
<
PersonBasic
>
personBasics
=
new
ArrayList
<>();
List
<
PersonBasic
>
personBasics
=
new
ArrayList
<>();
personBasicList
.
forEach
(
personBasic
->
{
personBasicList
.
forEach
(
personBasic
->
{
List
<
PersonCertificate
>
personCertificateList
=
perCertificate
Map
.
get
(
personBasic
.
getSequenceNbr
());
PersonAccount
personAccount
=
personAccount
Map
.
get
(
personBasic
.
getSequenceNbr
());
String
yuanShiQrcodeColor
=
personBasic
.
getQrcodeColor
(
);
List
<
PersonCertificate
>
personCertificateList
=
perCertificateMap
.
get
(
personBasic
.
getSequenceNbr
()
);
//默认红码
//默认红码
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
RED
.
getCode
());
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
RED
.
getCode
());
// 该岗位应获得的证书
// 该岗位应获得的证书
...
@@ -97,18 +115,46 @@ public class PersonYardTimeTask {
...
@@ -97,18 +115,46 @@ public class PersonYardTimeTask {
list
.
remove
(
item
.
getCertificateName
());
list
.
remove
(
item
.
getCertificateName
());
}
}
}
}
String
qrcodeDescOld
=
personBasic
.
getQrcodeDesc
();
String
qrcodeColorOld
=
personBasic
.
getQrcodeColor
();
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isInMonth
==
0
&&
isOver
==
0
)
{
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isInMonth
==
0
&&
isOver
==
0
)
{
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
GREEN
.
getCode
());
personBasic
.
setQrcodeColor
(
QrcodeColorEnum
.
GREEN
.
getCode
());
personBasic
.
setQrcodeDesc
(
"证书齐全"
);
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
1
)
{
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
1
)
{
personBasic
.
setQrcode
Color
(
QrcodeColorEnum
.
RED
.
getCode
()
);
personBasic
.
setQrcode
Desc
(
"证书不全"
);
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
0
&&
isInMonth
==
1
)
{
}
else
if
(
CollectionUtils
.
isEmpty
(
list
)
&&
isOver
==
0
&&
isInMonth
==
1
)
{
personBasic
.
setQrcode
Color
(
QrcodeColorEnum
.
YELLOW
.
getCode
()
);
personBasic
.
setQrcode
Desc
(
"证书临期"
);
}
}
if
(!
yuanShiQrcodeColor
.
equals
(
personBasic
.
getQrcodeColor
()))
{
if
(!
qrcodeDescOld
.
equals
(
personBasic
.
getQrcodeDesc
()))
{
personBasic
.
setRecDate
(
new
Date
());
personBasic
.
setRecDate
(
new
Date
());
personBasics
.
add
(
personBasic
);
personBasicService
.
updateById
(
personBasic
);
if
((
"证书不全"
.
equals
(
personBasic
.
getQrcodeDesc
())
||
"证书临期"
.
equals
(
personBasic
.
getQrcodeDesc
())))
{
BizMessage
bizMessage
=
new
BizMessage
();
bizMessage
.
setIndexKey
(
"RYFM"
);
bizMessage
.
setIndexValue
(
personBasic
.
getPostName
()
+
personBasic
.
getQrcodeDesc
());
RiskBizInfoVo
riskBizInfoVo
=
personBasicService
.
fetchData
(
personBasic
,
personAccount
);
bizMessage
.
setBizInfo
(
riskBizInfoVo
);
try
{
emqKeeper
.
getMqttClient
().
publish
(
PersonBasicServiceImpl
.
RYFM_DATA_MQTT_TOPIC
,
JSON
.
toJSONString
(
bizMessage
).
getBytes
(
StandardCharsets
.
UTF_8
),
2
,
false
);
}
catch
(
MqttException
e
)
{
e
.
printStackTrace
();
}
}
}
else
if
(
"证书齐全"
.
equals
(
personBasic
.
getQrcodeDesc
()))
{
HashMap
<
String
,
String
>
personMap
=
new
HashMap
<>();
personMap
.
put
(
"objectId"
,
String
.
valueOf
(
personBasic
.
getSequenceNbr
()));
personMap
.
put
(
"qrCodeColor"
,
qrcodeColorOld
);
personMap
.
put
(
"warningObjectType"
,
"RYFM"
);
personMap
.
put
(
"sourceAttribution"
,
personBasic
.
getProjectOrgCode
());
personMap
.
put
(
"sourceAttributionDesc"
,
personAccount
.
getProjectName
());
try
{
emqKeeper
.
getMqttClient
().
publish
(
PersonBasicServiceImpl
.
RYFM_GREEN
,
JSON
.
toJSONString
(
personMap
).
getBytes
(
StandardCharsets
.
UTF_8
),
2
,
false
);
}
catch
(
MqttException
e
)
{
e
.
printStackTrace
();
}
}
}
});
});
personBasicService
.
updateBatchById
(
personBasics
);
}
}
}
}
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