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
30167ba0
Commit
30167ba0
authored
Jan 19, 2024
by
李小惠
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改除湿机报表接口以及测试,修改装备号型消息推送接口(可能有待改动优化,现在只是初版)
parent
cd80f9bd
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
92 行增加
和
20 行删除
+92
-20
MQDto.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/dto/MQDto.java
+1
-0
WarehouseReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/query/WarehouseReq.java
+3
-0
EquipmentExceptionEnum.java
jyzb-api/src/main/java/com/junmp/jyzb/api/exception/enums/EquipmentExceptionEnum.java
+1
-1
TemperatureRedisCache.java
jyzb-biz/src/main/java/com/junmp/jyzb/cache/TemperatureRedisCache.java
+11
-8
EquipmentSizeServiceImpl.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/EquipmentSizeServiceImpl.java
+66
-4
TjServiceImpl.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/TjServiceImpl.java
+2
-2
WarehouseServiceImpl.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/WarehouseServiceImpl.java
+8
-5
没有找到文件。
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/dto/MQDto.java
View file @
30167ba0
...
...
@@ -9,4 +9,5 @@ public class MQDto {
private
String
api
;
private
Integer
type
;
private
List
<
String
>
idList
;
private
String
message
;
}
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/query/WarehouseReq.java
View file @
30167ba0
...
...
@@ -49,4 +49,6 @@ public class WarehouseReq extends BaseRequest {
private
Long
orderId
;
private
String
IncludeLowerLevel
;
private
Date
startTime
;
private
Date
endTime
;
}
\ No newline at end of file
jyzb-api/src/main/java/com/junmp/jyzb/api/exception/enums/EquipmentExceptionEnum.java
View file @
30167ba0
...
...
@@ -33,7 +33,7 @@ public enum EquipmentExceptionEnum implements IExceptionEnum {
/**
* 装备名称和编号重复
*/
EQUIPMENT_NAME_CODE_EXIST
(
CommonConstant
.
DEFAULT_USER_ERROR_CODE
,
"装备名称
和编号
重复"
),
EQUIPMENT_NAME_CODE_EXIST
(
CommonConstant
.
DEFAULT_USER_ERROR_CODE
,
"装备名称重复"
),
;
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/cache/TemperatureRedisCache.java
View file @
30167ba0
...
...
@@ -4,6 +4,7 @@ import com.junmp.jyzb.api.constant.JYZBConstant;
import
com.junmp.jyzb.entity.Temp.HumidityAndtemperature
;
import
com.junmp.v2.cache.AbstractRedisCache
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.ZSetOperations
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
...
...
@@ -29,16 +30,18 @@ public class TemperatureRedisCache extends AbstractRedisCache<Object> {
data
.
setCreateTime
(
timestamp
);
data
.
setWarehouseId
(
warehouseId
);
data
.
setWarehouseName
(
warehouseName
);
String
key
=
warehouseId
;
getRedisTemplate
().
opsForZSet
().
add
(
key
,
data
,
timestamp
);
put
(
key
,
data
);
//
String key = warehouseId;
// Long size = getRedisTemplate().opsForZSet().size(key
);
getRedisTemplate
().
opsForZSet
().
add
(
warehouseId
,
data
,
timestamp
);
put
(
warehouseId
,
data
);
}
public
List
<
Object
>
getDataByTimestampRange
(
String
warehouseId
,
long
startTimestamp
,
long
endTimestamp
)
{
String
key
=
warehouseId
;
boolean
exists
=
getRedisTemplate
().
hasKey
(
key
);
Long
size
=
getRedisTemplate
().
opsForZSet
().
size
(
key
);
Set
<
Object
>
dataInRange
=
getRedisTemplate
().
opsForZSet
().
rangeByScore
(
key
,
startTimestamp
,
endTimestamp
);
// String key = warehouseId;
// boolean exists = getRedisTemplate().hasKey(key);
// Long size = getRedisTemplate().opsForZSet().size(key);
Set
<
Object
>
dataInRange
=
getRedisTemplate
().
opsForZSet
().
rangeByScore
(
warehouseId
,
startTimestamp
,
endTimestamp
);
// getRedisTemplate().opsForZSet().rangeByScoreWithScores(key, startTimestamp, endTimestamp)
// Set<Object> dataInRange1= getRedisTemplate().opsForZSet ().reverseRange(key, startTimestamp, endTimestamp);
return
new
ArrayList
<>(
dataInRange
);
}
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/EquipmentSizeServiceImpl.java
View file @
30167ba0
...
...
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.junmp.jyzb.Repository.SizeRepository
;
import
com.junmp.jyzb.api.bean.dto.EquipmentSizeDto
;
import
com.junmp.jyzb.api.bean.dto.FetchingDataDto.SizeDto
;
import
com.junmp.jyzb.api.bean.dto.MQDto
;
import
com.junmp.jyzb.api.bean.query.QueryEquipmentSizeReq
;
import
com.junmp.jyzb.api.bean.query.QueryEquipmentTypeReq
;
import
com.junmp.jyzb.api.bean.req.UpdateEquipmentSizeReq
;
...
...
@@ -16,12 +17,14 @@ import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import
com.junmp.jyzb.entity.EquipmentSize
;
import
com.junmp.jyzb.entity.EquipmentType
;
import
com.junmp.jyzb.entity.InventorySummary
;
import
com.junmp.jyzb.entity.WarehouseDev
;
import
com.junmp.jyzb.mapper.EquipmentCountSummaryMapper
;
import
com.junmp.jyzb.mapper.EquipmentTypeMapper
;
import
com.junmp.jyzb.mapper.PriceSumSummaryMapper
;
import
com.junmp.jyzb.service.EquipmentSizeService
;
import
com.junmp.jyzb.service.EquipmentTypeService
;
import
com.junmp.jyzb.service.InventorySummaryService
;
import
com.junmp.jyzb.service.WarehouseDevService
;
import
com.junmp.jyzb.utils.DateTimeUtil
;
import
com.junmp.jyzb.utils.RabbitMQSendMsg
;
import
com.junmp.v2.common.exception.base.ServiceException
;
...
...
@@ -29,6 +32,9 @@ import com.junmp.v2.common.util.BeanPlusUtil;
import
com.junmp.v2.db.api.factory.PageFactory
;
import
com.junmp.v2.db.api.factory.PageResultFactory
;
import
com.junmp.v2.db.api.page.PageResult
;
import
com.rabbitmq.client.AMQP
;
import
org.springframework.amqp.rabbit.core.RabbitAdmin
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
...
...
@@ -37,6 +43,8 @@ import org.springframework.transaction.annotation.Transactional;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.stream.Collectors
;
@Service
public
class
EquipmentSizeServiceImpl
extends
ServiceImpl
<
EquipmentSizeMapper
,
EquipmentSize
>
implements
EquipmentSizeService
{
...
...
@@ -62,9 +70,17 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
@Resource
private
PriceSumSummaryMapper
priceSumSummaryMapper
;
@Resource
private
WarehouseDevService
warehouseDevService
;
@Autowired
private
RabbitMQSendMsg
MQ
;
@Resource
private
RabbitTemplate
rabbitTemplate
;
@Resource
private
RabbitAdmin
rabbitAdmin
;
@Override
public
Object
addEs
()
{
QueryEquipmentTypeReq
req
=
new
QueryEquipmentTypeReq
();
...
...
@@ -73,6 +89,7 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
return
sizeRepository
.
saveAll
(
esDto
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
String
addSize
(
UpdateEquipmentSizeReq
req
)
{
//判断输入的typeId是否存在,如果不存在抛出异常
EquipmentType
one
=
equipmentTypeService
.
getById
(
req
.
getTypeId
());
...
...
@@ -81,11 +98,16 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
}
//判断同一个typeId下面是否有相同的name,如果有则添加失败
List
<
EquipmentSize
>
list
=
list
(
new
LambdaQueryWrapper
<
EquipmentSize
>()
.
eq
(
EquipmentSize:
:
getTypeId
,
req
.
getTypeId
())
.
orderByDesc
(
EquipmentSize:
:
getCode
));
.
eq
(
EquipmentSize:
:
getTypeId
,
req
.
getTypeId
()));
//将列表查询出来之后,将code码从string类型转成int类型,因为string类型比较code码会出现问题,只有转成int才能保证我能取道该装备类型的最大code然后在最大code的基础上新增一个号型
List
<
String
>
collect
=
list
.
stream
().
map
(
EquipmentSize:
:
getCode
).
collect
(
Collectors
.
toList
());
List
<
Integer
>
integerList
=
collect
.
stream
()
.
map
(
Integer:
:
parseInt
)
.
sorted
((
a
,
b
)
->
Integer
.
compare
(
b
,
a
))
// 按降序排列
.
collect
(
Collectors
.
toList
());
String
code
=
"1"
;
if
(
l
ist
.
size
()>
0
){
int
i
=
Integer
.
parseInt
(
list
.
get
(
0
).
getCode
()
);
if
(
integerL
ist
.
size
()>
0
){
int
i
=
integerList
.
get
(
0
);
code
=
String
.
valueOf
(
i
+
1
);
for
(
EquipmentSize
size:
list
)
{
if
(
size
.
getName
().
equals
(
req
.
getName
())){
...
...
@@ -103,6 +125,46 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
size
.
setUpdateTime
(
DateTimeUtil
.
getCurrentDateTime
());
this
.
save
(
size
);
sizeRepository
.
save
(
size
);
//新增信息之后,将消息推送给所有本地主机
LambdaQueryWrapper
<
WarehouseDev
>
queryWrapper
=
new
LambdaQueryWrapper
<
WarehouseDev
>()
.
select
(
WarehouseDev:
:
getOrgId
)
.
groupBy
(
WarehouseDev:
:
getOrgId
);
List
<
WarehouseDev
>
list1
=
warehouseDevService
.
list
(
queryWrapper
);
List
<
String
>
orgIdsList
=
list1
.
stream
()
.
map
(
WarehouseDev:
:
getOrgId
)
.
collect
(
Collectors
.
toList
());
String
exchangeName
=
"baseInfoChangeExchange"
;
MQDto
mqDto
=
new
MQDto
();
mqDto
.
setApi
(
"InfoChange"
);
//更改类别,1为号型
mqDto
.
setType
(
1
);
mqDto
.
setMessage
(
"Adding sizeInfo"
);
List
<
String
>
MQList
=
new
ArrayList
<>();
for
(
String
orgId:
orgIdsList
)
{
String
queueName
=
orgId
+
"InfoChange"
;
int
messageCount
=
rabbitTemplate
.
execute
(
channel
->
{
AMQP
.
Queue
.
DeclareOk
declareOk
=
channel
.
queueDeclarePassive
(
queueName
);
return
declareOk
.
getMessageCount
();
});
if
(
messageCount
==
0
){
MQList
.
add
(
queueName
);
}
}
//将需要发送消息的队列通过add出来之后,将通过异步的方式分别将消息推送到指定的队列中去
List
<
CompletableFuture
<
Void
>>
futures
=
MQList
.
stream
()
.
map
(
queueName
->
CompletableFuture
.
runAsync
(()
->
{
// 执行推送消息的逻辑
// pushMessage(orgId);
MQ
.
SendMsg
(
exchangeName
,
queueName
,
mqDto
);
}))
.
collect
(
Collectors
.
toList
());
// 等待所有 CompletableFuture 完成
CompletableFuture
<
Void
>
allOf
=
CompletableFuture
.
allOf
(
futures
.
toArray
(
new
CompletableFuture
[
0
]));
allOf
.
join
();
return
sizeID
+
"||"
+
code
;
}
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/TjServiceImpl.java
View file @
30167ba0
...
...
@@ -957,7 +957,7 @@ public class TjServiceImpl implements TjService {
CompletableFuture
<
Void
>
allOf
=
CompletableFuture
.
allOf
(
futures
.
toArray
(
new
CompletableFuture
[
0
]));
// allOf.join();
// tjOrgCountList = futures.stream()
// .map(CompletableFuture::join)
// .collect(Collectors.toList());
...
...
@@ -978,7 +978,7 @@ public class TjServiceImpl implements TjService {
}
});
//
等待所有 CompletableFuture 完成
//
等待所有 CompletableFuture 完成
allOf
.
join
();
if
(
req
.
getOrgId
()!=
1369509498032808905L
){
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/WarehouseServiceImpl.java
View file @
30167ba0
...
...
@@ -182,12 +182,13 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
boolean
updateHumidityAndtemperature
(
HumidityAndtemperature
req
)
{
Date
date
=
new
Date
(
req
.
getCreateTime
());
Date
date
=
new
Date
(
req
.
getCreateTime
()*
1000
);
//查询数据库仓库id取到仓库名称
Warehouse
warehouse
=
getById
(
req
.
getWarehouseId
());
//将数据放入redis
temperatureRedisCache
.
addTemperatureHumidity
(
req
.
getWarehouseId
(),
warehouse
.
getName
(),
req
.
getCreateTime
(),
req
.
getHumidity
(),
req
.
getTemperature
());
req
.
getCreateTime
()
*
1000
,
req
.
getHumidity
(),
req
.
getTemperature
());
//更新仓库的温度和湿度
warehouse
.
setHumidity
(
req
.
getHumidity
());
warehouse
.
setTemperature
(
req
.
getTemperature
());
...
...
@@ -197,9 +198,11 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
//获取redis中的温湿度记录
@Override
public
List
<
HumidityAndtemperature
>
showHumidityAndtemperature
(
WarehouseReq
req
)
{
String
date
=
"2023-12-01 00:00:00"
;
Long
startTimeStamp
=
DateTimeUtil
.
TimeStringToLong
(
date
);
Long
endTimeStamp
=
DateTimeUtil
.
getCurrentDateTime
().
toInstant
().
toEpochMilli
();
// String date="2023-12-01 00:00:00";
// Long startTimeStamp = DateTimeUtil.TimeStringToLong(date);
// Long endTimeStamp = DateTimeUtil.getCurrentDateTime().toInstant().toEpochMilli();
Long
startTimeStamp
=
DateTimeUtil
.
TimeDateToLong
(
req
.
getStartTime
());
Long
endTimeStamp
=
DateTimeUtil
.
TimeDateToLong
(
req
.
getEndTime
());
List
<
Object
>
dataByTimestampRange
=
temperatureRedisCache
.
getDataByTimestampRange
(
req
.
getId
(),
startTimeStamp
,
endTimeStamp
);
List
<
HumidityAndtemperature
>
collect
=
dataByTimestampRange
.
stream
()
.
map
(
obj
->
(
HumidityAndtemperature
)
obj
)
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论