From 69b762739d8e1b3c4e5c35b1232531ed211c88c8 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 6 Jan 2023 17:08:28 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E6=97=A5=E5=BF=97-=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GoodsSkuServiceImpl.java | 9 +++++ .../tbs/controller/TbsBudgetController.java | 4 ++- .../tbs/entity/TbsActivityCenterGoods.java | 4 +++ .../modules/tbs/entity/TbsBudgetCostItem.java | 2 ++ .../modules/tbs/entity/TbsBudgetLog.java | 2 ++ .../tbs/entity/dto/TbsBudgetCostResult.java | 4 +++ .../TbsActivityApplicationService.java | 2 ++ .../service/TbsBudgetApplicationService.java | 34 +++++++++---------- .../tbs/service/TbsBudgetLogService.java | 7 ++-- .../modules/tbs/service/TbsBudgetService.java | 2 ++ .../service/impl/TbsBudgetLogServiceImpl.java | 11 +++--- .../service/impl/TbsBudgetServiceImpl.java | 30 +++++++++++----- .../service/impl/TbsCostApplyServiceImpl.java | 25 +++++++------- .../impl/VtbVerificationServiceImpl.java | 9 +++-- 14 files changed, 92 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java index 8c271c93..cef5a462 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java @@ -111,6 +111,15 @@ public class GoodsSkuServiceImpl extends ServiceImpl im } } } + String specInfos = ""; + for (int i = 0; i < skuSpecValueVos.size(); i++) { + GoodsSkuSpecValueVo specValueVo = skuSpecValueVos.get(i); + if( i > 0 ){ + specInfos = ";"+specInfos; + } + specInfos = specValueVo.getSpecValue() + specInfos; + } + goodsSku.setSpecInfos(specInfos); this.saveOrUpdate(goodsSku); for (GoodsSpecValue specValue : goodsSpecValues) { goodsSkuSpecValueService.initSkuSpecValue(goodsSku.getSpuId(),goodsSku.getId(),specValue.getId()); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 35a991d9..b9589d23 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java @@ -129,7 +129,7 @@ public class TbsBudgetController { public R updateById(@RequestBody @Valid TbsBudgetStateBo param){ TbsBudget budget = new TbsBudget(); budget.setId(param.getId()); - budget.setBudgetState(param.getBudgetState().equals(1)?1:0); + budget.setBudgetState(1); tbsBudgetService.updateById(budget); return R.ok(); } @@ -145,6 +145,8 @@ public class TbsBudgetController { public R updateById(@RequestBody @Valid TbsScheduleItemBudgetBo param){ SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); TbsScheduleItemBudget scheduleItemBudget = tbsScheduleItemBudgetService.getById(param.getId()); + //金额相同时退出 + if(scheduleItemBudget.getBudgetAmount().compareTo(param.getBudgetAmount())==0){return R.ok();} TbsBudget budget = tbsBudgetService.getById(scheduleItemBudget.getBudgetId()); TbsScheduleItemBudget itemBudget = new TbsScheduleItemBudget(); itemBudget.setId(param.getId()); diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java index 91ef0162..b8b7bd9e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java @@ -218,6 +218,10 @@ public class TbsActivityCenterGoods implements Serializable { @TableField(exist = false) private Long scheduleItemId; + /** 后台参数:考核期项id */ + @TableField(exist = false) + private String scheduleItemName; + /** 后台参数:费用考核期项id */ @TableField(exist = false) private Long scheduleItemBudgetId; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCostItem.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCostItem.java index 874aff8c..ff890e1e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCostItem.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCostItem.java @@ -210,6 +210,8 @@ public class TbsBudgetCostItem implements Serializable { @NotNull(message = "考核期项id不能为空") private Long scheduleItemId; + private String scheduleItemName; + /** 费用考核期项id */ @NotNull(message = "费用考核期项id不能为空") private Long scheduleItemBudgetId; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java index a8249d59..e788f33e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java @@ -142,6 +142,8 @@ public class TbsBudgetLog implements Serializable { @Length(max = 30,message = "活动编码长度不能超过30字") private String activityCode; + private String activityTheme; + /** 费用申请id */ private Long costApplyId; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCostResult.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCostResult.java index 71a10714..fb9bc311 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCostResult.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCostResult.java @@ -3,6 +3,7 @@ package com.qs.serve.modules.tbs.entity.dto; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; +import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.TbsBudgetCostItem; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; @@ -35,4 +36,7 @@ public class TbsBudgetCostResult { /** 后台数据数据封装 */ private List budgetList; + /** 后台数据数据封装 */ + private List activityList; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java index 7ae9b014..8ee8ed38 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java @@ -173,6 +173,8 @@ public class TbsActivityApplicationService { if(!hasNoMatch){ budgetIdsOfActivity.add(budget.getId()); } + }else { + budgetIdsOfActivity.add(budget.getId()); } } return budgetIdsOfActivity; diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java index 3a55b6f8..bb8899b7 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java @@ -187,7 +187,9 @@ public class TbsBudgetApplicationService { //预算条件需包含活动条件, Map结构:活动id->满足的预算id列表 Map> activityAllowBudgetIdMap = this.buildActivityBudgetMap(activityList, budgetList, noConditionBudgetList); //活动拦截 - this.handleNoBudgetActivity(throwEx, overspend, activityList, noBudgetActivityIds, budgetNoCondition,activityAllowBudgetIdMap); + if(!budgetNoCondition){ + this.handleNoBudgetActivity(throwEx, overspend, activityList, noBudgetActivityIds,activityAllowBudgetIdMap); + } //统计当前活动前置项占用预算 Map counterMap = new HashMap<>(); //匹配预算主要方法 @@ -211,6 +213,7 @@ public class TbsBudgetApplicationService { result.setBudgetUnMatchList(budgetUnMatchList); result.setTableData(tableVo); result.setBudgetList(budgetList); + result.setActivityList(activityList); return result; } @@ -429,6 +432,7 @@ public class TbsBudgetApplicationService { activityCostItem.setScheduleId(itemBudget.getScheduleId()); activityCostItem.setScheduleItemId(itemBudget.getScheduleItemId()); activityCostItem.setScheduleItemBudgetId(itemBudget.getId()); + activityCostItem.setScheduleItemName(itemBudget.getItemName()); isMatch = true; //记录当前费用使用考核期费用 lastAmount = lastAmount.add(goodsAmount); @@ -444,6 +448,7 @@ public class TbsBudgetApplicationService { activityCostItem.setScheduleId(itemBudget.getScheduleId()); activityCostItem.setScheduleItemId(itemBudget.getScheduleItemId()); activityCostItem.setScheduleItemBudgetId(itemBudget.getId()); + activityCostItem.setScheduleItemName(itemBudget.getItemName()); //记录当前费用使用考核期费用 BigDecimal lastAmount = counterMap.get(itemBudget.getId()); if(lastAmount==null){ @@ -458,6 +463,7 @@ public class TbsBudgetApplicationService { activityCostItem.setScheduleId(0L); activityCostItem.setScheduleItemId(0L); activityCostItem.setScheduleItemBudgetId(0L); + activityCostItem.setScheduleItemName("无"); } actMatchList.add(activityCostItem); }else { @@ -469,6 +475,7 @@ public class TbsBudgetApplicationService { activityCostItem.setScheduleId(0L); activityCostItem.setScheduleItemId(0L); activityCostItem.setScheduleItemBudgetId(0L); + activityCostItem.setScheduleItemName("无"); actUnMatchList.add(activityCostItem); } } @@ -534,31 +541,24 @@ public class TbsBudgetApplicationService { * @param overspend 超支 * @param activityList 活动列表 * @param noBudgetActivityIds 没有预算的活动id - * @param budgetNoCondition 标识,没有条件的预算 + * @param activityAllowBudgetIdMap 预算条件需包含活动条件, Map结构:活动id->满足的预算id列表 */ private void handleNoBudgetActivity(Boolean throwEx, boolean overspend, List activityList, - List noBudgetActivityIds, boolean budgetNoCondition, + List noBudgetActivityIds, Map> activityAllowBudgetIdMap) { - if(!overspend && !budgetNoCondition && throwEx && noBudgetActivityIds.size()>0){ - for (Long activityId : noBudgetActivityIds) { - for (TbsActivity activity : activityList) { + if(!overspend && throwEx && noBudgetActivityIds.size()>0){ + for (TbsActivity activity : activityList) { + for (Long activityId : noBudgetActivityIds) { if(activity.getId().equals(activityId)){ Assert.throwEx("活动["+activity.getActivityCode()+"]无可用预算"); } } - } - Assert.throwEx("活动无可用预算"); - } - if(throwEx){ - for (Long activityId : activityAllowBudgetIdMap.keySet()) { - if(activityAllowBudgetIdMap.get(activityId).size()<1){ - for (TbsActivity activity : activityList) { - if(activity.getId().equals(activityId)){ - Assert.throwEx("活动["+activity.getActivityCode()+"]无可用预算"); - } - } + List budgetIds = activityAllowBudgetIdMap.get(activity.getId()); + if(CollectionUtil.isEmpty(budgetIds)){ + Assert.throwEx("活动["+activity.getActivityCode()+"]无可用预算"); } } + Assert.throwEx("活动无可用预算"); } } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java index 96a9d551..d24eab08 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java @@ -2,10 +2,7 @@ package com.qs.serve.modules.tbs.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.sys.entity.SysUser; -import com.qs.serve.modules.tbs.entity.TbsBudget; -import com.qs.serve.modules.tbs.entity.TbsBudgetCostItem; -import com.qs.serve.modules.tbs.entity.TbsBudgetLog; -import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.entity.*; import java.math.BigDecimal; @@ -26,7 +23,7 @@ public interface TbsBudgetLogService extends IService { * @param amount * @return */ - TbsBudgetLog buildTbsBudgetLog(Integer optType, SysUser sysUser, TbsCostApply costApply, TbsBudgetCostItem item, TbsBudget budget, BigDecimal amount); + TbsBudgetLog buildTbsBudgetLog(Integer optType, SysUser sysUser, TbsCostApply costApply, TbsBudgetCostItem item, TbsBudget budget, BigDecimal amount, TbsActivity activity); } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java index 2b97105f..d31de7fc 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java @@ -26,6 +26,8 @@ public interface TbsBudgetService extends IService { */ void modify(TbsBudgetBo budgetBo); + void startBudget(Long id); + void modifyByExcel(TbsBudgetExcelBo budgetBo); //void modifyByExcelBatch(TbsBudgetExcelBatchDto budgetBo); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java index a229387f..956f48fc 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java @@ -2,14 +2,11 @@ package com.qs.serve.modules.tbs.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.modules.sys.entity.SysUser; -import com.qs.serve.modules.tbs.entity.TbsBudget; -import com.qs.serve.modules.tbs.entity.TbsBudgetCostItem; -import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.entity.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; -import com.qs.serve.modules.tbs.entity.TbsBudgetLog; import com.qs.serve.modules.tbs.service.TbsBudgetLogService; import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; @@ -27,7 +24,7 @@ public class TbsBudgetLogServiceImpl extends ServiceImpl @Override @Transactional(rollbackFor = Exception.class) public void modify(TbsBudgetBo budgetBo) { - SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); TbsBudget budget; if(budgetBo.getId()!=null){ budget = this.getById(budgetBo.getId()); @@ -104,13 +103,6 @@ public class TbsBudgetServiceImpl extends ServiceImpl scheduleItemBudgets.add(itemBudget); } scheduleItemBudgetService.saveBatch(scheduleItemBudgets); - //保存预算流水日志 - List budgetLogList = new ArrayList<>(); - for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { - TbsBudgetLog budgetLog = this.toTbsBudgetLog(sysUser, budget, scheduleItemBudget,0,scheduleItemBudget.getBudgetAmount()); - budgetLogList.add(budgetLog); - } - budgetLogService.saveBatch(budgetLogList); //设置条件 List skuIds = budgetBo.getSkuIds(); List spuIds = budgetBo.getSpuIds(); @@ -120,6 +112,27 @@ public class TbsBudgetServiceImpl extends ServiceImpl buildCondition(budget.getId(),brandIds,categoryIds,seriesIds,spuIds,skuIds); } + @Override + public void startBudget(Long id) { + TbsBudget budget = this.getById(id); + if(budget.getBudgetState().equals(1)){ + Assert.throwEx("已开启"); + } + budget.setBudgetState(1); + this.updateById(budget); + SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsScheduleItemBudget::getBudgetId,id); + List scheduleItemBudgets = scheduleItemBudgetService.list(lqw); + //保存预算流水日志 + List budgetLogList = new ArrayList<>(); + for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { + TbsBudgetLog budgetLog = this.toTbsBudgetLog(sysUser, budget, scheduleItemBudget,0,scheduleItemBudget.getBudgetAmount()); + budgetLogList.add(budgetLog); + } + budgetLogService.saveBatch(budgetLogList); + } + @NotNull @Override public TbsBudgetLog toTbsBudgetLog(SysUser sysUser, TbsBudget budget, TbsScheduleItemBudget scheduleItemBudget,Integer optType, BigDecimal amount) { @@ -139,6 +152,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl budgetLog.setSubjectId(budget.getSubjectId()); budgetLog.setSubjectCode(budget.getSubjectCode()); budgetLog.setSubjectName(budget.getSubjectName()); + budgetLog.setCenterType(budget.getCenterType()); budgetLog.setCenterId(budget.getCenterId()); budgetLog.setCenterCode(budget.getCenterCode()); budgetLog.setCenterName(budget.getCenterName()); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index 80151356..8e021a6c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -13,19 +13,13 @@ import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsSeeYonConst; -import com.qs.serve.modules.tbs.entity.TbsBudget; -import com.qs.serve.modules.tbs.entity.TbsBudgetCostItem; -import com.qs.serve.modules.tbs.entity.TbsBudgetLog; +import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; -import com.qs.serve.modules.tbs.service.TbsBudgetApplicationService; -import com.qs.serve.modules.tbs.service.TbsBudgetCostItemService; -import com.qs.serve.modules.tbs.service.TbsBudgetLogService; +import com.qs.serve.modules.tbs.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; -import com.qs.serve.modules.tbs.entity.TbsCostApply; -import com.qs.serve.modules.tbs.service.TbsCostApplyService; import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; import org.springframework.transaction.annotation.Transactional; @@ -46,7 +40,6 @@ import java.util.stream.Collectors; @AllArgsConstructor public class TbsCostApplyServiceImpl extends ServiceImpl implements TbsCostApplyService { - private BmsSupplierService supplierService; private TbsBudgetApplicationService budgetApplicationService; private TbsBudgetCostItemService budgetCostItemService; private TbsBudgetLogService budgetLogService; @@ -61,7 +54,6 @@ public class TbsCostApplyServiceImpl extends ServiceImpl allBudgetItem) { + private void saveBudgetLog(TbsBudgetCostResult result, SysUser sysUser, TbsCostApply costApply, List allBudgetItem, List activityList) { List budgetLogList = new ArrayList<>(); List budgetList = result.getBudgetList(); for (TbsBudgetCostItem item : allBudgetItem) { @@ -130,7 +123,13 @@ public class TbsCostApplyServiceImpl extends ServiceImpl centerGoodsList = activityCenterGoodsService.listByActivityId(activityId); LambdaQueryWrapper itemLqw = new LambdaQueryWrapper<>(); itemLqw.eq(TbsBudgetCostItem::getActivityId,activityId); @@ -138,7 +141,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl