Browse Source

预算使用导出

v1.0
Yen 2 years ago
parent
commit
b46908e610
  1. 51
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java
  2. 4
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java
  3. 8
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  4. 5
      src/main/resources/mapper/vtb/VtbVerForPayReportMapper.xml

51
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java

@ -1,16 +1,23 @@
package com.qs.serve.modules.tbs.controller; package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.LimitSubmit;
import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget;
import com.qs.serve.modules.tbs.entity.so.TbsBudgetSo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.service.TbsBudgetService;
import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -22,8 +29,11 @@ import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.service.TbsBudgetLogService; import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors;
/** /**
* 预算 预算日志 * 预算 预算日志
@ -37,7 +47,9 @@ import java.util.Optional;
public class TbsBudgetLogController { public class TbsBudgetLogController {
private TbsBudgetLogService tbsBudgetLogService; private TbsBudgetLogService tbsBudgetLogService;
private TbsBudgetService tbsBudgetService;
private TbsBudgetLogMapper tbsBudgetLogMapper; private TbsBudgetLogMapper tbsBudgetLogMapper;
private final TbsBudgetMapper tbsBudgetMapper;
private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; private TbsScheduleItemBudgetService tbsScheduleItemBudgetService;
private TbsBudgetLogService budgetLogService; private TbsBudgetLogService budgetLogService;
@ -55,6 +67,45 @@ public class TbsBudgetLogController {
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<TbsBudgetLog>> getList(TbsBudgetLogSo param){
TbsBudgetLog entity = CopierUtil.copy(param,new TbsBudgetLog());
LambdaQueryWrapper<TbsBudgetLog> lqw = new LambdaQueryWrapper<>(entity);
List<TbsBudgetLog> list = tbsBudgetLogService.list(lqw);
return R.ok(list);
}
/**
* 导出使用明细
* @param param
* @return
*/
@LimitSubmit(interval = 3000)
@GetMapping("/export")
public R<List<TbsBudgetVo>> getExport(TbsBudgetSo param){
List<Long> budgetIds = tbsBudgetMapper.selectBudgetId(param);
List<TbsBudgetVo> budgetVoList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(budgetIds)){
TbsBudget param4Query = new TbsBudget();
param4Query.setSelectBudgetIds(budgetIds);
List<TbsBudget> budgetList = tbsBudgetMapper.selectBatchIds(budgetIds);
List<TbsScheduleItemBudget> scheduleItemBudgets = tbsBudgetService.getEntityForExcel(param4Query).getScheduleItemBudgets();
Map<Long,List<TbsScheduleItemBudget>> map = scheduleItemBudgets.stream().collect(Collectors.groupingBy(TbsScheduleItemBudget::getBudgetId));
for (TbsBudget budget : budgetList) {
TbsBudgetVo budgetVo = CopierUtil.copy(budget,new TbsBudgetVo());
List<TbsScheduleItemBudget> tmp = map.get(budget.getId());
budgetVo.setScheduleItemBudgets(tmp);
budgetVoList.add(budgetVo);
}
}
return R.ok(budgetVoList);
}
/** /**
* 获取统计金额 * 获取统计金额
* @param budgetId * @param budgetId

4
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java

@ -188,5 +188,9 @@ public class TbsBudget implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private List<?> attachList; private List<?> attachList;
//用于导出 区分 普通加载id
@TableField(exist = false)
private List<Long> selectBudgetIds;
} }

8
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -840,12 +840,20 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
public TbsBudgetVo getEntityForExcel(TbsBudget budget){ public TbsBudgetVo getEntityForExcel(TbsBudget budget){
TbsBudgetVo budgetVo = CopierUtil.copy(budget,new TbsBudgetVo()); TbsBudgetVo budgetVo = CopierUtil.copy(budget,new TbsBudgetVo());
LambdaQueryWrapper<TbsScheduleItemBudget> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsScheduleItemBudget> lqw = new LambdaQueryWrapper<>();
if(CollectionUtil.isNotEmpty(budget.getSelectBudgetIds())){
lqw.in(TbsScheduleItemBudget::getBudgetId,budget.getSelectBudgetIds());
}else {
lqw.eq(TbsScheduleItemBudget::getBudgetId,budget.getId()); lqw.eq(TbsScheduleItemBudget::getBudgetId,budget.getId());
}
List<TbsScheduleItemBudget> tbsScheduleItemBudgetList = scheduleItemBudgetService.list(lqw); List<TbsScheduleItemBudget> tbsScheduleItemBudgetList = scheduleItemBudgetService.list(lqw);
tbsScheduleItemBudgetList.forEach(a->{ tbsScheduleItemBudgetList.forEach(a->{
LambdaQueryWrapper<TbsBudgetLog> lqwLog = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsBudgetLog> lqwLog = new LambdaQueryWrapper<>();
lqwLog.eq(TbsBudgetLog::getScheduleItemBudgetId,a.getId()); lqwLog.eq(TbsBudgetLog::getScheduleItemBudgetId,a.getId());
if(CollectionUtil.isNotEmpty(budget.getSelectBudgetIds())){
lqwLog.in(TbsBudgetLog::getBudgetId,budget.getSelectBudgetIds());
}else {
lqwLog.eq(TbsBudgetLog::getBudgetId,budget.getId()); lqwLog.eq(TbsBudgetLog::getBudgetId,budget.getId());
}
List<TbsBudgetLog> tbsBudgetLogList = budgetLogService.list(lqwLog); List<TbsBudgetLog> tbsBudgetLogList = budgetLogService.list(lqwLog);
a.setBudgetLogList(tbsBudgetLogList); a.setBudgetLogList(tbsBudgetLogList);

5
src/main/resources/mapper/vtb/VtbVerForPayReportMapper.xml

@ -270,11 +270,14 @@
left join vtb_verification vtb on pay_payment_item.verification_id = vtb.id left join vtb_verification vtb on pay_payment_item.verification_id = vtb.id
left join tbs_activity act on act.id = vtb.activity_id left join tbs_activity act on act.id = vtb.activity_id
<include refid="payBaseWhere"></include> <include refid="payBaseWhere"></include>
limit limit {pageInfo.startIndex},{pageInfo.size}
</select> </select>
<select id="countPayItemList" resultType="java.lang.Long"> <select id="countPayItemList" resultType="java.lang.Long">
</select>
<select id="sumPayItemListAmt" resultType="java.math.BigDecimal">
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save