From 25d5409461e11e9755c211351b504790d3bc874e Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 6 Jan 2023 09:36:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E6=97=A5=E5=BF=97-=E8=B4=B9?= =?UTF-8?q?=E7=94=A8=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TbsCostApplyController.java | 5 ++ .../tbs/service/TbsBudgetLogService.java | 18 ++++++++ .../service/impl/TbsBudgetLogServiceImpl.java | 46 +++++++++++++++++++ .../service/impl/TbsCostApplyServiceImpl.java | 42 +++-------------- .../impl/VtbVerificationServiceImpl.java | 37 ++++++++++++++- 5 files changed, 111 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index 6c7b4c88..026c87c7 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -60,6 +60,7 @@ public class TbsCostApplyController { private TbsCostApplyService tbsCostApplyService; private TbsActivityService tbsActivityService; + private TbsBudgetLogService tbsBudgetLogService; private BmsSupplierService bmsSupplierService; private SysUserService sysUserService; private SeeYonService seeYonService; @@ -398,6 +399,10 @@ public class TbsCostApplyController { apply.setChargeState(TbsCostApplyState.State_5_stop.getCode()); tbsCostApplyService.updateById(apply); tbsCostApplyService.releaseCost(costApply.getId(), 1); + //移除日志 + LambdaQueryWrapper logLqw = new LambdaQueryWrapper<>(); + logLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId()); + tbsBudgetLogService.remove(logLqw); return R.ok(); } }else if ("next".equals(flag)){ 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 2b3bbe67..96a9d551 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 @@ -1,7 +1,13 @@ 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 java.math.BigDecimal; /** * 预算日志 服务接口 @@ -10,5 +16,17 @@ import com.qs.serve.modules.tbs.entity.TbsBudgetLog; */ public interface TbsBudgetLogService extends IService { + /** + * 建立日志(申请和释放时通用方法) + * @param optType + * @param sysUser + * @param costApply + * @param item + * @param budget + * @param amount + * @return + */ + TbsBudgetLog buildTbsBudgetLog(Integer optType, SysUser sysUser, TbsCostApply costApply, TbsBudgetCostItem item, TbsBudget budget, BigDecimal amount); + } 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 d8089009..a229387f 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 @@ -1,13 +1,20 @@ 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 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; +import java.math.BigDecimal; + /** * 预算日志 服务实现类 * @author YenHex @@ -18,5 +25,44 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; @AllArgsConstructor public class TbsBudgetLogServiceImpl extends ServiceImpl implements TbsBudgetLogService { + @NotNull + @Override + public TbsBudgetLog buildTbsBudgetLog(Integer optType,SysUser sysUser, TbsCostApply costApply, TbsBudgetCostItem item, TbsBudget budget, BigDecimal amount) { + TbsBudgetLog budgetLog = new TbsBudgetLog(); + budgetLog.setBudgetId(item.getBudgetId()); + budgetLog.setBudgetCode(budget.getBudgetCode()); + budgetLog.setOptType(optType); + budgetLog.setOptUserId(sysUser.getId()); + budgetLog.setOptUserCode(sysUser.getCode()); + budgetLog.setOptUserName(sysUser.getName()); + budgetLog.setAmount(amount); + budgetLog.setScheduleId(item.getScheduleId()); + budgetLog.setScheduleItemId(item.getScheduleItemId()); + //budgetLog.setItemName(); + budgetLog.setStartDate(item.getActStartDate().atStartOfDay()); + budgetLog.setEndDate(item.getActEndDate().atStartOfDay()); + budgetLog.setSubjectId(item.getSubjectId()); + budgetLog.setSubjectCode(item.getSubjectCode()); + budgetLog.setSubjectName(item.getSubjectName()); + budgetLog.setCenterId(item.getCenterId()); + budgetLog.setCenterCode(item.getCenterCode()); + budgetLog.setCenterName(item.getCenterName()); + budgetLog.setSupplierId(item.getSupplierId()); + budgetLog.setSupplierCode(item.getSupplierCode()); + budgetLog.setSupplierName(item.getSupplierName()); + budgetLog.setActivityId(item.getActivityId()); + budgetLog.setActivityCode(item.getActivityCode()); + budgetLog.setCostApplyId(costApply.getId()); + budgetLog.setCostApplyCode(costApply.getCode()); + budgetLog.setCostApplyTheme(costApply.getChargeTheme()); + budgetLog.setTargetType(item.getTargetType()); + budgetLog.setTargetId(item.getTargetId()); + budgetLog.setTargetCode(item.getTargetCode()); + budgetLog.setTargetName(item.getTargetName()); + budgetLog.setTargetLevelPathIds(item.getTargetLevelPathIds()); + budgetLog.setTargetLevelPathNames(item.getTargetLevelPathNames()); + return budgetLog; + } + } 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 5b179684..80151356 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 @@ -22,6 +22,7 @@ import com.qs.serve.modules.tbs.service.TbsBudgetCostItemService; import com.qs.serve.modules.tbs.service.TbsBudgetLogService; 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; @@ -101,18 +102,17 @@ public class TbsCostApplyServiceImpl extends ServiceImpl allBudgetItem) { + private void saveBudgetLog(TbsBudgetCostResult result, SysUser sysUser, TbsCostApply costApply, List allBudgetItem) { List budgetLogList = new ArrayList<>(); List budgetList = result.getBudgetList(); for (TbsBudgetCostItem item : allBudgetItem) { @@ -130,39 +130,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 8048d00a..00ec9f53 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -61,7 +61,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl centerGoodsList = activityCenterGoodsService.listByActivityId(activityId); + LambdaQueryWrapper itemLqw = new LambdaQueryWrapper<>(); + itemLqw.eq(TbsBudgetCostItem::getActivityId,activityId); + List budgetCostItemList = budgetCostItemService.list(itemLqw); + List budgetIds = budgetCostItemList.stream().map(TbsBudgetCostItem::getBudgetId).collect(Collectors.toList()); + List budgetLIst = budgetService.listByIds(budgetIds); + List budgetLogList = new ArrayList<>(); + for (TbsActivityCenterGoods centerGoods : centerGoodsList) { + if(centerGoods.getCenterGoodsAmount().compareTo(centerGoods.getUsedAmount())<1){ + continue; + } + TbsBudgetCostItem currCostItem = null; + TbsBudget currentBudget = null; + for (TbsBudgetCostItem costItem : budgetCostItemList) { + if(centerGoods.getId().equals(costItem.getCenterGoodItemId())){ + currCostItem = costItem; + break; + } + } + for (TbsBudget budget : budgetLIst) { + if (currCostItem.getBudgetId().equals(budget.getId())){ + currentBudget = budget; + } + } + BigDecimal amount = centerGoods.getCenterGoodsAmount().subtract(centerGoods.getUsedAmount()); + TbsBudgetLog budgetLog = budgetLogService.buildTbsBudgetLog(4,sysUser,costApply,currCostItem,currentBudget,amount); + budgetLogList.add(budgetLog); + } + if(CollectionUtil.isNotEmpty(budgetLogList)){ + budgetLogService.saveBatch(budgetLogList); + } + } @Override