1.分页查询
public ResultRes queryCard(AssetCardQueryForm queryForm) {
QAssetCardEntity cardEntity = QAssetCardEntity.assetCardEntity;
QAssetCatgoryEntity catgoryEntity = QAssetCatgoryEntity.assetCatgoryEntity;
BooleanBuilder builder = buildQueryPara(queryForm, cardEntity);
QueryResults<AssetCardVO> cardVOQueryResults = queryFactory.select(
Projections.bean(
AssetCardVO.class,
cardEntity.phid,
cardEntity.orgId,
catgoryEntity.name.as("assetType"),
cardEntity.generateMethod
))
.from(cardEntity).leftJoin(catgoryEntity).on(cardEntity.assetType.eq(catgoryEntity.phid))
.where(builder)
.orderBy(cardEntity.assetCode.asc(), cardEntity.phInsertDt.desc())
.offset((queryForm.getCurrent() - 1) * queryForm.getSize())
.limit(queryForm.getSize())
.fetchResults();
return ResultRes.success(cardVOQueryResults);
}
2.返回单个对象
public AssetCardTotalVO queryCollectListTotal(AssetCardCollectForm queryForm) {
QAssetCardEntity cardEntity = QAssetCardEntity.assetCardEntity;
BooleanBuilder builder = buildQueryForm(queryForm, cardEntity);
AssetCardTotalVO cardTotalVO = queryFactory.select(
Projections.bean(
AssetCardTotalVO.class,
cardEntity.cost.sum().as("totalCost"),
cardEntity.netValue.sum().as("totalNetValue")
))
.from(cardEntity)
.leftJoin(qBdaOrgEntity).on(cardEntity.orgId.eq(qBdaOrgEntity.phid))
.where(builder)
.fetchOne();
if(cardTotalVO.getTotalCost() == null){
cardTotalVO.setTotalCost(BigDecimal.ZERO);
}
if(cardTotalVO.getTotalNetValue() == null){
cardTotalVO.setTotalNetValue(BigDecimal.ZERO);
}
cardTotalVO.setTotalDeprMoney(cardTotalVO.getTotalCost().subtract(cardTotalVO.getTotalNetValue()));
return cardTotalVO;
}
3.返回list查询
@Override
public List<AssetCardEntity> findByPhidIn(Collection<Long> cardIds) {
return queryFactory.selectFrom(qAssetCardEntity)
.where(qAssetCardEntity.phid.in(cardIds)
.and(qAssetCardEntity.phCurorgid.eq(LoginInfoUtil.getInstance().getOrgId()))
.and(qAssetCardEntity.phDelflag.eq(0L)))
.fetch();
}
4.查询组织以及下级组织关联数据
@Override
public List<AssetCardStatisVO> statistics(StatisticsForm statisticsForm) {
QBdaOrgEntity qBdaOrgEntity1 = new QBdaOrgEntity("t1");
QBdaOrgEntity qBdaOrgEntity2 = new QBdaOrgEntity("t2");
//统计数据
BooleanBuilder builder = new BooleanBuilder();
builder.and(qAssetCardEntity.phDelflag.eq(0L));
if(StringUtils.isNotBlank(statisticsForm.getAssetNature())){
builder.and(qAssetCardEntity.assetNature.eq(statisticsForm.getAssetNature()));
}
if(statisticsForm.getEndAssetDate() != null){
builder.and(qAssetCardEntity.accountInTime.loe(statisticsForm.getEndAssetDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()));
}
if(CollectionUtils.isNotEmpty(statisticsForm.getTradeTypes())){
builder.and(qBdaOrgEntity2.tradeType.in(statisticsForm.getTradeTypes()));
}
List<AssetCardStatisDataVO> assetCardStatisDataVOList = queryFactory
.select(Projections.bean(AssetCardStatisDataVO.class,
qBdaOrgEntity1.phid.as("orgId"),
qBdaOrgEntity1.name.as("orgName"),
qAssetCardEntity.assetType,
qAssetCardEntity.assetNature,
qAssetCardEntity.assetNum.sum().as("totalAssetNum"),
qAssetCardEntity.cost.sum().as("totalCost"),
qAssetCardEntity.netValue.sum().as("totalNetValue")))
.from(qBdaOrgEntity1)
.join(qBdaOrgEntity2)
.on(qBdaOrgEntity2.encode.like(qBdaOrgEntity1.encode.concat("%")))
.leftJoin(qAssetCardEntity)
.on(qBdaOrgEntity2.phid.eq(qAssetCardEntity.orgId))
.where(builder)
.groupBy(qBdaOrgEntity1.phid,
qBdaOrgEntity1.name,
qAssetCardEntity.assetType,
qAssetCardEntity.assetNature)
.fetch();
return cardStatisVOList;
}
5.直接在JPA上写插入更新sql
@Modifying
@Transactional
@Query(value =
"insert into bdata_approval_cnt(org_id,approvaling_cnt, notPass_cnt, pass_cnt) " +
"(SELECT org_id, " +
"SUM(CASE WHEN form_status = 2 THEN 1 ELSE 0 END) AS approvaling_cnt, " +
"SUM(CASE WHEN form_status = 3 THEN 1 ELSE 0 END) AS pass_cnt, " +
"SUM(CASE WHEN form_status = 4 THEN 1 ELSE 0 END) AS notPass_cnt " +
"FROM approval_form_instance " +
"WHERE ph_delflag = 0 AND form_status IN (2, 3, 4) " +
"GROUP BY org_id)",nativeQuery = true)
void insertFormInstanceCount();
6.直接在JPA上写更新sql
@Transactional
@Modifying
@Query(value = "update ASSET_ALLC_CARD_LINK set src_org_id = :srcOrgId, tar_org_id = :tarOrgId ,ph_curorgid = :tarOrgId where ph_curorgid = :srcOrgId ",nativeQuery = true)
void updateAssetAllcCardLink(@Param("srcOrgId") Long srcOrgId, @Param("tarOrgId") Long tarOrgId);
7.直接在JPA上写查询
@Query(value ="select sum(bfc.approvaling_cnt) approvalingCnt, sum(bfc.notPass_cnt) notPassCnt, sum(bfc.pass_cnt) passCnt\n" +
"from bdata_approval_cnt bfc \n" +
"left join bda_org bo on bfc.org_id=bo.phid \n" +
"where bo.encode like ?1%",nativeQuery = true)
Map<Object,Object> getApprovalCnt(String orgCode);