Browse Source

调整

v1.0
Yen 2 years ago
parent
commit
5a40aa9d7b
  1. 17
      src/main/java/com/qs/serve/modules/bir/controller/BirBudgetScheduleController.java
  2. 5
      src/main/java/com/qs/serve/modules/tbs/entity/so/TbsScheduleItemSearch.java
  3. 27
      src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetMatchMsgVo.java
  4. 19
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetManagerService.java
  5. 96
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetManagerServiceImpl.java
  6. 3
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  7. 2
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java
  8. 8
      src/main/resources/mapper/tbs/TbsScheduleItemBudget2Mapper.xml

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

@ -1,5 +1,6 @@
package com.qs.serve.modules.bir.controller; 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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;
@ -14,9 +15,7 @@ import com.qs.serve.modules.tbs.mapper.TbsScheduleMapper;
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;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -42,9 +41,17 @@ public class BirBudgetScheduleController {
* @param query * @param query
* @return * @return
*/ */
@GetMapping("/budgetItemUsedList") @PostMapping("/budgetItemUsedList")
public R<List<TbsScheduleItemWithAmount>> queryBudgetItemUsed(TbsScheduleItemSearch query){ public R<List<TbsScheduleItemWithAmount>> queryBudgetItemUsed(@RequestBody TbsScheduleItemSearch query){
query.initCenterCombo(); query.initCenterCombo();
if(CollectionUtil.isNotEmpty(query.getScheduleIds())){
LambdaQueryWrapper<TbsScheduleItem> lqw = new LambdaQueryWrapper<>();
lqw.in(TbsScheduleItem::getScheduleId,query.getScheduleIds());
lqw.select(TbsScheduleItem::getId);
List<TbsScheduleItem> scheduleItemList = tbsScheduleItemMapper.selectList(lqw);
List<String> itemIds = scheduleItemList.stream().map(a->a.getId().toString()).collect(Collectors.toList());
query.setScheduleItemIds(itemIds);
}
List<TbsScheduleItemBudgetIdDto> scheduleItemBudgetIdDtoList = scheduleItemBudget2Mapper.listItemBudgetIds(query); List<TbsScheduleItemBudgetIdDto> scheduleItemBudgetIdDtoList = scheduleItemBudget2Mapper.listItemBudgetIds(query);
List<Long> scheduleItemIds = scheduleItemBudgetIdDtoList.stream().map(TbsScheduleItemBudgetIdDto::getScheduleItemId).collect(Collectors.toList()); List<Long> scheduleItemIds = scheduleItemBudgetIdDtoList.stream().map(TbsScheduleItemBudgetIdDto::getScheduleItemId).collect(Collectors.toList());
if(CollectionUtil.isEmpty(scheduleItemIds)){ if(CollectionUtil.isEmpty(scheduleItemIds)){

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

@ -18,6 +18,11 @@ public class TbsScheduleItemSearch {
*/ */
private List<String> centerCombos; private List<String> centerCombos;
/**
* 周期ID
*/
private List<String> scheduleIds;
/** /**
* 周期ID * 周期ID
*/ */

27
src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetMatchMsgVo.java

@ -0,0 +1,27 @@
package com.qs.serve.modules.tbs.entity.vo;
/**
* @author YenHex
* @since 2023/12/28
*/
public class TbsBudgetMatchMsgVo {
/** 活动ID */
private Long activityId;
/** 活动编码 */
private String activityCode;
/** 活动标题 */
private String activityTitle;
/** 预算ID */
private Long budgetId;
/** 预算编码 */
private String budgetCode;
/** 预算标题 */
private String budgetTitle;
}

19
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetManagerService.java

@ -0,0 +1,19 @@
package com.qs.serve.modules.tbs.service;
import java.util.List;
/**
* @author YenHex
* @since 2023/12/28
*/
public interface TbsBudgetManagerService {
/**
* 对比活动和预算进行条件匹配返回不符合的内容(以Budget为参照物全量匹配)
* @param activityIds
* @param budgetIds
* @return
*/
Object compare(List<Long> activityIds, List<Long> budgetIds);
}

96
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetManagerServiceImpl.java

@ -0,0 +1,96 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.mapper.*;
import com.qs.serve.modules.tbs.service.TbsActivityCenterGoodsService;
import com.qs.serve.modules.tbs.service.TbsBudgetManagerService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author YenHex
* @since 2023/12/28
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsBudgetManagerServiceImpl implements TbsBudgetManagerService {
private final TbsActivityMapper activityMapper;
private final TbsActivityCenterMapper activityCenterMapper;
private final TbsActivitySubjectMapper activitySubjectMapper;
private final TbsActivityCenterGoodsMapper activityCenterGoodsMapper;
private final TbsBudgetMapper budgetMapper;
private final TbsBudgetConditionMapper budgetConditionMapper;
private final TbsScheduleItemBudgetMapper scheduleItemBudgetMapper;
@Override
public Object compare(List<Long> activityIds, List<Long> budgetIds) {
//加载基础数据
QueryWrapper acgLqw = new QueryWrapper<>();
acgLqw.in("activity_id",activityIds);
List<TbsBudget> budgetList = budgetMapper.selectBatchIds(budgetIds);
List<TbsActivity> activityList = activityMapper.selectBatchIds(activityIds);
List<TbsActivityCenter> allCenterList = activityCenterMapper.selectList(acgLqw);
List<TbsActivitySubject> allSubjectList = activitySubjectMapper.selectList(acgLqw);
List<TbsActivityCenterGoods> allCenterGoodsList = activityCenterGoodsMapper.selectList(acgLqw);
Map<Long,List<TbsActivityCenter>> centerListMap = allCenterList.stream().collect(Collectors.groupingBy(TbsActivityCenter::getActivityId));
Map<Long,List<TbsActivitySubject>> subjectListMap = allSubjectList.stream().collect(Collectors.groupingBy(TbsActivitySubject::getActivityId));
Map<Long,List<TbsActivityCenterGoods>> centerGoodsListMap = allCenterGoodsList.stream().collect(Collectors.groupingBy(TbsActivityCenterGoods::getActivityId));
LambdaQueryWrapper<TbsBudgetCondition> conditionLqw = new LambdaQueryWrapper<>();
conditionLqw.in(TbsBudgetCondition::getBudgetId,budgetIds);
List<TbsBudgetCondition> allConditionList = budgetConditionMapper.selectList(conditionLqw);
Map<Long,List<TbsBudgetCondition>> conditionListMap = allConditionList.stream().collect(Collectors.groupingBy(TbsBudgetCondition::getBudgetId));
//匹对
for (TbsBudget budget : budgetList) {
for (TbsActivity activity : activityList) {
Long budgetId = budget.getId();
Long activityId = activity.getId();
//判断科目
if(!budget.getSubjectId().equals(0L)){
List<TbsActivitySubject> subjectList = subjectListMap.get(activityId);
for (TbsActivitySubject subject : subjectList) {
if(!subject.getSubjectId().equals(budget.getSubjectId())){
String msg = "无法匹配科目";
}
}
}
//判断成本中心
List<TbsActivityCenter> centerList = centerListMap.get(activityId);
for (TbsActivityCenter center : centerList) {
if(!center.getCenterType().equals(budget.getCenterType())||center.getCenterId().equals(budget.getCenterId())){
String msg = "无法匹配成本中心";
}
}
//判断时间
List<TbsBudgetCondition> budgetConditionList = conditionListMap.get(budgetId);
//判断品类
}
}
//
return null;
}
}

3
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -274,7 +274,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
} }
if(tbsCostApply.getTemplateId()!=null){ if(tbsCostApply.getTemplateId()!=null){
TbsActivityTemplate activityTemplate = tbsActivityTemplateService.getById(tbsCostApply.getTemplateId()); TbsActivityTemplate activityTemplate = tbsActivityTemplateService.getById(tbsCostApply.getTemplateId());
if(tbsCostApply.getChangeSourceId()==null&&activityTemplate.getTemplateState().equals(0)){ if(tbsCostApply.getChangeSourceId()==null&&activityTemplate.getTemplateState().equals(0)
&&!tbsCostApply.getChargeState().equals(TbsCostApplyState.State_4_refused.getCode())){
Assert.throwEx("当前模板已停用"); Assert.throwEx("当前模板已停用");
} }
} }

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

@ -135,7 +135,7 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl<TbsScheduleIte
public List<TbsScheduleItemWithAmount> listScheduleItemAmountByIds(List<TbsScheduleItemBudgetIdDto> scheduleItemBudgetIdDtoList) { public List<TbsScheduleItemWithAmount> listScheduleItemAmountByIds(List<TbsScheduleItemBudgetIdDto> scheduleItemBudgetIdDtoList) {
List<Long> scheduleItemBudgetIds = scheduleItemBudgetIdDtoList.stream().map(TbsScheduleItemBudgetIdDto::getScheduleItemBudgetId).collect(Collectors.toList()); List<Long> scheduleItemBudgetIds = scheduleItemBudgetIdDtoList.stream().map(TbsScheduleItemBudgetIdDto::getScheduleItemBudgetId).collect(Collectors.toList());
List<Long> scheduleItemIds = scheduleItemBudgetIdDtoList.stream().map(TbsScheduleItemBudgetIdDto::getScheduleItemId).collect(Collectors.toList()); List<Long> scheduleItemIds = scheduleItemBudgetIdDtoList.stream().map(TbsScheduleItemBudgetIdDto::getScheduleItemId).distinct().collect(Collectors.toList());
// 预算金额 // 预算金额
List<TbsBudgetLogWithAmount> finalList = scheduleItemBudget2Mapper.getSumAmtInList(scheduleItemBudgetIds, BudgetLogOptFlag.getFinalBudgetOptFlag()); List<TbsBudgetLogWithAmount> finalList = scheduleItemBudget2Mapper.getSumAmtInList(scheduleItemBudgetIds, BudgetLogOptFlag.getFinalBudgetOptFlag());

8
src/main/resources/mapper/tbs/TbsScheduleItemBudget2Mapper.xml

@ -20,7 +20,7 @@
#{selectId} #{selectId}
</foreach> </foreach>
</if> </if>
<if test="query.centerCombos != null and query.centerCombos.size > 0"> <if test="query.brandIds != null and query.brandIds.size > 0">
and and
( (
tbs_budget.condition_flag = 0 or tbs_budget_condition.brand_id in tbs_budget.condition_flag = 0 or tbs_budget_condition.brand_id in
@ -63,7 +63,7 @@
<foreach collection="optNumbers" item ="selectId" index="i" open="(" close=")" separator=","> <foreach collection="optNumbers" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId} #{selectId}
</foreach> </foreach>
AND schedule_item_budeget_id in AND schedule_item_budget_id in
<foreach collection="selectIds" item ="selectId" index="i" open="(" close=")" separator=","> <foreach collection="selectIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId} #{selectId}
</foreach> </foreach>
@ -85,7 +85,7 @@
<foreach collection="optNumbers" item ="selectId" index="i" open="(" close=")" separator=","> <foreach collection="optNumbers" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId} #{selectId}
</foreach> </foreach>
AND schedule_item_budeget_id in AND schedule_item_budget_id in
<foreach collection="selectIds" item ="selectId" index="i" open="(" close=")" separator=","> <foreach collection="selectIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId} #{selectId}
</foreach> </foreach>
@ -107,7 +107,7 @@
<foreach collection="optNumbers" item ="selectId" index="i" open="(" close=")" separator=","> <foreach collection="optNumbers" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId} #{selectId}
</foreach> </foreach>
AND schedule_item_budeget_id in AND schedule_item_budget_id in
<foreach collection="selectIds" item ="selectId" index="i" open="(" close=")" separator=","> <foreach collection="selectIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId} #{selectId}
</foreach> </foreach>

Loading…
Cancel
Save