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
3321bcb5
Commit
3321bcb5
authored
Jan 04, 2024
by
chenzhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
工作台 消息及短信功能
parent
84724514
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
159 additions
and
22 deletions
+159
-22
CommonController.java
...mos/boot/module/jyjc/biz/controller/CommonController.java
+14
-0
EquipRegularlyRemindServicelmpl.java
...yjc/biz/service/impl/EquipRegularlyRemindServicelmpl.java
+94
-21
UseInfoModel.java
...om/yeejoin/amos/boot/module/ymt/api/dto/UseInfoModel.java
+9
-0
UseInfoMapper.java
...eejoin/amos/boot/module/ymt/api/mapper/UseInfoMapper.java
+6
-0
UseInfoMapper.xml
...odule-ymt-api/src/main/resources/mapper/UseInfoMapper.xml
+35
-0
pom.xml
pom.xml
+1
-1
No files found.
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/controller/CommonController.java
View file @
3321bcb5
...
...
@@ -3,7 +3,9 @@ package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonserviceImpl
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.impl.EquipRegularlyRemindServicelmpl
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo
;
import
io.swagger.annotations.Api
;
...
...
@@ -32,6 +34,8 @@ public class CommonController extends BaseController {
@Autowired
CommonserviceImpl
commonserviceImpl
;
@Autowired
EquipRegularlyRemindServicelmpl
equipRegularlyRemindServicelmpl
;
/**
* 新增
...
...
@@ -100,4 +104,14 @@ public class CommonController extends BaseController {
return
ResponseHelper
.
buildResponse
(
commonserviceImpl
.
getInspectionUnitBySequenceNbr
(
sequenceNbr
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/test1"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"查询检验检测机构基本信息"
,
notes
=
"查询检验检测机构基本信息"
)
public
ResponseModel
sendReminderMessage
()
{
equipRegularlyRemindServicelmpl
.
sendReminderMessage
();
return
CommonResponseUtil
.
success
();
}
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/service/impl/EquipRegularlyRemindServicelmpl.java
View file @
3321bcb5
...
...
@@ -2,50 +2,123 @@ package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.UseInfoModel
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.
entity.UseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.
mapper.TzsUserInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper
;
import
com.yeejoin.amos.feign.systemctl.Systemctl
;
import
com.yeejoin.amos.feign.systemctl.model.MessageModel
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Service
;
import
java.text.ParseException
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@EnableScheduling
@Service
public
class
EquipRegularlyRemindServicelmpl
{
@Autowired
private
UseInfoMapper
useInfoMapper
;
@Autowired
private
TzsUserInfoMapper
tzsUserInfoMapper
;
@Scheduled
(
cron
=
"0 0 8 * *
*
?"
)
@Scheduled
(
cron
=
"0 0 8 * * ?"
)
public
void
sendReminderMessage
(){
//获取当前日期
String
currentDate
=
DateUtils
.
getDateNowShortStr
();
Date
date
=
DateUtils
.
dateAddDays
(
new
Date
(),
31
);
Date
curDate
=
null
;
try
{
curDate
=
DateUtils
.
dateParse
(
currentDate
,
null
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
Date
date
=
DateUtils
.
dateAddDays
(
curDate
,
31
);
List
<
String
>
types
=
new
ArrayList
<>();
List
<
String
>
status
=
new
ArrayList
<>();
//查询需要发送消息的设备
LambdaQueryWrapper
<
UseInfo
>
query
=
new
LambdaQueryWrapper
<>();
query
.
in
(
UseInfo:
:
getLastInspectType
,
types
);
query
.
in
(
UseInfo:
:
getStatus
,
status
);
query
.
le
(
UseInfo:
:
getNextInspectDate
,
date
).
or
().
ge
(
UseInfo:
:
getNextInspectDate
,
currentDate
);
List
<
UseInfo
>
equips
=
useInfoMapper
.
selectList
(
query
);
// LambdaQueryWrapper<UseInfo> query = new LambdaQueryWrapper<>();
// query.in(UseInfo::getLastInspectType,types);
// query.in(UseInfo::getStatus,status);
// query.le(UseInfo::getNextInspectDate,date).or().ge(UseInfo::getNextInspectDate,currentDate);
// List<UseInfo> equips = useInfoMapper.selectList(query);
//
List
<
UseInfoModel
>
equips
=
useInfoMapper
.
selecEquipInfotList
(
types
,
status
,
date
,
curDate
);
//超期设备
List
<
UseInfoModel
>
cqEquip
=
new
ArrayList
<>();
//临期设备
List
<
UseInfoModel
>
lqEquip
=
new
ArrayList
<>();
for
(
UseInfoModel
equip
:
equips
)
{
//下次检验时间小于当前时间为超期 反之为临期
if
(
DateUtils
.
dateCompare
(
equip
.
getNextInspectDate
(),
curDate
)
<
0
){
cqEquip
.
add
(
equip
);
}
else
{
lqEquip
.
add
(
equip
);
}
}
Map
<
String
,
List
<
UseInfoModel
>>
cqEquips
=
cqEquip
.
stream
().
collect
(
Collectors
.
groupingBy
(
UseInfoModel:
:
getUseUnitCreditCode
));
Map
<
String
,
List
<
UseInfoModel
>>
lqEquips
=
lqEquip
.
stream
().
collect
(
Collectors
.
groupingBy
(
UseInfoModel:
:
getUseUnitCreditCode
));
for
(
String
s
:
cqEquips
.
keySet
())
{
//查询单位下共有多少超期及临期装备
List
<
UseInfoModel
>
useInfos
=
cqEquips
.
get
(
s
);
int
cq
=
useInfos
.
size
();
int
lq
=
lqEquips
.
containsKey
(
s
)?
lqEquips
.
get
(
s
).
size
():
0
;
//查询符合发送规则的人员电话
//组装短信内容
HashMap
<
String
,
String
>
params
=
new
HashMap
<>();
//发送短信
Systemctl
.
smsClient
.
sendCommonSms
(
params
);
LambdaQueryWrapper
<
TzsUserInfo
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
like
(
TzsUserInfo:
:
getPost
,
"6552"
);
queryWrapper
.
isNotNull
(
TzsUserInfo:
:
getPhone
);
List
<
TzsUserInfo
>
tzsUserInfos
=
tzsUserInfoMapper
.
selectList
(
queryWrapper
);
List
<
String
>
phones
=
tzsUserInfos
.
stream
().
map
(
TzsUserInfo:
:
getPhone
).
collect
(
Collectors
.
toList
());
List
<
String
>
userIds
=
tzsUserInfos
.
stream
().
map
(
TzsUserInfo:
:
getAmosUserId
).
collect
(
Collectors
.
toList
());
// 组装短信内容 发送短信
HashMap
<
String
,
String
>
smsParams
=
new
HashMap
<>();
smsParams
.
put
(
"smsCode"
,
"EQU_TZS_001"
);
smsParams
.
put
(
"lq"
,
String
.
valueOf
(
lq
));
smsParams
.
put
(
"cq"
,
String
.
valueOf
(
cq
));
for
(
String
phone
:
phones
)
{
smsParams
.
put
(
"mobile"
,
phone
);
Systemctl
.
smsClient
.
sendCommonSms
(
smsParams
);
}
//发送平台消息
if
(
lqEquips
.
containsKey
(
s
)){
useInfos
.
addAll
(
lqEquips
.
get
(
s
));
}
for
(
UseInfoModel
useInfo
:
useInfos
)
{
Date
nextInspectDate
=
useInfo
.
getNextInspectDate
();
try
{
MessageModel
messageModel
=
new
MessageModel
();
messageModel
.
setCategory
(
1
);
//1 :消息通知
messageModel
.
setRelationId
(
useInfo
.
getRecord
());
int
day
=
DateUtils
.
dateBetween
(
nextInspectDate
,
curDate
);
int
day1
=
DateUtils
.
dateBetween
(
nextInspectDate
,
date
);
if
(
day
>
0
)
{
messageModel
.
setTitle
(
"设备超期提醒"
);
messageModel
.
setBody
(
useInfo
.
getProductName
()+
"("
+
useInfo
.
getSupervisiryCode
()==
null
?
""
:
useInfo
.
getSupervisiryCode
()+
") 已超期"
+
Math
.
abs
(
day
)+
"天"
);
}
else
if
(
day1
>
0
){
messageModel
.
setTitle
(
"设备临期提醒"
);
messageModel
.
setBody
(
useInfo
.
getProductName
()+
"("
+
useInfo
.
getSupervisiryCode
()==
null
?
""
:
useInfo
.
getSupervisiryCode
()+
") 还有"
+
Math
.
abs
(
day1
)+
"天将到期"
);
}
messageModel
.
setRecivers
(
userIds
);
messageModel
.
setIsSendWeb
(
true
);
messageModel
.
setMsgType
(
"EQUIP_HINT"
);
messageModel
.
setMsgTypeLabel
(
"设备检验"
);
Systemctl
.
messageClient
.
create
(
messageModel
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
}
}
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/dto/UseInfoModel.java
View file @
3321bcb5
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ymt
.
api
.
dto
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.Date
;
/**
* 使用信息表
*
...
...
@@ -72,5 +75,11 @@ public class UseInfoModel extends BaseDto {
private
String
cityName
;
@ApiModelProperty
(
value
=
""
)
private
String
countyName
;
private
String
supervisiryCode
;
private
String
productName
;
private
Date
nextInspectDate
;
private
String
lastInspectReportNo
;
private
String
lastInspectType
;
private
String
record
;
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/mapper/UseInfoMapper.java
View file @
3321bcb5
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ymt
.
api
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.UseInfoModel
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo
;
import
java.util.Date
;
import
java.util.List
;
/**
* 特种设备基本信息-使用信息 Mapper 接口
*
...
...
@@ -11,4 +15,6 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo;
*/
public
interface
UseInfoMapper
extends
BaseMapper
<
UseInfo
>
{
List
<
UseInfoModel
>
selecEquipInfotList
(
List
<
String
>
types
,
List
<
String
>
statusList
,
Date
date
,
Date
curDate
);
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/UseInfoMapper.xml
0 → 100644
View file @
3321bcb5
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper"
>
<select
id=
"selecEquipInfotList"
resultType=
"com.yeejoin.amos.boot.module.ymt.api.dto.UseInfoModel"
>
SELECT
use.RECORD,
use.USE_UNIT_CREDIT_CODE,
other.SUPERVISORY_CODE,
register.PRODUCT_NAME,
base.contact_phone as phone
FROM
idx_biz_jg_use_info use
LEFT JOIN idx_biz_jg_other_info other on other.RECORD = use.RECORD
LEFT JOIN idx_biz_jg_register_info register on register.RECORD = use.RECORD
LEFT JOIN idx_biz_jg_supervision_info supervision on supervision.RECORD = use.RECORD
LEFT JOIN privilege_company pc on pc.org_code = supervision.ORG_BRANCH_CODE
LEFT JOIN tz_base_enterprise_info base on base.use_code = pc.company_code
<where>
<if
test=
"statusList.size() > 0"
>
and STATUS in
<foreach
collection=
"statusList"
item=
"item"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</if>
<if
test=
"types.size() > 0"
>
and LAST_INSPECT_TYPE in
<foreach
collection=
"types"
item=
"item"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</if>
and (NEXT_INSPECT_DATE > #{date} or #{curDate} > NEXT_INSPECT_DATE)
</where>
</select>
</mapper>
pom.xml
View file @
3321bcb5
...
...
@@ -27,7 +27,7 @@
<springcloud.version>
Hoxton.SR8
</springcloud.version>
<maven-jar-plugin.version>
3.1.1
</maven-jar-plugin.version>
<tyboot-version>
1.1.23-SNAPSHOT
</tyboot-version>
<amos.version>
1.
8.6
</amos.version>
<amos.version>
1.
10.3
</amos.version>
<itext.version>
7.1.1
</itext.version>
<elasticsearch.version>
7.15.2
</elasticsearch.version>
</properties>
...
...
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