From 354f3ebb5f1b252f3df10899b694db143f1f9210 Mon Sep 17 00:00:00 2001 From: "15989082884@163.com" <15989082884@163.com> Date: Thu, 13 Jul 2023 16:00:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=AE=A2=E6=88=B7=E8=B4=B9?= =?UTF-8?q?=E7=94=A8=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/model/enums/BudgetLogOptFlag.java | 12 +++++++ .../controller/AdminPortalController.java | 3 ++ .../impl/DateCheckApplyServiceImpl.java | 32 +++++++++++++++---- .../modules/tbs/common/TbsCostApplyState.java | 9 ++++++ .../common/util/TbsBudgetLogBuildUtil.java | 2 +- .../tbs/controller/TbsBudgetController.java | 12 +++++++ .../tbs/entity/TbsScheduleItemBudget.java | 13 ++++++++ .../modules/tbs/entity/vo/TbsBudgetVo.java | 1 + .../modules/tbs/service/TbsBudgetService.java | 1 + .../service/impl/TbsBudgetServiceImpl.java | 30 +++++++++++++++++ 10 files changed, 107 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java b/src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java index 9cdb271b..f7f1e2cf 100644 --- a/src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java +++ b/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.Getter; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * @author YenHex * @since 2023/1/30 @@ -70,4 +74,12 @@ public enum BudgetLogOptFlag { */ private boolean addBudget; + private final static List finalBudgetOptFlag = new ArrayList<>(Arrays.asList(0, 2, 3)); + + /** + * 预算规划,状态0,2,3,新增、调增、调减 + */ + public static List getFinalBudgetOptFlag(){ + return finalBudgetOptFlag; + } } diff --git a/src/main/java/com/qs/serve/controller/AdminPortalController.java b/src/main/java/com/qs/serve/controller/AdminPortalController.java index b4314b21..ef5759e1 100644 --- a/src/main/java/com/qs/serve/controller/AdminPortalController.java +++ b/src/main/java/com/qs/serve/controller/AdminPortalController.java @@ -95,6 +95,7 @@ public class AdminPortalController { // dev remove if(!StringUtils.hasText(syId)){ response.sendRedirect(projectProperties.getWebUrl()+"/#/login?"); + return; } String key = param.getKey(); @@ -105,6 +106,7 @@ public class AdminPortalController { if(affairStateResult.getState()==SyAffairState.error){ response.sendRedirect(projectProperties.getWebUrl()+"/#/login?"); + return; } //通过类型和key获取审批id @@ -116,6 +118,7 @@ public class AdminPortalController { String token = sysUserLoginService.loginBySyUserId(syId); if(token==null){ response.sendRedirect(projectProperties.getWebUrl()+"/#/login?"); + return; }else { String jumpUrl = "404"; SyAffairState affairState = affairStateResult.getState(); diff --git a/src/main/java/com/qs/serve/modules/excel/service/impl/DateCheckApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/excel/service/impl/DateCheckApplyServiceImpl.java index c0c55f22..68475c0b 100644 --- a/src/main/java/com/qs/serve/modules/excel/service/impl/DateCheckApplyServiceImpl.java +++ b/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.entity.PayPaymentItem; 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.TbsCostApply; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; @@ -66,13 +67,18 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { detailInfo.setStartDate(param.getStartDate()); detailInfo.setEndDate(param.getEndDate()); - LambdaQueryWrapper actLqw = new LambdaQueryWrapper<>(); - actLqw.eq(TbsActivity::getSupplierId,supplierId); - actLqw.eq(TbsActivity::getCostPassFlag,1); + LambdaQueryWrapper costApplyLambdaQueryWrapper = new LambdaQueryWrapper<>(); + costApplyLambdaQueryWrapper.eq(TbsCostApply::getSupplierId,supplierId); 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 costApplyList = costApplyMapper.selectList(costApplyLambdaQueryWrapper); + + LambdaQueryWrapper actLqw = new LambdaQueryWrapper<>(); + actLqw.in(TbsActivity::getCostApplyId,costApplyList.stream().map(a->a.getId()).collect(Collectors.toList())); + //暂未定义时间区间 List activityList = activityMapper.selectList(actLqw); List detailItemList = new ArrayList<>(); @@ -184,8 +190,20 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { mainInfo.setContactUser(contacts.getContactsName()); mainInfo.setContactMobile(contacts.getContactsNumber()); } - mainInfo.setStartDate(null); - mainInfo.setEndDate(LocalDate.now()); + mainInfo.setStartDate(param.getStartDate()); + mainInfo.setEndDate(param.getEndDate()); + + LambdaQueryWrapper 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 costApplyList = costApplyMapper.selectList(costApplyLambdaQueryWrapper); + + LambdaQueryWrapper actLqw = new LambdaQueryWrapper<>(); + actLqw.in(TbsActivity::getCostApplyId,costApplyList.stream().map(a->a.getId()).collect(Collectors.toList())); //申请总金额 BigDecimal totalAmount = activityMapper.sumSupplierActivityCost(supplierId); diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java index 85b04805..b848060b 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java +++ b/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.Getter; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * @author YenHex * @since 2022/11/28 @@ -21,4 +25,9 @@ public enum TbsCostApplyState { private Integer code; + private final static List passCodes = new ArrayList<>(Arrays.asList(2, 3)); + + public static List getPassCode(){ + return passCodes; + } } diff --git a/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java b/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java index f256354f..a226610f 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java +++ b/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.setScheduleId(item.getScheduleId()); budgetLog.setScheduleItemId(item.getScheduleItemId()); - budgetLog.setScheduleItemBudgetId(item.getId()); + budgetLog.setScheduleItemBudgetId(item.getScheduleItemBudgetId()); budgetLog.setItemName(item.getScheduleItemName()); budgetLog.setStartDate(policyItem.getPolicyStartDate().atStartOfDay()); budgetLog.setEndDate(policyItem.getPolicyEndDate().atStartOfDay()); 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 479fb67c..f13b5c09 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 @@ -280,5 +280,17 @@ public class TbsBudgetController { 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 getExcelDataById(@PathVariable("id") String id){ + TbsBudget budget = tbsBudgetService.getById(id); + return R.ok(tbsBudgetService.getEntityForExcel(budget)); + } } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsScheduleItemBudget.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsScheduleItemBudget.java index 8dbad964..88ab6941 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsScheduleItemBudget.java +++ b/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.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; @@ -104,6 +105,18 @@ public class TbsScheduleItemBudget implements Serializable { @JsonProperty private String delFlag; + @TableField(exist = false) + private List budgetLogList; + + @TableField(exist = false) + private BigDecimal finalBudgetAmount; + + @TableField(exist = false) + private BigDecimal usedBudgetAmount; + + @TableField(exist = false) + private BigDecimal unUsedBudgetAmount; + public BigDecimal compareTargetExpenseRate(){ if(budgetAmount!=null&&preDispatchAmount!=null&&preDispatchAmount.compareTo(BigDecimal.ZERO)!=0){ diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java index a20291ba..da2b9f8f 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java +++ b/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 spuConditions; private List scheduleItem; + private List scheduleItemBudgets; } 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 3c5645ee..af4821d3 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 @@ -39,5 +39,6 @@ public interface TbsBudgetService extends IService { TbsBudgetVo toVoEntity(TbsBudget budget); + TbsBudgetVo getEntityForExcel(TbsBudget budget); } 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 a5a5fc22..19b6f8ce 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 @@ -663,5 +663,35 @@ public class TbsBudgetServiceImpl extends ServiceImpl this.updateById(tbsBudget); } + + @Override + public TbsBudgetVo getEntityForExcel(TbsBudget budget){ + TbsBudgetVo budgetVo = CopierUtil.copy(budget,new TbsBudgetVo()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsScheduleItemBudget::getBudgetId,budget.getId()); + List tbsScheduleItemBudgetList = tbsScheduleItemBudgetService.list(lqw); + tbsScheduleItemBudgetList.forEach(a->{ + LambdaQueryWrapper lqwLog = new LambdaQueryWrapper<>(); + lqwLog.eq(TbsBudgetLog::getScheduleItemBudgetId,a.getId()); + lqwLog.eq(TbsBudgetLog::getBudgetId,budget.getId()); + List 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; + } }