Browse Source

预算日志-调增调减日志

mssql
Yen 3 years ago
parent
commit
d4d4cddc7b
  1. 38
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  2. 6
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java
  3. 46
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  4. 14
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

38
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.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*; 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.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.TbsBudgetCondition; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.TbsBudgetCostItem;
import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget;
import com.qs.serve.modules.tbs.entity.bo.*; import com.qs.serve.modules.tbs.entity.bo.*;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.service.TbsBudgetConditionService; import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.tbs.service.TbsBudgetCostItemService;
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.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.so.TbsBudgetSo; 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 javax.validation.Valid;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -44,10 +41,12 @@ import java.util.stream.Collectors;
@RequestMapping("tbs/budget") @RequestMapping("tbs/budget")
public class TbsBudgetController { public class TbsBudgetController {
private TbsBudgetService tbsBudgetService; private final TbsBudgetService tbsBudgetService;
private TbsBudgetMapper tbsBudgetMapper; private final TbsBudgetMapper tbsBudgetMapper;
private TbsBudgetCostItemService tbsBudgetCostItemService; private final TbsBudgetCostItemService tbsBudgetCostItemService;
private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; 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) @SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:budget:update')") @PreAuthorize("hasRole('tbs:budget:update')")
public R<?> updateById(@RequestBody @Valid TbsScheduleItemBudgetBo param){ 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(); TbsScheduleItemBudget itemBudget = new TbsScheduleItemBudget();
itemBudget.setId(param.getId()); itemBudget.setId(param.getId());
itemBudget.setBudgetAmount(param.getBudgetAmount()); itemBudget.setBudgetAmount(param.getBudgetAmount());
tbsScheduleItemBudgetService.updateById(itemBudget); 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(); return R.ok();
} }

6
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java

@ -1,12 +1,16 @@
package com.qs.serve.modules.tbs.service; package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService; 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.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.TbsBudgetBo;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetExcelBatchDto; 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.bo.TbsBudgetExcelBo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@ -32,5 +36,7 @@ public interface TbsBudgetService extends IService<TbsBudget> {
TbsBudgetVo toVoEntity(TbsBudget budget); TbsBudgetVo toVoEntity(TbsBudget budget);
TbsBudgetLog toTbsBudgetLog(SysUser sysUser, TbsBudget budget, TbsScheduleItemBudget scheduleItemBudget, Integer optType, BigDecimal amount);
} }

46
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 com.qs.serve.modules.tbs.service.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -106,25 +107,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
//保存预算流水日志 //保存预算流水日志
List<TbsBudgetLog> budgetLogList = new ArrayList<>(); List<TbsBudgetLog> budgetLogList = new ArrayList<>();
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) {
TbsBudgetLog budgetLog = new TbsBudgetLog(); TbsBudgetLog budgetLog = this.toTbsBudgetLog(sysUser, budget, scheduleItemBudget,0,scheduleItemBudget.getBudgetAmount());
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());
budgetLogList.add(budgetLog); budgetLogList.add(budgetLog);
} }
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
@ -137,6 +120,31 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
buildCondition(budget.getId(),brandIds,categoryIds,seriesIds,spuIds,skuIds); 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 @Override
public TbsBudget getByCode(String code) { public TbsBudget getByCode(String code) {
LambdaQueryWrapper<TbsBudget> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsBudget> lqw = new LambdaQueryWrapper<>();

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

@ -101,6 +101,18 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
allBudgetItem.addAll(result.getBudgetUnMatchList()); allBudgetItem.addAll(result.getBudgetUnMatchList());
budgetCostItemService.saveBatch(allBudgetItem); budgetCostItemService.saveBatch(allBudgetItem);
//保存预算使用日志 //保存预算使用日志
saveBudgetLog(supplier, result, sysUser, costApply, allBudgetItem);
}
/**
* 保存预算使用日志
* @param supplier
* @param result
* @param sysUser
* @param costApply
* @param allBudgetItem
*/
private void saveBudgetLog(BmsSupplier supplier, TbsBudgetCostResult result, SysUser sysUser, TbsCostApply costApply, List<TbsBudgetCostItem> allBudgetItem) {
List<TbsBudgetLog> budgetLogList = new ArrayList<>(); List<TbsBudgetLog> budgetLogList = new ArrayList<>();
List<TbsBudget> budgetList = result.getBudgetList(); List<TbsBudget> budgetList = result.getBudgetList();
for (TbsBudgetCostItem item : allBudgetItem) { for (TbsBudgetCostItem item : allBudgetItem) {
@ -125,7 +137,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
budgetLog.setOptUserId(sysUser.getId()); budgetLog.setOptUserId(sysUser.getId());
budgetLog.setOptUserCode(sysUser.getCode()); budgetLog.setOptUserCode(sysUser.getCode());
budgetLog.setOptUserName(sysUser.getName()); budgetLog.setOptUserName(sysUser.getName());
budgetLog.setAmount(item.getCenterGoodsAmount()); budgetLog.setAmount(item.getCenterGoodsAmount().negate());
budgetLog.setScheduleId(item.getScheduleId()); budgetLog.setScheduleId(item.getScheduleId());
budgetLog.setScheduleItemId(item.getScheduleItemId()); budgetLog.setScheduleItemId(item.getScheduleItemId());
//budgetLog.setItemName(); //budgetLog.setItemName();

Loading…
Cancel
Save