Commit b310d3f2 by 李小惠

1

parents fb8d3d78 799d72f8
...@@ -25,7 +25,12 @@ public interface EquipmentCountSummaryMapper extends BaseMapper<EquipmentCountSu ...@@ -25,7 +25,12 @@ public interface EquipmentCountSummaryMapper extends BaseMapper<EquipmentCountSu
@Param("year")Integer year, @Param("year")Integer year,
@Param("typeParentId")String typeParentId, @Param("typeParentId")String typeParentId,
@Param("monthList") List<Integer> monthList); @Param("monthList") List<Integer> monthList);
List<TjOrgCountDto> TjOrgCount1(@Param("orgIdList") List<String> orgId,
@Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList,
@Param("year")Integer year,
@Param("typeParentId")String typeParentId,
@Param("monthList") List<Integer> monthList);
TjOrgCountDto TjOrgCountleve4(@Param("orgId") Long orgId, TjOrgCountDto TjOrgCountleve4(@Param("orgId") Long orgId,
@Param("typeIdsList") List<String> typeIdsList, @Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList, @Param("sizeNameList") List<String> sizeNameList,
......
...@@ -32,6 +32,8 @@ import javax.servlet.http.HttpServletResponse; ...@@ -32,6 +32,8 @@ import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field; 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.ExecutionException;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -641,14 +643,54 @@ public class TjServiceImpl implements TjService { ...@@ -641,14 +643,54 @@ public class TjServiceImpl implements TjService {
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId()); PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId())); List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgCountDto> tjOrgCountList=new ArrayList<>(); List<TjOrgCountDto> tjOrgCountList=new ArrayList<>();
for (String orgId:orgList) { // tjOrgCountList =equipmentCountSummaryMapper.TjOrgCount1(orgList,
TjOrgCountDto orgData =equipmentCountSummaryMapper.TjOrgCount(orgId, // req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(),req.getMonthList());
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(),req.getMonthList()); // for (String orgId:orgList) {
orgData.setNumber(ObjectUtil.isNull(orgData.getNumber())?0:orgData.getNumber()); // TjOrgCountDto orgData =equipmentCountSummaryMapper.TjOrgCount(orgId,
orgData.setUseCount(ObjectUtil.isNull(orgData.getUseCount())?0:orgData.getUseCount()); // req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(),req.getMonthList());
orgData.setFixCount(ObjectUtil.isNull(orgData.getFixCount())?0:orgData.getFixCount()); //
//
// if (orgData!=null)
// {
// orgData.setNumber(ObjectUtil.isNull(orgData.getNumber())?0:orgData.getNumber());
// orgData.setUseCount(ObjectUtil.isNull(orgData.getUseCount())?0:orgData.getUseCount());
// orgData.setFixCount(ObjectUtil.isNull(orgData.getFixCount())?0:orgData.getFixCount());
// tjOrgCountList.add(orgData);
// }
//
// }
List<CompletableFuture<TjOrgCountDto>> futures = orgList.stream()
.map(orgId -> CompletableFuture.supplyAsync(() ->
equipmentCountSummaryMapper.TjOrgCount(orgId,
req.getTypeIdsList(), req.getSizeNameList(),
req.getYear(), req.getTypeParentId(), req.getMonthList()))
)
.collect(Collectors.toList());
// 等待所有 CompletableFuture 完成
CompletableFuture<Void> allOf = CompletableFuture.allOf(
futures.toArray(new CompletableFuture[0])
);
// 处理每个 CompletableFuture 的结果
allOf.thenRun(() -> {
for (CompletableFuture<TjOrgCountDto> future : futures) {
try {
TjOrgCountDto orgData = future.get(); // 获取 CompletableFuture 的结果
if (orgData != null) {
orgData.setNumber(ObjectUtil.isNull(orgData.getNumber()) ? 0 : orgData.getNumber());
orgData.setUseCount(ObjectUtil.isNull(orgData.getUseCount()) ? 0 : orgData.getUseCount());
orgData.setFixCount(ObjectUtil.isNull(orgData.getFixCount()) ? 0 : orgData.getFixCount());
tjOrgCountList.add(orgData); tjOrgCountList.add(orgData);
} }
} catch (InterruptedException | ExecutionException e) {
// 处理异常
}
}
});
// 等待所有 CompletableFuture 完成
allOf.join();
if (req.getOrgId()!=1369509498032808905L){ if (req.getOrgId()!=1369509498032808905L){
TjOrgCountDto orgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(), TjOrgCountDto orgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(), req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(),
......
...@@ -58,30 +58,67 @@ ...@@ -58,30 +58,67 @@
{call AddEquipmentCountSummary(#{sql,mode=IN})} {call AddEquipmentCountSummary(#{sql,mode=IN})}
</insert> </insert>
<select id="TjOrgCount" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgCountDto"> <select id="TjOrgCount" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgCountDto">
<!-- select t1.org_id,t1.org_code,t1.org_name,t1.d_name,t2.year,t2.use_count,t2.fix_count,t2.number--> SELECT
<!-- FROM(--> (SELECT `org_id` FROM `pub_org` WHERE org_id=#{orgId}) as org_id,
<!-- SELECT--> (SELECT `org_code` FROM `pub_org` WHERE org_id=#{orgId}) as org_code,
<!-- `org_id`, `org_code`, `org_name`, `d_name`--> (SELECT `org_name` FROM `pub_org` WHERE org_id=#{orgId}) as org_name,
<!-- FROM `pub_org`--> (SELECT `d_name` FROM `pub_org` WHERE org_id=#{orgId}) as d_name,
<!-- WHERE org_id=#{orgId}--> MAX(t.`year`) AS `year`,
<!-- ) as t1--> SUM(t.use_count) AS use_count,
<!-- CROSS JOIN (--> SUM(t.fix_count) AS fix_count,
<!-- SELECT--> sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number
<!-- MAX(t.`year`) AS `year`,--> FROM (
<!-- SUM(t.use_count) AS use_count,--> SELECT
<!-- SUM(t.fix_count) AS fix_count,--> vecs.`year`,
<!-- sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number--> vecs.`month`,
<!-- FROM (--> SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count,
sum(vecs.number) as number
FROM vie_equipment_count_summary vecs
left join pub_org po on vecs.org_id_int=po.org_id
where vecs.`year`= #{year} and po.del_flag=1 and (po.org_id=#{orgId} or po.org_parent_ids like CONCAT('%',#{orgId}, '%'))
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
vecs.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="monthList != null and monthList.size()>0">
and vecs.month in
<foreach collection="monthList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
GROUP BY `year`,month) as t
<!-- SELECT--> <!-- SELECT-->
<!-- MAX(vecs.org_id) as org_id,-->
<!-- MAX(vecs.org_code) as org_code,-->
<!-- MAX(vecs.org_name) as org_name,-->
<!-- MAX(vecs.d_name) as d_name,-->
<!-- vecs.`year`,--> <!-- vecs.`year`,-->
<!-- vecs.`month`,--> <!-- vecs.`month`,-->
<!-- SUM(vecs.use_count) AS use_count,--> <!-- SUM(vecs.use_count) AS use_count,-->
<!-- SUM(vecs.fix_count) AS fix_count,--> <!-- SUM(vecs.fix_count) AS fix_count,-->
<!-- sum(vecs.number) as number--> <!-- sum(vecs.number) as number-->
<!-- FROM vie_equipment_count_summary vecs--> <!-- FROM view_org_use vecs-->
<!-- left join pub_org po on vecs.org_id_int=po.org_id--> <!-- WHERE vecs.`year`= #{year}-->
<!-- where vecs.`year`= #{year} and po.del_flag=1 and (po.org_id=#{orgId} or po.org_parent_ids like CONCAT('%',#{orgId}, '%'))--> <!-- AND (-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">--> <!-- <foreach collection="orgIdList" item="orgId" separator=" OR " open="(" close=")">-->
<!-- vecs.org_id = #{orgId}-->
<!-- OR vecs.org_parent_ids LIKE CONCAT('%',#{orgId}, '%')-->
<!-- </foreach>-->
<!-- )-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">&ndash;&gt;-->
<!-- and vecs.type_id in--> <!-- and vecs.type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">--> <!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}--> <!-- #{item}-->
...@@ -102,52 +139,53 @@ ...@@ -102,52 +139,53 @@
<!-- #{item}--> <!-- #{item}-->
<!-- </foreach>--> <!-- </foreach>-->
<!-- </if>--> <!-- </if>-->
<!-- GROUP BY `year`,month--> <!-- GROUP BY `year`,month-->
<!-- ) AS t-->
<!-- )as t2-->
</select>
<select id="TjOrgCount1" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgCountDto" >
<foreach collection="orgIdList" item="orgId" separator="UNION ALL">
SELECT SELECT
(SELECT `org_id` FROM `pub_org` WHERE org_id=#{orgId}) as org_id, MAX(vecs.org_id) as org_id,
(SELECT `org_code` FROM `pub_org` WHERE org_id=#{orgId}) as org_code, MAX(vecs.org_code) as org_code,
(SELECT `org_name` FROM `pub_org` WHERE org_id=#{orgId}) as org_name, MAX(vecs.org_name) as org_name,
(SELECT `d_name` FROM `pub_org` WHERE org_id=#{orgId}) as d_name, MAX(vecs.d_name) as d_name,
MAX(t.`year`) AS `year`,
SUM(t.use_count) AS use_count,
SUM(t.fix_count) AS fix_count,
sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number
FROM (
SELECT
vecs.`year`, vecs.`year`,
vecs.`month`, vecs.`month`,
SUM(vecs.use_count) AS use_count, SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count, SUM(vecs.fix_count) AS fix_count,
sum(vecs.number) as number SUM(vecs.number) as number
FROM vie_equipment_count_summary vecs FROM view_org_use vecs
left join pub_org po on vecs.org_id_int=po.org_id WHERE vecs.`year`= #{year}
where vecs.`year`= #{year} and po.del_flag=1 and (po.org_id=#{orgId} or po.org_parent_ids like CONCAT('%',#{orgId}, '%')) AND (
vecs.org_id = #{orgId}
OR vecs.org_parent_ids LIKE CONCAT('%', #{orgId}, '%')
)
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in AND vecs.type_id IN
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeParentId != null and typeParentId !=''"> <if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId} AND vecs.type_parent_id=#{typeParentId}
</if> </if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
vecs.size_name like CONCAT('%', #{item}, '%') vecs.size_name LIKE CONCAT('%', #{item}, '%')
</foreach> </foreach>
</if> </if>
<if test="monthList != null and monthList.size()>0"> <if test="monthList != null and monthList.size()>0">
and vecs.month in AND vecs.month IN
<foreach collection="monthList" item="item" open="(" separator="," close=")"> <foreach collection="monthList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
GROUP BY `year`,month GROUP BY `year`, month
) as t </foreach>
</select> </select>
<select id="TjOrgCountSum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.FinalTjOrgCountDto"> <select id="TjOrgCountSum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.FinalTjOrgCountDto">
<!-- select sum(use_count) as use_count,sum(fix_count) as fix_count,sum(number) as number FROM (--> <!-- select sum(use_count) as use_count,sum(fix_count) as fix_count,sum(number) as number FROM (-->
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论