Commit 298c2f96 by 赵剑炜

优化线程池

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