Commit 7ade4749 by 赵剑炜

修改报表显示,并优化速度

parent 578b170a
......@@ -9,6 +9,11 @@ import java.util.List;
public class TjOrgEqsDto {
@ExcelProperty("序号")
private Integer numId;
/**
* 组织机构id
*/
private Integer level;
/**
* 组织机构id
*/
......
......@@ -47,6 +47,8 @@ public interface InventorySummaryMapper extends BaseMapper<InventorySummary> {
List<EqsSumDto> getEqsByOrgId(@Param("list") List<Long> collect1,@Param("sizeId") String sizeId,@Param("typeId") String typeId);
List<TjOrgEqsDto> test(@Param("req") InventoryReq req);
TjOrgEqsDto GetInvSelfSum(@Param("orgId") String orgId,@Param("typeId") String typeId,@Param("sizeName") String sizeName);
TjOrgEqsDto GetInvSum(@Param("orgId") String orgId,@Param("typeId") String typeId,@Param("sizeName") String sizeName);
TjOrgEqsDto GetSumLeve4(@Param("orgId") String orgId,@Param("typeId") String typeId,@Param("sizeName") String sizeName,@Param("sql") Integer sql);
......
......@@ -15,12 +15,14 @@ import com.junmp.jyzb.api.bean.vo.InOrderInfo;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.mapper.*;
import com.junmp.jyzb.service.EquipmentSizeService;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.service.TjService;
import com.junmp.v2.common.util.HttpServletUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import com.junmp.v2.dict.service.SysDictItemService;
import com.junmp.v2.office.api.OfficeExcelApi;
import com.junmp.v2.office.api.bean.ExcelExportParam;
import liquibase.pro.packaged.Z;
......@@ -58,7 +60,8 @@ public class TjServiceImpl implements TjService {
@Resource
private OfficeExcelApi officeExcelApi;
@Resource
private InventorySummaryService inventorySummaryService;
//装备统计报表
@Override
public List<TjOrgEqsDto> showOrgEqsList(InventoryReq req) {
......@@ -144,20 +147,47 @@ public class TjServiceImpl implements TjService {
//(下一层数据组织机构数据)
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgEqsDto> allData=new ArrayList<>();
for (String orgId:orgList) {
// for (String orgId:orgList) {
//
// TjOrgEqsDto OrgData=inventorySummaryMapper.GetInvSum( orgId,
// req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
// req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
// allData.add(OrgData);
// }
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());
}))
.collect(Collectors.toList());
CompletableFuture<Void> allOf = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
allOf.join(); // 等待所有 CompletableFuture 完成
allData = futures.stream()
.map(CompletableFuture::join)
.collect(Collectors.toList());
TjOrgEqsDto OrgData=inventorySummaryMapper.GetInvSum( orgId,
req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
allData.add(OrgData);
}
if (req.getOrgId()!=1369509498032808905L)
{
TjOrgEqsDto OrgDataSelf=inventorySummaryMapper.GetInvSelfSum(String.valueOf(req.getOrgId()),
req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
OrgDataSelf.setLevel(0);
OrgDataSelf.setOrgName(OrgDataSelf.getOrgName()+"本级");
OrgDataSelf.setDName(OrgDataSelf.getDName()+"本级");
TjOrgEqsDto OrgData = inventorySummaryMapper.GetSumLeve4(String.valueOf(req.getOrgId()),
req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString(),pubOrg.getLevelFlag());
allData.add(OrgData);//把本级数据加进去
OrgData.setLevel(1);
OrgData.setOrgName(OrgData.getOrgName()+"直属下级");
OrgData.setDName(OrgData.getDName()+"直属下级");
allData.add(OrgDataSelf);//把本级数据加进去
allData.add(OrgData);//把下级数据加进去
}
//查询出来的组织机构进行判断,如果该组织机构下的装备装备总数为0,那么将该组织机构从list中移除
if (req.getRemoveEmpty())
......@@ -626,8 +656,10 @@ public class TjServiceImpl implements TjService {
index2--;
}
// 如果orgCode长度不同,那么较长的orgCode排在后面
return Integer.compare(orgCodeArray1.length, orgCodeArray2.length);
// 在数字比较的基础上,再根据level进行排序
Integer level1 = (Integer) org1.getClass().getMethod("getLevel").invoke(org1);
Integer level2 = (Integer) org2.getClass().getMethod("getLevel").invoke(org2);
return Integer.compare(level1, level2);
} catch (Exception e) {
e.printStackTrace();
return 0;
......
......@@ -352,6 +352,10 @@
{CALL GetInventorySummary(#{orgId,mode=IN},#{typeId,mode=IN},#{sizeName,mode=IN})}
</select>
<select id="GetInvSelfSum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgEqsDto" statementType="CALLABLE">
{CALL GetInvSelfSummary(#{orgId,mode=IN},#{typeId,mode=IN},#{sizeName,mode=IN})}
</select>
<select id="GetSumLeve4" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgEqsDto" statementType="CALLABLE">
{CALL GetSumLeve4(#{orgId,mode=IN},#{typeId,mode=IN},#{sizeName,mode=IN},#{sql,mode=IN})}
</select>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论