Commit 7ade4749 by 赵剑炜

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

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