Browse Source

feat: 审批中的预算占用列表

checkBack
Yen 1 year ago
parent
commit
be04bd070b
  1. 13
      src/main/java/com/qs/serve/modules/bir/controller/BirBudgetScheduleController.java
  2. 22
      src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCheckingWithAmount.java
  3. 9
      src/main/java/com/qs/serve/modules/tbs/entity/so/TbsScheduleItemSearch.java
  4. 16
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLog2Mapper.java
  5. 12
      src/main/java/com/qs/serve/modules/tbs/service/TbsScheduleItemBudgetService.java
  6. 2
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  7. 45
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java
  8. 68
      src/main/resources/mapper/tbs/TbsBudget2Mapper.xml

13
src/main/java/com/qs/serve/modules/bir/controller/BirBudgetScheduleController.java

@ -2,10 +2,12 @@ package com.qs.serve.modules.bir.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.modules.tbs.entity.TbsSchedule; import com.qs.serve.modules.tbs.entity.TbsSchedule;
import com.qs.serve.modules.tbs.entity.TbsScheduleItem; import com.qs.serve.modules.tbs.entity.TbsScheduleItem;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCheckingWithAmount;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetWithAmount; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetWithAmount;
import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemBudgetIdDto; import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemBudgetIdDto;
import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemWithAmount; import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemWithAmount;
@ -49,6 +51,17 @@ public class BirBudgetScheduleController {
return R.ok(scheduleItemWithAmounts); return R.ok(scheduleItemWithAmounts);
} }
/**
* 查询预算审批中的使用情况
* @param query
* @return
*/
@PostMapping("/budgetCheckingList")
public R<PageVo<TbsBudgetCheckingWithAmount>> queryBudgetUsingList(@RequestBody TbsScheduleItemSearch query){
query.initCenterCombo();
return R.byPageHelperList(scheduleItemBudgetService.listBudgetCheckingAmount(query));
}
/** /**
* 查询周期使用情况 * 查询周期使用情况
* @param query * @param query

22
src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCheckingWithAmount.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.tbs.entity.dto;
import lombok.Data;
/**
* @author YenHex
* @since 2024/6/3
*/
@Data
public class TbsBudgetCheckingWithAmount {
private String type;
private String tarId;
private String tarCode;
private String tarTitle;
private String totalAmount;
private String supplierCode;
private String supplierName;
private String userCode;
private String userName;
}

9
src/main/java/com/qs/serve/modules/tbs/entity/so/TbsScheduleItemSearch.java

@ -28,6 +28,11 @@ public class TbsScheduleItemSearch {
*/ */
private List<String> scheduleItemIds; private List<String> scheduleItemIds;
/**
* 周期项的预算ID用于查询`审批中`的使用情况
*/
private List<Long> scheduleItemBudgetIds;
/** /**
* 品牌ID * 品牌ID
*/ */
@ -56,4 +61,8 @@ public class TbsScheduleItemSearch {
} }
} }
private Integer pageNum;
private Integer pageSize;
} }

16
src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLog2Mapper.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog; import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCheckingWithAmount;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogWithAmount; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogWithAmount;
import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemBudgetIdDto; import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemBudgetIdDto;
import com.qs.serve.modules.tbs.entity.so.TbsScheduleItemSearch; import com.qs.serve.modules.tbs.entity.so.TbsScheduleItemSearch;
@ -70,5 +71,20 @@ public interface TbsBudgetLog2Mapper extends BaseMapper<TbsBudgetLog> {
@InterceptorIgnore(tenantLine = "true") @InterceptorIgnore(tenantLine = "true")
List<TbsBudgetLogWithAmount> getCostCheckingList(@Param("selectIds") List<Long> ids,@Param("optNumbers")List<Integer> optNumbers); List<TbsBudgetLogWithAmount> getCostCheckingList(@Param("selectIds") List<Long> ids,@Param("optNumbers")List<Integer> optNumbers);
/**
* 统计审批中的费用占用多少的logs
* @param ids
* @param policyNumbers
* @param costNumbers
* @return
*/
@InterceptorIgnore(tenantLine = "true")
List<TbsBudgetCheckingWithAmount> getBudgetLogCheckingList(
@Param("selectIds") List<Long> ids
,@Param("scheduleItemBudgetIds") List<Long> scheduleItemBudgetIds
, @Param("policyNumbers")List<Integer> policyNumbers
, @Param("costNumbers")List<Integer> costNumbers
);
} }

