Commit 298c2f96 by 赵剑炜

优化线程池

parent 4195fcd3
...@@ -38,6 +38,8 @@ import java.lang.reflect.Field; ...@@ -38,6 +38,8 @@ import java.lang.reflect.Field;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -90,13 +92,15 @@ public class TjServiceImpl implements TjService { ...@@ -90,13 +92,15 @@ public class TjServiceImpl implements TjService {
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId())); List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgEqsDto> allData=new ArrayList<>(); List<TjOrgEqsDto> allData=new ArrayList<>();
Executor customExecutor = Executors.newFixedThreadPool(10); // 创建一个固定大小的线程池
List<CompletableFuture<TjOrgEqsDto>> futures = orgList.stream() List<CompletableFuture<TjOrgEqsDto>> futures = orgList.stream()
.map(orgId -> CompletableFuture.supplyAsync(() -> { .map(orgId -> CompletableFuture.supplyAsync(() -> {
return inventorySummaryMapper.GetInvSum( return inventorySummaryMapper.GetInvSum(
orgId, orgId,
req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(), req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString()); req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
})) }, customExecutor)) // 使用自定义的 Executor
.collect(Collectors.toList()); .collect(Collectors.toList());
CompletableFuture<Void> allOf = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])); CompletableFuture<Void> allOf = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
......
...@@ -75,6 +75,8 @@ public class WarehouseWebSocketServer implements WebSocketServerListener { ...@@ -75,6 +75,8 @@ public class WarehouseWebSocketServer implements WebSocketServerListener {
WsWarehouseReq deviceData = objectMapper.readValue(text, WsWarehouseReq.class); WsWarehouseReq deviceData = objectMapper.readValue(text, WsWarehouseReq.class);
String warehouseId = deviceData.getWarehouseId(); String warehouseId = deviceData.getWarehouseId();
String redisExist= redisCache.get(warehouseId); String redisExist= redisCache.get(warehouseId);
deviceData.getOrgId();
if(redisExist!=null)//已有存在数据 if(redisExist!=null)//已有存在数据
{ {
......
...@@ -230,28 +230,40 @@ ...@@ -230,28 +230,40 @@
<select id="TjOrgPriceBySelf" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto"> <select id="TjOrgPriceBySelf" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto">
SELECT SELECT
t3.org_id,t3.org_code,t3.org_name,t3.d_name,coalesce(t4.start_num,0) as start_num, org_code,
coalesce(t4.start_price,0) as start_price,coalesce(t4.end_num,0)as end_num,coalesce(t4.end_price,0) as end_price, org_name,
coalesce(t4.add_num,0) as add_num,coalesce(t4.add_price,0) as add_price, org_id,
coalesce(t4.destory_num,0) as destory_num,COALESCE(t4.destory_price,0) as destory_price d_name,
start_num,
start_price,
end_num,
end_price,
destory_num,
destory_price
FROM FROM
( SELECT `org_id`, `org_code`, `org_name`, `d_name` FROM `pub_org` WHERE org_id = #{orgId} ) AS t3 (
CROSS JOIN (
SELECT SELECT
t1.start_num,t1.start_price,t2.end_num,t2.end_price,t2.end_num - t1.start_num AS add_num, org_code,
t2.end_price - t1.start_price AS add_price, t2.destory_num,t2.destory_price org_name,
org_id,
d_name
FROM FROM
pub_org
WHERE
org_id = #{orgId}
) AS po
JOIN
( (
SELECT SELECT
SUM(COALESCE ( start_num, 0 )) AS start_num, IFNULL(SUM(COALESCE(start_num, 0)), 0) AS start_num,
SUM(COALESCE ( start_price, 0 )) AS start_price IFNULL(SUM(COALESCE(start_price, 0)), 0) AS start_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary
LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE WHERE
vpss.MONTH = 1 and vpss.year=#{year} create_time >= '2024-01-01 00:00:00' AND create_time &lt; '2025-01-01 00:00:00'
AND po.del_flag = 1 AND year = #{year}
AND po.org_id = #{orgId} AND sum_type = 'year'
AND org_id_int = #{orgId}
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in and type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
...@@ -264,20 +276,20 @@ ...@@ -264,20 +276,20 @@
size_name like CONCAT('%', #{item}, '%') size_name like CONCAT('%', #{item}, '%')
</foreach> </foreach>
</if> </if>
) AS t1 ) AS t2 ON 1=1
CROSS JOIN ( JOIN
(
SELECT SELECT
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ) AS end_num, SUM(CASE WHEN vpss.MONTH = MONTH(CURRENT_DATE()) THEN COALESCE(vpss.end_num, 0) ELSE 0 END) AS end_num,
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ) AS end_price, SUM(CASE WHEN vpss.MONTH = MONTH(CURRENT_DATE()) THEN COALESCE(vpss.end_price, 0) ELSE 0 END) AS end_price,
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ) AS destory_num, SUM(CASE WHEN vpss.MONTH = MONTH(CURRENT_DATE()) THEN COALESCE(vpss.destory_num, 0) ELSE 0 END) AS destory_num,
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ) AS destory_price SUM(CASE WHEN vpss.MONTH = MONTH(CURRENT_DATE()) THEN COALESCE(vpss.destory_price, 0) ELSE 0 END) AS destory_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE WHERE
vpss.`year` = #{year} create_time >= '2024-01-01 00:00:00' AND create_time &lt; '2025-01-01 00:00:00'
AND po.del_flag = 1 AND year = #{year}
AND po.org_id = #{orgId} AND org_id_int = #{orgId}
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in and type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
...@@ -290,8 +302,7 @@ ...@@ -290,8 +302,7 @@
size_name like CONCAT('%', #{item}, '%') size_name like CONCAT('%', #{item}, '%')
</foreach> </foreach>
</if> </if>
) AS t2 ) AS t3 ON 1=1;
) AS t4
</select> </select>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论