diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirBudgetScheduleController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirBudgetScheduleController.java index dd38e72c..09c5fb49 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirBudgetScheduleController.java +++ b/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.QueryWrapper; +import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.modules.tbs.entity.TbsSchedule; 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.TbsScheduleItemBudgetIdDto; import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemWithAmount; @@ -49,6 +51,17 @@ public class BirBudgetScheduleController { return R.ok(scheduleItemWithAmounts); } + /** + * 查询预算审批中的使用情况 + * @param query + * @return + */ + @PostMapping("/budgetCheckingList") + public R> queryBudgetUsingList(@RequestBody TbsScheduleItemSearch query){ + query.initCenterCombo(); + return R.byPageHelperList(scheduleItemBudgetService.listBudgetCheckingAmount(query)); + } + /** * 查询周期使用情况 * @param query diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCheckingWithAmount.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCheckingWithAmount.java new file mode 100644 index 00000000..ceefa93c --- /dev/null +++ b/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; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsScheduleItemSearch.java b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsScheduleItemSearch.java index a2590144..5c5da5fb 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsScheduleItemSearch.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsScheduleItemSearch.java @@ -28,6 +28,11 @@ public class TbsScheduleItemSearch { */ private List scheduleItemIds; + /** + * 周期项的预算ID(用于查询`审批中`的使用情况) + */ + private List scheduleItemBudgetIds; + /** * 品牌ID */ @@ -56,4 +61,8 @@ public class TbsScheduleItemSearch { } } + private Integer pageNum; + + private Integer pageSize; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLog2Mapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLog2Mapper.java index 7fd7f6b1..ca243a4d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLog2Mapper.java +++ b/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.qs.serve.modules.tbs.entity.TbsBudgetLog; 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.TbsScheduleItemBudgetIdDto; import com.qs.serve.modules.tbs.entity.so.TbsScheduleItemSearch; @@ -70,5 +71,20 @@ public interface TbsBudgetLog2Mapper extends BaseMapper { @InterceptorIgnore(tenantLine = "true") List getCostCheckingList(@Param("selectIds") List ids,@Param("optNumbers")List optNumbers); + /** + * 统计审批中的费用,占用多少的logs + * @param ids + * @param policyNumbers + * @param costNumbers + * @return + */ + @InterceptorIgnore(tenantLine = "true") + List getBudgetLogCheckingList( + @Param("selectIds") List ids + ,@Param("scheduleItemBudgetIds") List scheduleItemBudgetIds + , @Param("policyNumbers")List policyNumbers + , @Param("costNumbers")List costNumbers + ); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsScheduleItemBudgetService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsScheduleItemBudgetService.java index b7cb4245..3c562f7b 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsScheduleItemBudgetService.java +++ b/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.extension.service.IService; 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.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.dto.*; import com.qs.serve.modules.tbs.entity.so.TbsScheduleItemSearch; import java.time.LocalDate; @@ -46,6 +43,13 @@ public interface TbsScheduleItemBudgetService extends IService listBudgetAmountByIds(TbsScheduleItemSearch param); + /** + * 查询审批中的费用或政策 + * @param param + * @return + */ + List listBudgetCheckingAmount(TbsScheduleItemSearch param); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index 341075ff..0f128367 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java @@ -199,7 +199,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl budget.setAttachIds(budgetBo.getAttachIds()); //设置指定模板 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){ budget.setTemplateIds(budgetBo.getTemplateIds()); } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java index 90c6fe1b..74048d31 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java +++ b/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.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; import com.qs.serve.common.model.enums.BudgetLogOptFlag; 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.TbsBudgetCondition; +import com.qs.serve.modules.tbs.entity.TbsBudgetLog; import com.qs.serve.modules.tbs.entity.dto.*; import com.qs.serve.modules.tbs.entity.so.TbsScheduleItemSearch; import com.qs.serve.modules.tbs.mapper.*; @@ -349,5 +352,47 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl listBudgetCheckingAmount(TbsScheduleItemSearch param) { + + LambdaQueryWrapper budgetLqw = new LambdaQueryWrapper<>(); + budgetLqw.in(TbsBudget::getScheduleId,param.getScheduleIds()); + budgetLqw.in(TbsBudget::getCenterCombo,param.getCenterCombos()); + budgetLqw.eq(TbsBudget::getBudgetState,1); + List budgetList = tbsBudgetMapper.selectList(budgetLqw); + + Set budgetIds; + + if(CollectionUtil.isNotEmpty(param.getBrandIds())){ + //无品牌条件 + budgetIds = budgetList.stream() + .filter(a->a.getConditionFlag().equals(0)) + .map(TbsBudget::getId).collect(Collectors.toSet()); + + //筛选符合品牌条件 + List conBudgetIds = budgetList.stream() + .filter(a->a.getConditionFlag().equals(1)) + .map(TbsBudget::getId).collect(Collectors.toList()); + + LambdaQueryWrapper conLqw = new LambdaQueryWrapper<>(); + conBudgetIds.add(0L); + conLqw.in(TbsBudgetCondition::getBudgetId,conBudgetIds); + conLqw.in(TbsBudgetCondition::getBrandId,param.getBrandIds()); + List 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 budgetLogs = tbsBudgetLog2Mapper.getBudgetLogCheckingList(new ArrayList<>(budgetIds),param.getScheduleItemBudgetIds(), BudgetLogOptFlag.finalPolicyOptFlag,BudgetLogOptFlag.finalCostOptFlag); + + return budgetLogs; + } } diff --git a/src/main/resources/mapper/tbs/TbsBudget2Mapper.xml b/src/main/resources/mapper/tbs/TbsBudget2Mapper.xml index 161acaae..84d4d79c 100644 --- a/src/main/resources/mapper/tbs/TbsBudget2Mapper.xml +++ b/src/main/resources/mapper/tbs/TbsBudget2Mapper.xml @@ -114,6 +114,7 @@ group by tbs_budget_log.schedule_item_budget_id + + +