12
src/main/java/com/qs/serve/modules/tbs/service/TbsScheduleItemBudgetService.java

@ -3,10 +3,7 @@ package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetScheduleWithAmount; import com.qs.serve.modules.tbs.entity.dto.*;
import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemBudgetIdDto;
import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemWithAmount;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetWithAmount;
import com.qs.serve.modules.tbs.entity.so.TbsScheduleItemSearch; import com.qs.serve.modules.tbs.entity.so.TbsScheduleItemSearch;
import java.time.LocalDate; import java.time.LocalDate;
@ -46,6 +43,13 @@ public interface TbsScheduleItemBudgetService extends IService<TbsScheduleItemBu
*/ */
List<TbsBudgetWithAmount> listBudgetAmountByIds(TbsScheduleItemSearch param); List<TbsBudgetWithAmount> listBudgetAmountByIds(TbsScheduleItemSearch param);
/**
* 查询审批中的费用或政策
* @param param
* @return
*/
List<TbsBudgetCheckingWithAmount> listBudgetCheckingAmount(TbsScheduleItemSearch param);
} }

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

@ -199,7 +199,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
budget.setAttachIds(budgetBo.getAttachIds()); budget.setAttachIds(budgetBo.getAttachIds());
//设置指定模板 //设置指定模板
budget.setTemplateIds(new String[]{}); budget.setTemplateIds(new String[]{});
if(budget.getTemplateFlag()!=null&&budget.getTemplateFlag().equals(1)){ if(budgetBo.getTemplateFlag()!=null&&budgetBo.getTemplateFlag().equals(1)){
if(budgetBo.getTemplateIds()!=null&&budgetBo.getTemplateIds().length>0){ if(budgetBo.getTemplateIds()!=null&&budgetBo.getTemplateIds().length>0){
budget.setTemplateIds(budgetBo.getTemplateIds()); budget.setTemplateIds(budgetBo.getTemplateIds());
} }

45
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java

@ -2,10 +2,13 @@ package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsBudgetCondition; import com.qs.serve.modules.tbs.entity.TbsBudgetCondition;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.entity.dto.*; import com.qs.serve.modules.tbs.entity.dto.*;
import com.qs.serve.modules.tbs.entity.so.TbsScheduleItemSearch; import com.qs.serve.modules.tbs.entity.so.TbsScheduleItemSearch;
import com.qs.serve.modules.tbs.mapper.*; import com.qs.serve.modules.tbs.mapper.*;
@ -349,5 +352,47 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl<TbsScheduleIte
return result; return result;
} }
@Override
public List<TbsBudgetCheckingWithAmount> listBudgetCheckingAmount(TbsScheduleItemSearch param) {
LambdaQueryWrapper<TbsBudget> budgetLqw = new LambdaQueryWrapper<>();
budgetLqw.in(TbsBudget::getScheduleId,param.getScheduleIds());
budgetLqw.in(TbsBudget::getCenterCombo,param.getCenterCombos());
budgetLqw.eq(TbsBudget::getBudgetState,1);
List<TbsBudget> budgetList = tbsBudgetMapper.selectList(budgetLqw);
Set<Long> budgetIds;
if(CollectionUtil.isNotEmpty(param.getBrandIds())){
//无品牌条件
budgetIds = budgetList.stream()
.filter(a->a.getConditionFlag().equals(0))
.map(TbsBudget::getId).collect(Collectors.toSet());
//筛选符合品牌条件
List<Long> conBudgetIds = budgetList.stream()
.filter(a->a.getConditionFlag().equals(1))
.map(TbsBudget::getId).collect(Collectors.toList());
LambdaQueryWrapper<TbsBudgetCondition> conLqw = new LambdaQueryWrapper<>();
conBudgetIds.add(0L);
conLqw.in(TbsBudgetCondition::getBudgetId,conBudgetIds);
conLqw.in(TbsBudgetCondition::getBrandId,param.getBrandIds());
List<TbsBudgetCondition> conditions = budgetConditionMapper.selectList(conLqw);
conBudgetIds = conditions.stream().map(TbsBudgetCondition::getBudgetId).collect(Collectors.toList());
budgetIds.addAll(conBudgetIds);
}else {
//加载所有
budgetIds = budgetList.stream().map(TbsBudget::getId).collect(Collectors.toSet());
}
budgetIds.add(0L);
PageHelper.startPage(param.getPageNum(),param.getPageSize());
List<TbsBudgetCheckingWithAmount> budgetLogs = tbsBudgetLog2Mapper.getBudgetLogCheckingList(new ArrayList<>(budgetIds),param.getScheduleItemBudgetIds(), BudgetLogOptFlag.finalPolicyOptFlag,BudgetLogOptFlag.finalCostOptFlag);
return budgetLogs;
}
} }

