Commit daca1fac by 李小惠

修改装备财务报表

parent c2318e87
...@@ -439,8 +439,33 @@ public class TjServiceImpl implements TjService { ...@@ -439,8 +439,33 @@ public class TjServiceImpl implements TjService {
List<TjOrgPriceDto> tjOrgPriceDtoList=new ArrayList<>(); List<TjOrgPriceDto> tjOrgPriceDtoList=new ArrayList<>();
//根据条件查询财务汇总表 //根据条件查询财务汇总表
//循环遍历下一级以及它下面的汇总信息 //循环遍历下一级以及它下面的汇总信息
for (String orgId:orgList) { // for (String orgId:orgList) {
TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPrice(orgId, req.getYear(),req.getTypeIdsList(),req.getSizeNameList() ); // TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPrice(orgId, req.getYear(),req.getTypeIdsList(),req.getSizeNameList() );
// OrgData.setAddNum(ObjectUtil.isNull(OrgData.getAddNum())?0:OrgData.getAddNum());
// OrgData.setEndNum(ObjectUtil.isNull(OrgData.getEndNum())?0:OrgData.getEndNum());
// OrgData.setStartNum(ObjectUtil.isNull(OrgData.getStartNum())?0:OrgData.getStartNum());
// OrgData.setDestoryNum(ObjectUtil.isNull(OrgData.getDestoryNum())?0:OrgData.getDestoryNum());
// OrgData.setStartPrice(ObjectUtil.isNull(OrgData.getStartPrice())?BigDecimal.ZERO:OrgData.getStartPrice());
// OrgData.setEndPrice(ObjectUtil.isNull(OrgData.getEndPrice())?BigDecimal.ZERO:OrgData.getEndPrice());
// OrgData.setAddPrice(ObjectUtil.isNull(OrgData.getAddPrice())?BigDecimal.ZERO:OrgData.getAddPrice());
// OrgData.setDestoryPrice(ObjectUtil.isNull(OrgData.getDestoryPrice())?BigDecimal.ZERO:OrgData.getDestoryPrice());
// tjOrgPriceDtoList.add(OrgData);
// }
List<CompletableFuture<TjOrgPriceDto>> futures = orgList.stream()
.map(orgId -> CompletableFuture.supplyAsync(() ->
priceSumSummaryMapper.TjOrgPrice(orgId, req.getYear(),req.getTypeIdsList(),req.getSizeNameList() )
))
.collect(Collectors.toList());
// 等待所有 CompletableFuture 完成
CompletableFuture<Void> allOf = CompletableFuture.allOf(
futures.toArray(new CompletableFuture[0])
);
allOf.thenRun(()->{
for (CompletableFuture<TjOrgPriceDto> future : futures) {
try{
TjOrgPriceDto OrgData = future.get();
if (OrgData!=null){
OrgData.setAddNum(ObjectUtil.isNull(OrgData.getAddNum())?0:OrgData.getAddNum()); OrgData.setAddNum(ObjectUtil.isNull(OrgData.getAddNum())?0:OrgData.getAddNum());
OrgData.setEndNum(ObjectUtil.isNull(OrgData.getEndNum())?0:OrgData.getEndNum()); OrgData.setEndNum(ObjectUtil.isNull(OrgData.getEndNum())?0:OrgData.getEndNum());
OrgData.setStartNum(ObjectUtil.isNull(OrgData.getStartNum())?0:OrgData.getStartNum()); OrgData.setStartNum(ObjectUtil.isNull(OrgData.getStartNum())?0:OrgData.getStartNum());
...@@ -451,11 +476,18 @@ public class TjServiceImpl implements TjService { ...@@ -451,11 +476,18 @@ public class TjServiceImpl implements TjService {
OrgData.setDestoryPrice(ObjectUtil.isNull(OrgData.getDestoryPrice())?BigDecimal.ZERO:OrgData.getDestoryPrice()); OrgData.setDestoryPrice(ObjectUtil.isNull(OrgData.getDestoryPrice())?BigDecimal.ZERO:OrgData.getDestoryPrice());
tjOrgPriceDtoList.add(OrgData); tjOrgPriceDtoList.add(OrgData);
} }
}catch (InterruptedException | ExecutionException e){
}
}
});
if (req.getOrgId()!=1369509498032808905L){ if (req.getOrgId()!=1369509498032808905L){
TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPriceLeve4(req.getOrgId(), req.getYear(),req.getTypeIdsList(), TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPriceLeve4(req.getOrgId(), req.getYear(),req.getTypeIdsList(),
req.getSizeNameList(),pubOrg.getLevelFlag()); req.getSizeNameList(),pubOrg.getLevelFlag());
tjOrgPriceDtoList.add(OrgData);//把本级数据加进去 tjOrgPriceDtoList.add(OrgData);//把本级数据加进去
} }
// 等待所有 CompletableFuture 完成
allOf.join();
//查询出来的组织机构进行判断,如果该组织机构下的装备装备总数为0,那么将该组织机构从list中移除 //查询出来的组织机构进行判断,如果该组织机构下的装备装备总数为0,那么将该组织机构从list中移除
if (req.getRemoveEmpty()){ if (req.getRemoveEmpty()){
...@@ -494,10 +526,47 @@ public class TjServiceImpl implements TjService { ...@@ -494,10 +526,47 @@ public class TjServiceImpl implements TjService {
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId())); List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgPriceDto> tjOrgPriceDtoList=new ArrayList<>(); List<TjOrgPriceDto> tjOrgPriceDtoList=new ArrayList<>();
//根据条件查询财务汇总表 //根据条件查询财务汇总表
for (String orgId:orgList) { // for (String orgId:orgList) {
TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPrice(orgId, req.getYear(),req.getTypeIdsList(),req.getSizeNameList() ); // TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPrice(orgId, req.getYear(),req.getTypeIdsList(),req.getSizeNameList() );
// tjOrgPriceDtoList.add(OrgData);
// }
List<CompletableFuture<TjOrgPriceDto>> futures = orgList.stream()
.map(orgId -> CompletableFuture.supplyAsync(() ->
priceSumSummaryMapper.TjOrgPrice(orgId, req.getYear(),req.getTypeIdsList(),req.getSizeNameList() )
))
.collect(Collectors.toList());
// 等待所有 CompletableFuture 完成
CompletableFuture<Void> allOf = CompletableFuture.allOf(
futures.toArray(new CompletableFuture[0])
);
allOf.thenRun(()->{
for (CompletableFuture<TjOrgPriceDto> future : futures) {
try{
TjOrgPriceDto OrgData = future.get();
if (OrgData!=null){
OrgData.setAddNum(ObjectUtil.isNull(OrgData.getAddNum())?0:OrgData.getAddNum());
OrgData.setEndNum(ObjectUtil.isNull(OrgData.getEndNum())?0:OrgData.getEndNum());
OrgData.setStartNum(ObjectUtil.isNull(OrgData.getStartNum())?0:OrgData.getStartNum());
OrgData.setDestoryNum(ObjectUtil.isNull(OrgData.getDestoryNum())?0:OrgData.getDestoryNum());
OrgData.setStartPrice(ObjectUtil.isNull(OrgData.getStartPrice())?BigDecimal.ZERO:OrgData.getStartPrice());
OrgData.setEndPrice(ObjectUtil.isNull(OrgData.getEndPrice())?BigDecimal.ZERO:OrgData.getEndPrice());
OrgData.setAddPrice(ObjectUtil.isNull(OrgData.getAddPrice())?BigDecimal.ZERO:OrgData.getAddPrice());
OrgData.setDestoryPrice(ObjectUtil.isNull(OrgData.getDestoryPrice())?BigDecimal.ZERO:OrgData.getDestoryPrice());
tjOrgPriceDtoList.add(OrgData); tjOrgPriceDtoList.add(OrgData);
} }
}catch (InterruptedException | ExecutionException e){
}
}
});
if (req.getOrgId()!=1369509498032808905L){
TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPriceLeve4(req.getOrgId(), req.getYear(),req.getTypeIdsList(),
req.getSizeNameList(),pubOrg.getLevelFlag());
tjOrgPriceDtoList.add(OrgData);//把本级数据加进去
}
// 等待所有 CompletableFuture 完成
allOf.join();
if (req.getOrgId()!=1369509498032808905L){ if (req.getOrgId()!=1369509498032808905L){
TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPriceLeve4(req.getOrgId(), req.getYear(),req.getTypeIdsList(),req.getSizeNameList(),pubOrg.getLevelFlag()); TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPriceLeve4(req.getOrgId(), req.getYear(),req.getTypeIdsList(),req.getSizeNameList(),pubOrg.getLevelFlag());
tjOrgPriceDtoList.add(OrgData);//把本级数据加进去 tjOrgPriceDtoList.add(OrgData);//把本级数据加进去
......
...@@ -39,21 +39,57 @@ ...@@ -39,21 +39,57 @@
{call UpdatePriceSummary()} {call UpdatePriceSummary()}
</select> </select>
<select id="TjOrgPrice" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto"> <select id="TjOrgPrice" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto">
select t1.org_id,t1.org_code,t1.org_name,t1.d_name, <!-- select t1.org_id,t1.org_code,t1.org_name,t1.d_name,-->
t2.start_num,t2.start_price,t2.end_num,t2.end_price,t2.add_num,t2.add_price,t2.destory_num,t2.destory_price <!-- t2.start_num,t2.start_price,t2.end_num,t2.end_price,t2.add_num,t2.add_price,t2.destory_num,t2.destory_price-->
FROM( <!-- FROM(-->
<!-- SELECT-->
<!-- `org_id`, `org_code`, `org_name`, `d_name`-->
<!-- FROM `pub_org`-->
<!-- WHERE org_id=#{orgId}-->
<!-- ) as t1-->
<!-- CROSS JOIN (select sum(COALESCE(vpss.start_num,0)) as start_num,sum(COALESCE(vpss.start_price,0)) as start_price,-->
<!-- sum(COALESCE(vpss.end_num,0)) as end_num,sum(COALESCE(vpss.end_price,0)) as end_price,-->
<!-- sum(COALESCE(vpss.add_num,0)) as add_num,sum(COALESCE(vpss.destory_num,0)) as destory_num,-->
<!-- sum(COALESCE(vpss.add_price,0)) as add_price,sum(COALESCE(vpss.destory_price,0)) 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} or po.org_parent_ids like CONCAT('%', #{orgId}, '%'))-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- ) as t2-->
SELECT SELECT
`org_id`, `org_code`, `org_name`, `d_name` t3.org_id,t3.org_code,t3.org_name,t3.d_name,t4.start_num,t4.start_price,t4.end_num,t4.end_price,
FROM `pub_org` t4.add_num,t4.add_price,t4.destory_num,t4.destory_price
WHERE org_id=#{orgId} FROM
) as t1 ( SELECT `org_id`, `org_code`, `org_name`, `d_name` FROM `pub_org` WHERE org_id = #{orgId} ) AS t3
CROSS JOIN (select sum(COALESCE(vpss.start_num,0)) as start_num,sum(COALESCE(vpss.start_price,0)) as start_price, CROSS JOIN (
sum(COALESCE(vpss.end_num,0)) as end_num,sum(COALESCE(vpss.end_price,0)) as end_price, SELECT
sum(COALESCE(vpss.add_num,0)) as add_num,sum(COALESCE(vpss.destory_num,0)) as destory_num, t1.start_num,t1.start_price,t2.end_num,t2.end_price,t2.end_num - t1.start_num AS add_num,
sum(COALESCE(vpss.add_price,0)) as add_price,sum(COALESCE(vpss.destory_price,0)) as destory_price t2.end_price - t1.start_price AS add_price, t2.destory_num,t2.destory_price
FROM vie_price_sum_summary vpss FROM
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} or po.org_parent_ids like CONCAT('%', #{orgId}, '%')) SELECT
SUM(COALESCE ( start_num, 0 )) AS start_num,
SUM(COALESCE ( start_price, 0 )) AS start_price
FROM
vie_price_sum_summary vpss
LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE
vpss.MONTH = ( SELECT MIN( MONTH ) FROM vie_price_sum_summary WHERE 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"> <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=")">
...@@ -66,7 +102,35 @@ ...@@ -66,7 +102,35 @@
size_name like CONCAT('%', #{item}, '%') size_name like CONCAT('%', #{item}, '%')
</foreach> </foreach>
</if> </if>
) as t2 ) AS t1
CROSS 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
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} OR po.org_parent_ids LIKE CONCAT( '%', #{orgId}, '%' ))
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
) AS t2
) AS t4
</select> </select>
<select id="TjOrgPriceDetail" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto"> <select id="TjOrgPriceDetail" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论