1000条测试

parent 0c0ffc18
...@@ -75,6 +75,7 @@ public class MaterialRequirementService { ...@@ -75,6 +75,7 @@ public class MaterialRequirementService {
private static final int cachetimeout = 60; private static final int cachetimeout = 60;
private static final int ORACLE_IN_BATCH_SIZE = 1000;
private String cacheKey="_MR_"; private String cacheKey="_MR_";
private String routingHeaderCacheKey=cacheKey+ "RoutingHeader"; private String routingHeaderCacheKey=cacheKey+ "RoutingHeader";
private String routingsupportingCacheKey=cacheKey+ "Routingsupporting"; private String routingsupportingCacheKey=cacheKey+ "Routingsupporting";
...@@ -100,22 +101,13 @@ public class MaterialRequirementService { ...@@ -100,22 +101,13 @@ public class MaterialRequirementService {
.map(Order::getRoutingId) .map(Order::getRoutingId)
.distinct() .distinct()
.collect(Collectors.toList()); .collect(Collectors.toList());
List<RoutingHeader> routingHeaders=null; List<RoutingHeader> routingHeaders = getRoutingHeadersByIds(routingIds);
LambdaQueryWrapper<RoutingHeader> wrapper = new LambdaQueryWrapper<>();
wrapper.in(RoutingHeader::getId, routingIds);
// .eq(RoutingHeader::getIsDeleted, 0)
// .eq(RoutingHeader::getApprovalStatus, 1);
routingHeaders = routingHeaderMapper.selectList(wrapper);
List<Routingsupporting> routingsupportings=null; List<Routingsupporting> routingsupportings=null;
// 查询并缓存Routingsupporting // 查询并缓存Routingsupporting
LambdaQueryWrapper<Routingsupporting> routingsupportingwrapper = new LambdaQueryWrapper<>(); routingsupportings = getRoutingsupportingsByRoutingHeaderIds(routingIds);
routingsupportingwrapper.in(Routingsupporting::getRoutingHeaderId, routingIds)
.eq(Routingsupporting::getIsdeleted, 0);
routingsupportings = routingsupportingMapper.selectList(routingsupportingwrapper);
// 查询并缓存RoutingSupportingReplace // 查询并缓存RoutingSupportingReplace
...@@ -126,10 +118,7 @@ public class MaterialRequirementService { ...@@ -126,10 +118,7 @@ public class MaterialRequirementService {
.distinct() .distinct()
.collect(Collectors.toList()); .collect(Collectors.toList());
LambdaQueryWrapper<RoutingSupportingReplace> routingsupportingreplacewrapper = new LambdaQueryWrapper<>(); replaces = getRoutingSupportingReplacesByStrsupids(routingsupportingids);
routingsupportingreplacewrapper.in(RoutingSupportingReplace::getStrsupid, routingsupportingids)
.eq(RoutingSupportingReplace::getIsdeleted, 0);
replaces = routingSupportingReplaceMapper.selectList(routingsupportingreplacewrapper);
} }
List<Material> useMaterials=new ArrayList<>(); List<Material> useMaterials=new ArrayList<>();
...@@ -279,11 +268,7 @@ if(Operations==null) ...@@ -279,11 +268,7 @@ if(Operations==null)
LambdaQueryWrapper<Routingsupporting> routingsupportingwrapper = new LambdaQueryWrapper<>(); routingsupportings1 = getRoutingsupportingsByRoutingHeaderIds(routingIds);
routingsupportingwrapper.in(Routingsupporting::getRoutingHeaderId, routingIds)
.eq(Routingsupporting::getIsdeleted, 0);
routingsupportings1 = routingsupportingMapper.selectList(routingsupportingwrapper);
if(routingsupportings1!=null&&routingsupportings1.size()>0) if(routingsupportings1!=null&&routingsupportings1.size()>0)
{ {
routingsupportings.addAll(routingsupportings1); routingsupportings.addAll(routingsupportings1);
...@@ -293,11 +278,7 @@ if(Operations==null) ...@@ -293,11 +278,7 @@ if(Operations==null)
.distinct() .distinct()
.collect(Collectors.toList()); .collect(Collectors.toList());
LambdaQueryWrapper<RoutingSupportingReplace> routingsupportingreplacewrapper = new LambdaQueryWrapper<>(); routingsupportingreplaces1 = getRoutingSupportingReplacesByStrsupids(routingsupportingids);
routingsupportingreplacewrapper.in(RoutingSupportingReplace::getStrsupid, routingsupportingids)
.eq(RoutingSupportingReplace::getIsdeleted, 0);
routingsupportingreplaces1 = routingSupportingReplaceMapper.selectList(routingsupportingreplacewrapper);
routingsupportingreplaces.addAll(routingsupportingreplaces1); routingsupportingreplaces.addAll(routingsupportingreplaces1);
...@@ -1543,6 +1524,62 @@ if(demand==null) ...@@ -1543,6 +1524,62 @@ if(demand==null)
return RoutingSupportingReplaces; return RoutingSupportingReplaces;
} }
private List<RoutingHeader> getRoutingHeadersByIds(List<Integer> routingIds) {
if (CollectionUtils.isEmpty(routingIds)) {
return new ArrayList<>();
}
List<RoutingHeader> routingHeaders = new ArrayList<>();
for (List<Integer> batchIds : partitionList(routingIds, ORACLE_IN_BATCH_SIZE)) {
LambdaQueryWrapper<RoutingHeader> wrapper = new LambdaQueryWrapper<>();
wrapper.in(RoutingHeader::getId, batchIds);
routingHeaders.addAll(routingHeaderMapper.selectList(wrapper));
}
return routingHeaders;
}
private List<Routingsupporting> getRoutingsupportingsByRoutingHeaderIds(List<? extends Number> routingIds) {
if (CollectionUtils.isEmpty(routingIds)) {
return new ArrayList<>();
}
List<Routingsupporting> routingsupportings = new ArrayList<>();
for (List<? extends Number> batchIds : partitionList(routingIds, ORACLE_IN_BATCH_SIZE)) {
LambdaQueryWrapper<Routingsupporting> routingsupportingwrapper = new LambdaQueryWrapper<>();
routingsupportingwrapper.in(Routingsupporting::getRoutingHeaderId, batchIds)
.eq(Routingsupporting::getIsdeleted, 0);
routingsupportings.addAll(routingsupportingMapper.selectList(routingsupportingwrapper));
}
return routingsupportings;
}
private List<RoutingSupportingReplace> getRoutingSupportingReplacesByStrsupids(List<String> routingSupportingIds) {
if (CollectionUtils.isEmpty(routingSupportingIds)) {
return new ArrayList<>();
}
List<RoutingSupportingReplace> replaces = new ArrayList<>();
for (List<String> batchIds : partitionList(routingSupportingIds, ORACLE_IN_BATCH_SIZE)) {
LambdaQueryWrapper<RoutingSupportingReplace> routingsupportingreplacewrapper = new LambdaQueryWrapper<>();
routingsupportingreplacewrapper.in(RoutingSupportingReplace::getStrsupid, batchIds)
.eq(RoutingSupportingReplace::getIsdeleted, 0);
replaces.addAll(routingSupportingReplaceMapper.selectList(routingsupportingreplacewrapper));
}
return replaces;
}
private <T> List<List<T>> partitionList(List<T> source, int batchSize) {
List<List<T>> partitions = new ArrayList<>();
if (CollectionUtils.isEmpty(source) || batchSize <= 0) {
return partitions;
}
for (int i = 0; i < source.size(); i += batchSize) {
partitions.add(source.subList(i, Math.min(i + batchSize, source.size())));
}
return partitions;
}
private List<RoutingDetail> GetRoutingDetails(String sceneId) { private List<RoutingDetail> GetRoutingDetails(String sceneId) {
List<RoutingDetail> RoutingDetails=(List<RoutingDetail>)GlobalCacheUtil.get(sceneId+routingDetailCacheKey); List<RoutingDetail> RoutingDetails=(List<RoutingDetail>)GlobalCacheUtil.get(sceneId+routingDetailCacheKey);
if(RoutingDetails==null) if(RoutingDetails==null)
......
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
<!-- 针对你的包结构进行配置 --> <!-- 针对你的包结构进行配置 -->
<!-- 1. 算法包(你最关心的) --> <!-- 1. 算法包(你最关心的) -->
<logger name="com.aps.service.Algorithm" level="DEBUG"> <logger name="com.aps.service.Algorithm" level="INFO">
<appender-ref ref="FILE"/> <appender-ref ref="FILE"/>
</logger> </logger>
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</logger> </logger>
<!-- 5. Mapper层(SQL日志) --> <!-- 5. Mapper层(SQL日志) -->
<logger name="com.aps.mapper" level="DEBUG"> <logger name="com.aps.mapper" level="INFO">
<appender-ref ref="FILE"/> <appender-ref ref="FILE"/>
</logger> </logger>
...@@ -91,25 +91,25 @@ ...@@ -91,25 +91,25 @@
</logger> </logger>
<!-- 第三方框架日志控制 --> <!-- 第三方框架日志控制 -->
<logger name="org.springframework" level="WARN"/> <logger name="org.springframework" level="INFO"/>
<logger name="org.mybatis" level="WARN"/> <logger name="org.mybatis" level="INFO"/>
<logger name="com.zaxxer.hikari" level="WARN"/> <logger name="com.zaxxer.hikari" level="INFO"/>
<!-- 根据不同环境调整 --> <!-- 根据不同环境调整 -->
<springProfile name="dev"> <springProfile name="dev">
<root level="DEBUG"> <root level="INFO">
<appender-ref ref="CONSOLE"/> <appender-ref ref="CONSOLE"/>
</root> </root>
<logger name="com.aps" level="DEBUG"/> <logger name="com.aps" level="INFO"/>
</springProfile> </springProfile>
<springProfile name="prod"> <springProfile name="prod">
<root level="WARN"> <root level="INFO">
<appender-ref ref="FILE"/> <appender-ref ref="FILE"/>
<appender-ref ref="ERROR_FILE"/> <appender-ref ref="ERROR_FILE"/>
</root> </root>
<!-- 生产环境关闭DEBUG日志 --> <!-- 生产环境关闭DEBUG日志 -->
<logger name="com.aps.mapper" level="WARN"/> <logger name="com.aps.mapper" level="INFO"/>
<logger name="com.aps.service.Algorithm" level="INFO"/> <logger name="com.aps.service.Algorithm" level="INFO"/>
</springProfile> </springProfile>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment