Browse Source

导出客户费用金额

contract
15989082884@163.com 2 years ago
parent
commit
354f3ebb5f
  1. 12
      src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java
  2. 3
      src/main/java/com/qs/serve/controller/AdminPortalController.java
  3. 32
      src/main/java/com/qs/serve/modules/excel/service/impl/DateCheckApplyServiceImpl.java
  4. 9
      src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java
  5. 2
      src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java
  6. 12
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  7. 13
      src/main/java/com/qs/serve/modules/tbs/entity/TbsScheduleItemBudget.java
  8. 1
      src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java
  9. 1
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java
  10. 30
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

12
src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java

@ -3,6 +3,10 @@ package com.qs.serve.common.model.enums;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
* @author YenHex * @author YenHex
* @since 2023/1/30 * @since 2023/1/30
@ -70,4 +74,12 @@ public enum BudgetLogOptFlag {
*/ */
private boolean addBudget; private boolean addBudget;
private final static List<Integer> finalBudgetOptFlag = new ArrayList<>(Arrays.asList(0, 2, 3));
/**
* 预算规划状态023新增调增调减
*/
public static List<Integer> getFinalBudgetOptFlag(){
return finalBudgetOptFlag;
}
} }

3
src/main/java/com/qs/serve/controller/AdminPortalController.java