68
src/main/resources/mapper/tbs/TbsBudget2Mapper.xml

@ -114,6 +114,7 @@
group by tbs_budget_log.schedule_item_budget_id group by tbs_budget_log.schedule_item_budget_id
</select> </select>
<select id="getCostCheckingList" resultType="com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogWithAmount"> <select id="getCostCheckingList" resultType="com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogWithAmount">
select select
tbs_budget_log.budget_id as id, tbs_budget_log.budget_id as id,
@ -137,5 +138,72 @@
group by tbs_budget_log.schedule_item_budget_id group by tbs_budget_log.schedule_item_budget_id
</select> </select>
<select id="getBudgetLogCheckingList" resultType="com.qs.serve.modules.tbs.entity.dto.TbsBudgetCheckingWithAmount">
select
'costApply' as type,
tbs_cost_apply.id as tar_id,
tbs_cost_apply.code as tar_code,
tbs_cost_apply.charge_theme as tar_title,
sum(tbs_budget_log.amount) as total_amount,
tbs_cost_apply.supplier_code,
tbs_cost_apply.supplier_name,
tbs_cost_apply.user_code,
tbs_cost_apply.user_name
from tbs_budget_log
left join tbs_cost_apply on tbs_budget_log.cost_apply_id = tbs_cost_apply.id
where
tbs_budget_log.cost_apply_id is not null
and tbs_cost_apply.charge_state = 1
and tbs_budget_log.del_flag = 0
and tbs_cost_apply.del_flag = 0
and opt_type in
<foreach collection="costNumbers" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
AND tbs_budget_log.budget_id in
<foreach collection="selectIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
AND tbs_budget_log.schedule_item_budget_id in
<foreach collection="scheduleItemBudgetIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
group by tbs_budget_log.cost_apply_id
union
select
'policy' as type,
tzc_policy.id as tar_id,
tzc_policy.policy_code as tar_code,
tzc_policy.title as tar_title,
sum(tbs_budget_log.amount) as total_amount,
tzc_policy.supplier_code,
tzc_policy.supplier_name,
tzc_policy.user_code,
tzc_policy.user_name
from tbs_budget_log
left join tzc_policy on tbs_budget_log.policy_id = tzc_policy.id
where
tbs_budget_log.policy_id is not null
and tzc_policy.policy_status = 1
and tbs_budget_log.del_flag = 0
and tzc_policy.del_flag = 0
and opt_type in
<foreach collection="policyNumbers" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
AND tbs_budget_log.budget_id in
<foreach collection="selectIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
AND tbs_budget_log.schedule_item_budget_id in
<foreach collection="scheduleItemBudgetIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
group by tbs_budget_log.policy_id
</select>
</mapper> </mapper>

Loading…
Cancel
Save