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 7011afc7..35a991d9 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 @@ -8,26 +8,23 @@ import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.*; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.tbs.common.TbsGoodsType; -import com.qs.serve.modules.tbs.entity.TbsBudgetCondition; -import com.qs.serve.modules.tbs.entity.TbsBudgetCostItem; -import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; +import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.bo.*; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; -import com.qs.serve.modules.tbs.service.TbsBudgetConditionService; -import com.qs.serve.modules.tbs.service.TbsBudgetCostItemService; -import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; +import com.qs.serve.modules.tbs.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import com.qs.serve.modules.tbs.entity.so.TbsBudgetSo; -import com.qs.serve.modules.tbs.entity.TbsBudget; -import com.qs.serve.modules.tbs.service.TbsBudgetService; import javax.validation.Valid; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -44,10 +41,12 @@ import java.util.stream.Collectors; @RequestMapping("tbs/budget") public class TbsBudgetController { - private TbsBudgetService tbsBudgetService; - private TbsBudgetMapper tbsBudgetMapper; - private TbsBudgetCostItemService tbsBudgetCostItemService; - private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; + private final TbsBudgetService tbsBudgetService; + private final TbsBudgetMapper tbsBudgetMapper; + private final TbsBudgetCostItemService tbsBudgetCostItemService; + private final TbsBudgetLogService tbsBudgetLogService; + private final TbsScheduleItemBudgetService tbsScheduleItemBudgetService; + private final SysUserService sysUserService; /** * 列表 @@ -144,10 +143,25 @@ public class TbsBudgetController { @SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.UPDATE) @PreAuthorize("hasRole('tbs:budget:update')") public R updateById(@RequestBody @Valid TbsScheduleItemBudgetBo param){ + SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); + TbsScheduleItemBudget scheduleItemBudget = tbsScheduleItemBudgetService.getById(param.getId()); + TbsBudget budget = tbsBudgetService.getById(scheduleItemBudget.getBudgetId()); TbsScheduleItemBudget itemBudget = new TbsScheduleItemBudget(); itemBudget.setId(param.getId()); itemBudget.setBudgetAmount(param.getBudgetAmount()); tbsScheduleItemBudgetService.updateById(itemBudget); + //0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放 + Integer optType; + BigDecimal amount = null; + if(scheduleItemBudget.getBudgetAmount().compareTo(param.getBudgetAmount())>0){ + amount = scheduleItemBudget.getBudgetAmount().subtract(param.getBudgetAmount()).negate(); + optType = 3; + }else { + amount = param.getBudgetAmount().subtract(scheduleItemBudget.getBudgetAmount()); + optType = 2; + } + TbsBudgetLog budgetLog = tbsBudgetService.toTbsBudgetLog(sysUser,budget,scheduleItemBudget,optType, amount); + tbsBudgetLogService.save(budgetLog); return R.ok(); } 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 bef37e31..2b97105f 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 @@ -1,12 +1,16 @@ 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.TbsBudgetLog; +import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo; import com.qs.serve.modules.tbs.entity.bo.TbsBudgetExcelBatchDto; import com.qs.serve.modules.tbs.entity.bo.TbsBudgetExcelBo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; +import java.math.BigDecimal; import java.util.List; /** @@ -32,5 +36,7 @@ public interface TbsBudgetService extends IService { TbsBudgetVo toVoEntity(TbsBudget budget); + TbsBudgetLog toTbsBudgetLog(SysUser sysUser, TbsBudget budget, TbsScheduleItemBudget scheduleItemBudget, Integer optType, BigDecimal amount); + } 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 34216239..547e6163 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 @@ -28,6 +28,7 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; 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 org.springframework.transaction.annotation.Transactional; @@ -106,25 +107,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl //保存预算流水日志 List budgetLogList = new ArrayList<>(); for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { - TbsBudgetLog budgetLog = new TbsBudgetLog(); - budgetLog.setBudgetId(budget.getId()); - budgetLog.setBudgetCode(budget.getBudgetCode()); - budgetLog.setOptType(0); - budgetLog.setOptUserId(sysUser.getId()); - budgetLog.setOptUserCode(sysUser.getCode()); - budgetLog.setOptUserName(sysUser.getName()); - budgetLog.setAmount(scheduleItemBudget.getBudgetAmount()); - budgetLog.setScheduleId(scheduleItemBudget.getScheduleId()); - budgetLog.setScheduleItemId(scheduleItemBudget.getScheduleItemId()); - budgetLog.setItemName(scheduleItemBudget.getItemName()); - budgetLog.setStartDate(scheduleItemBudget.getStartDate()); - budgetLog.setEndDate(scheduleItemBudget.getEndDate()); - budgetLog.setSubjectId(budget.getSubjectId()); - budgetLog.setSubjectCode(budget.getSubjectCode()); - budgetLog.setSubjectName(budget.getSubjectName()); - budgetLog.setCenterId(budget.getCenterId()); - budgetLog.setCenterCode(budget.getCenterCode()); - budgetLog.setCenterName(budget.getCenterName()); + TbsBudgetLog budgetLog = this.toTbsBudgetLog(sysUser, budget, scheduleItemBudget,0,scheduleItemBudget.getBudgetAmount()); budgetLogList.add(budgetLog); } budgetLogService.saveBatch(budgetLogList); @@ -137,6 +120,31 @@ public class TbsBudgetServiceImpl extends ServiceImpl buildCondition(budget.getId(),brandIds,categoryIds,seriesIds,spuIds,skuIds); } + @NotNull + @Override + public TbsBudgetLog toTbsBudgetLog(SysUser sysUser, TbsBudget budget, TbsScheduleItemBudget scheduleItemBudget,Integer optType, BigDecimal amount) { + TbsBudgetLog budgetLog = new TbsBudgetLog(); + budgetLog.setBudgetId(budget.getId()); + budgetLog.setBudgetCode(budget.getBudgetCode()); + budgetLog.setOptType(optType); + budgetLog.setOptUserId(sysUser.getId()); + budgetLog.setOptUserCode(sysUser.getCode()); + budgetLog.setOptUserName(sysUser.getName()); + budgetLog.setAmount(amount); + budgetLog.setScheduleId(scheduleItemBudget.getScheduleId()); + budgetLog.setScheduleItemId(scheduleItemBudget.getScheduleItemId()); + budgetLog.setItemName(scheduleItemBudget.getItemName()); + budgetLog.setStartDate(scheduleItemBudget.getStartDate()); + budgetLog.setEndDate(scheduleItemBudget.getEndDate()); + budgetLog.setSubjectId(budget.getSubjectId()); + budgetLog.setSubjectCode(budget.getSubjectCode()); + budgetLog.setSubjectName(budget.getSubjectName()); + budgetLog.setCenterId(budget.getCenterId()); + budgetLog.setCenterCode(budget.getCenterCode()); + budgetLog.setCenterName(budget.getCenterName()); + return budgetLog; + } + @Override public TbsBudget getByCode(String code) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); 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 92be5fb9..5b179684 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 @@ -101,6 +101,18 @@ public class TbsCostApplyServiceImpl extends ServiceImpl allBudgetItem) { List budgetLogList = new ArrayList<>(); List budgetList = result.getBudgetList(); for (TbsBudgetCostItem item : allBudgetItem) { @@ -125,7 +137,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl