From 6b412c049496ac46928a1e609bf99577f9a8fef9 Mon Sep 17 00:00:00 2001 From: Yen Date: Tue, 1 Aug 2023 15:17:14 +0800 Subject: [PATCH] debug --- .../TbsCostApplyCheckController.java | 168 ++++++++++++++++++ .../controller/TbsCostApplyController.java | 88 --------- .../tbs/entity/bo/TbsCheckCostUpdateBo.java | 27 +++ .../tbs/service/TbsCostApplyPart1Service.java | 2 +- .../TbsCostApplyOperationServiceImpl.java | 8 +- .../impl/TbsCostApplyPart1ServiceImpl.java | 12 +- .../service/impl/TbsCostApplyServiceImpl.java | 14 +- .../impl/VtbVerificationServiceImpl.java | 20 ++- 8 files changed, 230 insertions(+), 109 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCheckCostUpdateBo.java diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java new file mode 100644 index 00000000..a041a96b --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java @@ -0,0 +1,168 @@ +package com.qs.serve.modules.tbs.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qs.serve.common.model.annotation.LimitSubmit; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +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.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.seeyon.entity.CtpAffairQo; +import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam; +import com.qs.serve.modules.seeyon.service.SeeYonRequestService; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysPostUserService; +import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.common.TbsCostApplyState; +import com.qs.serve.modules.tbs.entity.TbsActivity; +import com.qs.serve.modules.tbs.entity.TbsActivityTemplate; +import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.entity.TbsCostContract; +import com.qs.serve.modules.tbs.entity.bo.TbsActivityBo; +import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; +import com.qs.serve.modules.tbs.entity.bo.TbsCostApplyActivityBo; +import com.qs.serve.modules.tbs.entity.bo.TbsCostApplyBo; +import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; +import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; +import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; +import com.qs.serve.modules.tbs.entity.vo.TbsCostApplyVo; +import com.qs.serve.modules.tbs.service.*; +import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; + +/** + * 预算 费用申请(审批) + * @author YenHex + * @since 2022-11-08 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("tbs/costApply") +public class TbsCostApplyCheckController { + +// private TbsCostApplyPart1Service costApplyPart1Service; +// private TbsCostContractService costContractService; + private TbsCostApplyService tbsCostApplyService; +// private TbsActivityService tbsActivityService; +// private TbsActivityTemplateService tbsActivityTemplateService; +// private final TbsActivityGoodsService activityGoodsService; +// private final TbsActivitySubjectService activitySubjectService; +// private final TbsActivityCenterService activityCenterService; +// private final TbsActivityCenterGoodsService activityCenterGoodsService; +// private final TbsActivityChannelService activityChannelService; +// private final TbsActivityChannelPointService activityChannelPointService; +// private TbsBudgetLogService tbsBudgetLogService; +// private BmsSupplierService bmsSupplierService; +// private SysUserService sysUserService; +// private SeeYonRequestService seeYonService; +// private TbsBudgetApplicationService budgetApplicationService; +// private SysPostUserService postUserService; + private TbsCostApplyOperationServiceImpl tbsCostApplyOperationServiceImpl; +// private TbsBudgetMatchApplication tbsBudgetMatchApplication; + + + /** + * 统计即将逾期 + * @return + */ + @GetMapping("myCountOverdue4Home") + public R countOverdue(){ + long data = tbsCostApplyService.selectCountOverdueState(AuthContextUtils.getSysUserId()); + return R.ok(data); + } + + /** + * 提交费用申请 + * @param id + * @return + */ + @LimitSubmit + @PostMapping("/commit/{id}") + @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE) + @PreAuthorize("hasRole('tbs:costApply:update')") + public R commit(@PathVariable("id") String id){ + tbsCostApplyService.commitApply(id); + return R.ok(); + } + + /** + * 审批列表(用于详情页) + * @param costApplyId + * @return + */ + @GetMapping("/ListAffairs") + public R> pageAffair(String costApplyId){ + return tbsCostApplyOperationServiceImpl.pageAffair(costApplyId); + } + + /** + * 审批列表(翻页) + * @param param + * @return + */ + @GetMapping("/pageMemberAffair") + public R> pageMemberAffair(CtpAffairQo param){ + return tbsCostApplyOperationServiceImpl.pageMemberAffair(param); + } + /** + * 提交审批节点 + * @return + */ + @LimitSubmit + @PostMapping("/commitAffair") + @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) + @PreAuthorize("hasRole('tbs:costApply:commit')") + public R commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ + return tbsCostApplyOperationServiceImpl.commitAffair(affairCommit); + } + + /** + * 补偿按钮 + * @param id + * @return + */ + @LimitSubmit + @PostMapping("/compensate/{id}") + @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE) + public R compensate(@PathVariable("id") String id){ + return tbsCostApplyOperationServiceImpl.runCompensate(id); + } + + /** + * 加签 + * @param param + * @return + */ + @LimitSubmit + @PostMapping("/addNode") + @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) + public R addNode(@RequestBody CtpAddNodeParam param){ + return tbsCostApplyOperationServiceImpl.addNode(param); + } + + /** + * 获取未完成审批统计(个人) + * @return + */ + @PostMapping("/getAffairUnfinished") + public R getUnfinished(){ + return tbsCostApplyOperationServiceImpl.getUnfinished(); + } + + +} + 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 6c7839b5..17d473f6 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 @@ -85,16 +85,6 @@ public class TbsCostApplyController { return R.ok(); } - /** - * 统计即将逾期 - * @return - */ - @GetMapping("myCountOverdue4Home") - public R countOverdue(){ - long data = tbsCostApplyService.selectCountOverdueState(AuthContextUtils.getSysUserId()); - return R.ok(data); - } - /** * 预览 * @param id @@ -208,20 +198,6 @@ public class TbsCostApplyController { return R.ok(tbsCostApply); } - /** - * 提交费用申请 - * @param id - * @return - */ - @LimitSubmit - @PostMapping("/commit/{id}") - @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE) - @PreAuthorize("hasRole('tbs:costApply:update')") - public R commit(@PathVariable("id") String id){ - tbsCostApplyService.commitApply(id); - return R.ok(); - } - /** * 更新 @@ -394,69 +370,5 @@ public class TbsCostApplyController { return R.isTrue(result); } - /** - * 审批列表(用于详情页) - * @param costApplyId - * @return - */ - @GetMapping("/ListAffairs") - public R> pageAffair(String costApplyId){ - return tbsCostApplyOperationServiceImpl.pageAffair(costApplyId); - } - - /** - * 审批列表(翻页) - * @param param - * @return - */ - @GetMapping("/pageMemberAffair") - public R> pageMemberAffair(CtpAffairQo param){ - return tbsCostApplyOperationServiceImpl.pageMemberAffair(param); - } - /** - * 提交审批节点 - * @return - */ - @LimitSubmit - @PostMapping("/commitAffair") - @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) - @PreAuthorize("hasRole('tbs:costApply:commit')") - public R commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ - return tbsCostApplyOperationServiceImpl.commitAffair(affairCommit); - } - - /** - * 补偿按钮 - * @param id - * @return - */ - @LimitSubmit - @PostMapping("/compensate/{id}") - @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE) - public R compensate(@PathVariable("id") String id){ - return tbsCostApplyOperationServiceImpl.runCompensate(id); - } - - /** - * 加签 - * @param param - * @return - */ - @LimitSubmit - @PostMapping("/addNode") - @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) - public R addNode(@RequestBody CtpAddNodeParam param){ - return tbsCostApplyOperationServiceImpl.addNode(param); - } - - /** - * 获取未完成审批统计(个人) - * @return - */ - @PostMapping("/getAffairUnfinished") - public R getUnfinished(){ - return tbsCostApplyOperationServiceImpl.getUnfinished(); - } - } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCheckCostUpdateBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCheckCostUpdateBo.java new file mode 100644 index 00000000..242e85d5 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCheckCostUpdateBo.java @@ -0,0 +1,27 @@ +package com.qs.serve.modules.tbs.entity.bo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author YenHex + * @since 2023/8/1 + */ +@Data +public class TbsCheckCostUpdateBo { + + /** 活动的科目ID */ + private Long activitySubjectId; + + /** 调整金额 */ + private BigDecimal amount; + + /** 人数 */ + private Integer countPerson; + + /** 场次 */ + private Integer countSession; + + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java index 725abb98..fcd3df29 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java @@ -18,7 +18,7 @@ public interface TbsCostApplyPart1Service { /** * 取消异动 - * @param costId + * @param costId 异动后的费用id * @param checkThrow 检测抛异常 */ void cancelSetChanged(Long costId,boolean checkThrow); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java index ba494e56..8d709080 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java @@ -220,9 +220,10 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService apply.setId(targetId); apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode()); costApplyService.updateById(apply); - if(apply.getChangeSourceId()!=null){ + TbsCostApply costApply = costApplyService.getById(targetId); + if(costApply.getChangeSourceId()!=null){ //移除 - tbsBudgetLogMapper.updateLogDelFlagByCostApply(apply.getChangeSourceId(),1); + tbsBudgetLogMapper.updateLogDelFlagByCostApply(costApply.getChangeSourceId(),1); } //更新活动通过时间 TbsActivity tbsActivity = new TbsActivity(); @@ -274,7 +275,8 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService tbsActivityMapper.update(activityParam,activityLqw); activitySlottingFeeMapper.updatePassFlagByCostApplyId(costApplyId,0); //如果时异动,则恢复原来的异动状态 - if(apply.getChangeSourceId()!=null){ + TbsCostApply costApply = costApplyService.getById(costApplyId); + if(costApply.getChangeSourceId()!=null){ costApplyPart1Service.cancelSetChanged(costApplyId,false); } return null; diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java index 75d5ea21..cf8b7372 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java @@ -65,9 +65,6 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service { if(orgCost.getCancelFlag().equals(1)){ Assert.throwEx("该记录的费用已异动"); } -// if(orgCost.getChangeSourceId()!=null){ -// Assert.throwEx("异动单据不可再异动,请取消源单据异动后进行"); -// } if(!userId.equals(orgCost.getUserId())){ Assert.throwEx("拒绝访问"); } @@ -94,6 +91,7 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service { costApply.setUpdateTime(null); costApply.setUpdateBy(null); costApply.setChangeSourceId(orgCost.getId()); + costApply.setChangeExtendId(null); costApply.setChargeState(TbsCostApplyState.State_0_unPublish.getCode()); tbsCostApplyService.save(costApply); final Long newCostApplyId = costApply.getId(); @@ -135,12 +133,12 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service { qw.eq(VtbVerification::getVerificationState, VtbVerificationState.Commiting.getCode()) .or().eq(VtbVerification::getVerificationState,VtbVerificationState.Finished.getCode()); }); - Long count = verificationMapper.selectCount(vtbLqwCount); - if(count>0){ - Assert.throwEx("含有核销记录不支持取消异动"); - } TbsCostApply extCost = tbsCostApplyService.getById(costId); if(checkThrow){ + Long count = verificationMapper.selectCount(vtbLqwCount); + if(count>0){ + Assert.throwEx("含有核销记录不支持取消异动"); + } if(extCost.getCancelFlag().equals(1)){ Assert.throwEx("请选择最新的异动记录"); } 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 ad892b43..d0fa277c 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 @@ -103,12 +103,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl vtbLqw = new LambdaQueryWrapper<>(); @@ -283,10 +279,10 @@ public class TbsCostApplyServiceImpl extends ServiceImpl data = new HashMap<>(10); - //匹配方式的result + // 匹配方式的result TbsBudgetCostResult result0 = null; TbsBudgetTableResultVo result1 = null; - //TODO 加载匹配方式 + // 加载匹配方式 Integer matchType = tbsCostApply.getMatchType(); if(matchType.equals(0)){ result0 = budgetApplicationService.buildBudgetCostResult(tbsCostApply.getId(),true,false); @@ -553,7 +549,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl vtbVerificationLqw = new LambdaQueryWrapper<>(); vtbVerificationLqw.eq(VtbVerification::getActivityId,activity.getId()); vtbVerificationLqw.ne(VtbVerification::getId,id); + vtbVerificationLqw.lt(VtbVerification::getVerificationState,VtbVerificationState.Stop.getCode()); List vtbVerificationList = this.list(vtbVerificationLqw); BigDecimal totalVtbAmt = BigDecimal.ZERO; for (VtbVerification vtbVerification : vtbVerificationList) { @@ -151,10 +152,11 @@ public class VtbVerificationServiceImpl extends ServiceImpl subjectAmountMap = new HashMap<>(); List centerGoodsList = activityCenterGoodsService.listByActivityId(activity.getId()); for (TbsActivityCenterGoods centerGoods : centerGoodsList) { centerGoods.setUsedAmount(totalVtbAmt.multiply(centerGoods.getCenterRate()).multiply(centerGoods.getCenterGoodsRate()).divide(n10000,2,RoundingMode.DOWN)); + BigDecimal amt = subjectAmountMap.get(centerGoods.getSubjectId()); + if(amt==null){ + amt = centerGoods.getUsedAmount(); + }else { + amt = amt.add(centerGoods.getUsedAmount()); + } + subjectAmountMap.put(centerGoods.getSubjectId(),amt); } activityCenterGoodsService.updateBatchById(centerGoodsList); + + List activitySubjectList = activitySubjectService.listByActivityId(activity.getId()); + for (TbsActivitySubject activitySubject : activitySubjectList) { + BigDecimal amt = subjectAmountMap.get(activitySubject.getSubjectId()); + activitySubject.setUsedAmount(amt==null?BigDecimal.ZERO:amt); + } + activitySubjectService.updateBatchById(activitySubjectList); + //如果为最后的活动,更变费用申请状态 if(costApply.getChargeState().equals(TbsCostApplyState.State_3_finished.getCode())){ TbsCostApply costApplyUpdate = new TbsCostApply();