@ -95,6 +95,7 @@ public class AdminPortalController {
// dev remove // dev remove
if(!StringUtils.hasText(syId)){ if(!StringUtils.hasText(syId)){
response.sendRedirect(projectProperties.getWebUrl()+"/#/login?"); response.sendRedirect(projectProperties.getWebUrl()+"/#/login?");
return;
} }
String key = param.getKey(); String key = param.getKey();
@ -105,6 +106,7 @@ public class AdminPortalController {
if(affairStateResult.getState()==SyAffairState.error){ if(affairStateResult.getState()==SyAffairState.error){
response.sendRedirect(projectProperties.getWebUrl()+"/#/login?"); response.sendRedirect(projectProperties.getWebUrl()+"/#/login?");
return;
} }
//通过类型和key获取审批id //通过类型和key获取审批id
@ -116,6 +118,7 @@ public class AdminPortalController {
String token = sysUserLoginService.loginBySyUserId(syId); String token = sysUserLoginService.loginBySyUserId(syId);
if(token==null){ if(token==null){
response.sendRedirect(projectProperties.getWebUrl()+"/#/login?"); response.sendRedirect(projectProperties.getWebUrl()+"/#/login?");
return;
}else { }else {
String jumpUrl = "404"; String jumpUrl = "404";
SyAffairState affairState = affairStateResult.getState(); SyAffairState affairState = affairStateResult.getState();

32
src/main/java/com/qs/serve/modules/excel/service/impl/DateCheckApplyServiceImpl.java

@ -14,6 +14,7 @@ import com.qs.serve.modules.excel.service.DateCheckApplyService;
import com.qs.serve.modules.pay.common.PaymentType; import com.qs.serve.modules.pay.common.PaymentType;
import com.qs.serve.modules.pay.entity.PayPaymentItem; import com.qs.serve.modules.pay.entity.PayPaymentItem;
import com.qs.serve.modules.pay.mapper.PayPaymentItemMapper; import com.qs.serve.modules.pay.mapper.PayPaymentItemMapper;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
@ -66,13 +67,18 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService {
detailInfo.setStartDate(param.getStartDate()); detailInfo.setStartDate(param.getStartDate());
detailInfo.setEndDate(param.getEndDate()); detailInfo.setEndDate(param.getEndDate());
LambdaQueryWrapper<TbsActivity> actLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsCostApply> costApplyLambdaQueryWrapper = new LambdaQueryWrapper<>();
actLqw.eq(TbsActivity::getSupplierId,supplierId); costApplyLambdaQueryWrapper.eq(TbsCostApply::getSupplierId,supplierId);
actLqw.eq(TbsActivity::getCostPassFlag,1);
if(param.getStartDate()!=null){ if(param.getStartDate()!=null){
actLqw.ge(TbsActivity::getCostPassTime,param.getEndDate()); costApplyLambdaQueryWrapper.ge(TbsCostApply::getSubmitTime,param.getStartDate());
} }
actLqw.le(TbsActivity::getCostPassTime,param.getEndDate().atTime(23,59,59)); costApplyLambdaQueryWrapper.le(TbsCostApply::getSubmitTime,param.getEndDate().atTime(23,59,59));
costApplyLambdaQueryWrapper.in(TbsCostApply::getChargeState,TbsCostApplyState.getPassCode());
List<TbsCostApply> costApplyList = costApplyMapper.selectList(costApplyLambdaQueryWrapper);
LambdaQueryWrapper<TbsActivity> actLqw = new LambdaQueryWrapper<>();
actLqw.in(TbsActivity::getCostApplyId,costApplyList.stream().map(a->a.getId()).collect(Collectors.toList()));
//暂未定义时间区间 //暂未定义时间区间
List<TbsActivity> activityList = activityMapper.selectList(actLqw); List<TbsActivity> activityList = activityMapper.selectList(actLqw);
List<DataCheckApplyDetailItem> detailItemList = new ArrayList<>(); List<DataCheckApplyDetailItem> detailItemList = new ArrayList<>();
@ -184,8 +190,20 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService {
mainInfo.setContactUser(contacts.getContactsName()); mainInfo.setContactUser(contacts.getContactsName());
mainInfo.setContactMobile(contacts.getContactsNumber()); mainInfo.setContactMobile(contacts.getContactsNumber());
} }
mainInfo.setStartDate(null); mainInfo.setStartDate(param.getStartDate());
mainInfo.setEndDate(LocalDate.now()); mainInfo.setEndDate(param.getEndDate());
LambdaQueryWrapper<TbsCostApply> costApplyLambdaQueryWrapper = new LambdaQueryWrapper<>();
costApplyLambdaQueryWrapper.eq(TbsCostApply::getSupplierId,supplierId);
if(param.getStartDate()!=null){
costApplyLambdaQueryWrapper.ge(TbsCostApply::getSubmitTime,param.getStartDate());
}
costApplyLambdaQueryWrapper.le(TbsCostApply::getSubmitTime,param.getEndDate().atTime(23,59,59));
costApplyLambdaQueryWrapper.in(TbsCostApply::getChargeState,TbsCostApplyState.getPassCode());
List<TbsCostApply> costApplyList = costApplyMapper.selectList(costApplyLambdaQueryWrapper);
LambdaQueryWrapper<TbsActivity> actLqw = new LambdaQueryWrapper<>();
actLqw.in(TbsActivity::getCostApplyId,costApplyList.stream().map(a->a.getId()).collect(Collectors.toList()));
//申请总金额 //申请总金额
BigDecimal totalAmount = activityMapper.sumSupplierActivityCost(supplierId); BigDecimal totalAmount = activityMapper.sumSupplierActivityCost(supplierId);

9
src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java

@ -3,6 +3,10 @@ package com.qs.serve.modules.tbs.common;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
* @author YenHex * @author YenHex
* @since 2022/11/28 * @since 2022/11/28
@ -21,4 +25,9 @@ public enum TbsCostApplyState {
private Integer code; private Integer code;
private final static List<Integer> passCodes = new ArrayList<>(Arrays.asList(2, 3));
public static List<Integer> getPassCode(){
return passCodes;
}
} }

2
src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java

@ -123,7 +123,7 @@ public class TbsBudgetLogBuildUtil {
budgetLog.setAmount(buildAmount(amount,optType)); budgetLog.setAmount(buildAmount(amount,optType));
budgetLog.setScheduleId(item.getScheduleId()); budgetLog.setScheduleId(item.getScheduleId());
budgetLog.setScheduleItemId(item.getScheduleItemId()); budgetLog.setScheduleItemId(item.getScheduleItemId());
budgetLog.setScheduleItemBudgetId(item.getId()); budgetLog.setScheduleItemBudgetId(item.getScheduleItemBudgetId());
budgetLog.setItemName(item.getScheduleItemName()); budgetLog.setItemName(item.getScheduleItemName());
budgetLog.setStartDate(policyItem.getPolicyStartDate().atStartOfDay()); budgetLog.setStartDate(policyItem.getPolicyStartDate().atStartOfDay());
budgetLog.setEndDate(policyItem.getPolicyEndDate().atStartOfDay()); budgetLog.setEndDate(policyItem.getPolicyEndDate().atStartOfDay());

12
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java

@ -280,5 +280,17 @@ public class TbsBudgetController {
return R.isTrue(result); return R.isTrue(result);
} }
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getExcelDataById/{id}")
@SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.QUERY)
@PreAuthorize("hasRole('tbs:budget:query')")
public R<TbsBudgetVo> getExcelDataById(@PathVariable("id") String id){
TbsBudget budget = tbsBudgetService.getById(id);
return R.ok(tbsBudgetService.getEntityForExcel(budget));
}
} }

13
src/main/java/com/qs/serve/modules/tbs/entity/TbsScheduleItemBudget.java

@ -4,6 +4,7 @@ import java.time.LocalDate;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -104,6 +105,18 @@ public class TbsScheduleItemBudget implements Serializable {
@JsonProperty @JsonProperty
private String delFlag; private String delFlag;
@TableField(exist = false)
private List<TbsBudgetLog> budgetLogList;
@TableField(exist = false)
private BigDecimal finalBudgetAmount;
@TableField(exist = false)
private BigDecimal usedBudgetAmount;
@TableField(exist = false)
private BigDecimal unUsedBudgetAmount;
public BigDecimal compareTargetExpenseRate(){ public BigDecimal compareTargetExpenseRate(){
if(budgetAmount!=null&&preDispatchAmount!=null&&preDispatchAmount.compareTo(BigDecimal.ZERO)!=0){ if(budgetAmount!=null&&preDispatchAmount!=null&&preDispatchAmount.compareTo(BigDecimal.ZERO)!=0){

1
src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java

@ -74,6 +74,7 @@ public class TbsBudgetVo implements Serializable {
private List<?> skuConditions; private List<?> skuConditions;
private List<?> spuConditions; private List<?> spuConditions;
private List<?> scheduleItem; private List<?> scheduleItem;
private List<TbsScheduleItemBudget> scheduleItemBudgets;
} }

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

@ -39,5 +39,6 @@ public interface TbsBudgetService extends IService<TbsBudget> {
TbsBudgetVo toVoEntity(TbsBudget budget); TbsBudgetVo toVoEntity(TbsBudget budget);
TbsBudgetVo getEntityForExcel(TbsBudget budget);
} }

30
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -663,5 +663,35 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
this.updateById(tbsBudget); this.updateById(tbsBudget);
} }
@Override
public TbsBudgetVo getEntityForExcel(TbsBudget budget){
TbsBudgetVo budgetVo = CopierUtil.copy(budget,new TbsBudgetVo());
LambdaQueryWrapper<TbsScheduleItemBudget> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsScheduleItemBudget::getBudgetId,budget.getId());
List<TbsScheduleItemBudget> tbsScheduleItemBudgetList = tbsScheduleItemBudgetService.list(lqw);
tbsScheduleItemBudgetList.forEach(a->{
LambdaQueryWrapper<TbsBudgetLog> lqwLog = new LambdaQueryWrapper<>();
lqwLog.eq(TbsBudgetLog::getScheduleItemBudgetId,a.getId());
lqwLog.eq(TbsBudgetLog::getBudgetId,budget.getId());
List<TbsBudgetLog> tbsBudgetLogList = budgetLogService.list(lqwLog);
a.setBudgetLogList(tbsBudgetLogList);
BigDecimal finalBudgetAmount = tbsBudgetLogList.stream().filter(b->BudgetLogOptFlag.getFinalBudgetOptFlag().contains(b.getOptType())).map(TbsBudgetLog::getAmount)
.reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal usedBudgetAmount = tbsBudgetLogList.stream().filter(b->!BudgetLogOptFlag.getFinalBudgetOptFlag().contains(b.getOptType())).map(TbsBudgetLog::getAmount)
.reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal unUsedBudgetAmount = tbsBudgetLogList.stream().map(TbsBudgetLog::getAmount)
.reduce(BigDecimal.ZERO,BigDecimal::add);
a.setFinalBudgetAmount(finalBudgetAmount);
a.setUnUsedBudgetAmount(unUsedBudgetAmount);
a.setUsedBudgetAmount(usedBudgetAmount);
});
budgetVo.setScheduleItemBudgets(tbsScheduleItemBudgetList);
return budgetVo;
}
} }

Loading…
Cancel
Save