Commit 73dc471c by 赵剑炜

修改报表查询方法

parent 3a196acf
......@@ -9,8 +9,16 @@ public class TjOrgEqsReq extends BaseRequest {
//组织机构
private Long orgId;
private Long parentOrgId;
private Integer levelNum;
private Boolean removeEmpty;
List<String> typeIdsList;
private List<String> sizeNameList;
// 添加一个用逗号分隔typeIdsList的方法
public String getTypeIdsAsString() {
return String.join(",", typeIdsList);
}
public String getSizesAsString() {
return String.join(",", sizeNameList);
}
}
......@@ -49,6 +49,14 @@ public class TjController {
public ApiRes<PageResult<TjOrgEqsDto>> TjOrgEqs(@RequestBody TjOrgEqsReq req){
return ApiRes.success(tjService.TjOrgEqs(req));
}
/**
* 根据组织机构统计装备的报表数据(外层数据)
*/
@PostMapping("/GetTjData")
@ApiOperation("/装备统计报表")
public ApiRes<PageResult<TjOrgEqsDto>> GetTjData(@RequestBody TjOrgEqsReq req){
return ApiRes.success(tjService.GetTjData(req));
}
@PostMapping("/TjOrgEqsSum")
@ApiOperation("/装备统计报表汇总")
public ApiRes<FinalTjOrgEqsDto> TjOrgEqsSum(@RequestBody TjOrgEqsReq req){
......@@ -61,6 +69,13 @@ public class TjController {
public ApiRes<List<TjOrgEqsDto>> TjOrgEqsSecondList(@RequestBody TjOrgEqsReq req){
return ApiRes.success(tjService.TjOrgEqsSecondList(req));
}
//第二层数据
@PostMapping("/TjOrgEqsDetail")
@ApiOperation("装备统计报表二层数据")
public ApiRes<List<TjOrgEqsDto>> TjOrgEqsDetail(@RequestBody TjOrgEqsReq req){
return ApiRes.success(tjService.GetTjDataDetail(req));
}
//装备统计报表(点击+后里面的数据)
@PostMapping("/TjOrgEqsDetailPage")
@ApiOperation("/查询组织机构下的装备统计明细分页")
......
......@@ -46,15 +46,21 @@ 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 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);
List<TjOrgEqsDto> selectDynamicView();
void insertToSummary(@Param("summaryTableName") String summaryTableName,@Param("sourceTableName") String sourceTableName, @Param("warrantyThreshold") Integer warrantyThreshold);
List<TjOrgEqsDto> selectViewOrgeqsSum();
List<TjOrgEqsDto> getTotalDataDetail(@Param("orgId") String orgId,@Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList,@Param("levelNum") Integer levelNum);
void useViewOrgeqs(@Param("sql") String sql,@Param("orgId") Long orgId,@Param("sql1") String sql1);
List<String> getTotalData(@Param("orgId") String orgId);
//获取合计
FinalTjOrgEqsDto getSumByViewOrgeqsSum();
......
......@@ -19,7 +19,8 @@ public interface TjService {
//装备统计报表
PageResult<TjOrgEqsDto> TjOrgEqs(TjOrgEqsReq req);
//装备统计报表
PageResult<TjOrgEqsDto> GetTjData(TjOrgEqsReq req);
PageResult<InventorySumDto> TjOrgEqsDetailPage(TjOrgEqsReq req);
List<InventorySumDto> TjOrgEqsDetailList(TjOrgEqsReq req);
......@@ -57,5 +58,6 @@ public interface TjService {
List<TjOrgEqsDto> TjOrgEqsSecondList(TjOrgEqsReq req);
List<TjOrgEqsDto> GetTjDataDetail(TjOrgEqsReq req);
PageResult<TjOrgEqsDto> test1(TjOrgEqsReq req);
}
......@@ -121,6 +121,67 @@ public class TjServiceImpl implements TjService {
// return dynamicViewList;
// }
@Override
public PageResult<TjOrgEqsDto> GetTjData(TjOrgEqsReq req) {
//先拿到符合条件的组织机构,再遍历组织机构组成数据
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgEqsDto> allData=new ArrayList<>();
for (String orgId:orgList) {
TjOrgEqsDto OrgData=inventorySummaryMapper.GetInvSum( orgId,
req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
allData.add(OrgData);
}
TjOrgEqsDto OrgData = inventorySummaryMapper.GetSumLeve4(String.valueOf(req.getOrgId()),
req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
//查询出来的组织机构进行判断,如果该组织机构下的装备装备总数为0,那么将该组织机构从list中移除
allData.add(OrgData);//把本级数据加进去
if (req.getRemoveEmpty())
{
allData.removeIf(tjOrgEqsDto -> tjOrgEqsDto.getTotalNumber() == 0);
}
//将组织机构进行排序后再进行返回
Comparator<TjOrgEqsDto> orgComparator = createOrgComparator();
Collections.sort(allData, orgComparator);
if (ObjectUtil.isNull(req.getPageNo()) && ObjectUtil.isNull(req.getPageSize())) {
req.setPageNo(1L);
req.setPageSize(10L);
}
Page<TjOrgEqsDto> page = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
long startIndex = (req.getPageNo() - 1) * req.getPageSize();
long endIndex = Math.min(startIndex + req.getPageSize(), allData.size());
List<TjOrgEqsDto> subList = allData.subList((int)startIndex, (int)endIndex);
page.setRecords(subList);
page.setTotal(allData.size());
return PageResultFactory.createPageResult(page);
}
// @Override
public List<TjOrgEqsDto> GetTjDataDetail(TjOrgEqsReq req) {
//先拿到符合条件的组织机构,再遍历组织机构组成数据
List<TjOrgEqsDto> allData=new ArrayList<>();
List<TjOrgEqsDto> OrgData=inventorySummaryMapper.getTotalDataDetail(String.valueOf(req.getOrgId()),req.getTypeIdsList(),req.getSizeNameList(),req.getLevelNum());
allData.addAll(OrgData);//把本级数据加进去
if (req.getRemoveEmpty())
{
allData.removeIf(tjOrgEqsDto -> tjOrgEqsDto.getTotalNumber() == 0);
}
//将组织机构进行排序后再进行返回
Comparator<TjOrgEqsDto> orgComparator = createOrgComparator();
Collections.sort(allData, orgComparator);
return allData;
}
@Override
public PageResult<TjOrgEqsDto> TjOrgEqs(TjOrgEqsReq req) {
//我得先将typeid传递的最下层的装备idlist拿到
......@@ -200,6 +261,8 @@ public class TjServiceImpl implements TjService {
return tjOrgEqsDtoList;
}
@Override
public PageResult<TjOrgEqsDto> test1(TjOrgEqsReq req) {
List<Long> orgIds=inventorySummaryMapper.selectOrgIds(req.getOrgId());
......
......@@ -333,6 +333,13 @@
{CALL view_sum_total(#{req.typeId, mode=IN, jdbcType=VARCHAR})}
</select>
<select id="GetInvSum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgEqsDto" statementType="CALLABLE">
{CALL GetInventorySummary(#{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})}
</select>
<select id="selectDynamicView" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgEqsDto">
SELECT * FROM dynamic_view
</select>
......@@ -417,6 +424,71 @@
{CALL view_orgIdInLevel(#{sql,mode=IN},#{orgId,mode=IN})}
</insert>
<select id="getTotalData" parameterType="java.lang.String" resultType="java.lang.String">
SELECT
`po`.`org_id` AS `org_id`
FROM `pub_org` `po`
LEFT JOIN `base_inventory_summary` `bis` ON `po`.`org_id` = `bis`.`org_id_int`
WHERE `po`.`del_flag` = 1
and (po.org_id=#{orgId} or `po`.org_parent_id=#{orgId})
and `po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} )+1
GROUP BY org_id
</select>
<select id="getTotalDataDetail" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgEqsDto">
SELECT
`po`.`org_id` AS `org_id`,
`po`.`org_code` AS `org_code`,
`po`.`org_parent_id` AS `parent_id`,
`po`.`org_name` AS `org_name`,
`po`.`level_flag` AS `level_flag`,
`po`.`d_name` AS `d_name`,
COALESCE (
sum(
CASE
WHEN ( `bis`.`location_type` = 0 ) THEN
`bis`.`stock_number` ELSE 0
END
) + sum(
CASE
WHEN ( `bis`.`location_type` = 0 ) THEN
`bis`.`outbound_number` ELSE 0
END
) + sum(
CASE
WHEN ( `bis`.`location_type` = 0 ) THEN
`bis`.`destruction_number` ELSE 0
END
),
0
) AS `total_number`,
COALESCE ( sum( CASE WHEN ( `bis`.`location_type` = 0 ) THEN `bis`.`stock_number` ELSE 0 END ), 0 ) AS `ck_stock_number`,
COALESCE ( sum( CASE WHEN ( `bis`.`location_type` = 0 ) THEN `bis`.`outbound_number` ELSE 0 END ), 0 ) AS `ck_outbound_number`,
COALESCE ( sum( CASE WHEN ( `bis`.`location_type` = 0 ) THEN `bis`.`destruction_number` ELSE 0 END ), 0 ) AS `destruction_number`,
COALESCE ( sum( CASE WHEN ( `bis`.`location_type` = 1 ) THEN `bis`.`stock_number` ELSE 0 END ), 0 ) AS `djg_stock_number`,
COALESCE ( sum( CASE WHEN ( `bis`.`location_type` = 1 ) THEN `bis`.`outbound_number` ELSE 0 END ), 0 ) AS `djg_outbound_number`
FROM `pub_org` `po`
LEFT JOIN `base_inventory_summary` `bis` ON `po`.`org_id` = `bis`.`org_id_int`
WHERE
`po`.`del_flag` = 1 and (po.org_id=#{orgId} or `po`.org_parent_id=#{orgId})
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or `po`.level_flag=(select level_flag FROM pub_org where org_id=#{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>
GROUP BY `po`.`org_id`,`po`.`org_code`,`po`.`org_parent_id`,`po`.`org_name`
</select>
<select id="getSumByViewOrgeqsSum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.FinalTjOrgEqsDto">
select sum(total_number) as total_number,
sum(ck_stock_number) as ck_stock_number,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论