From 6b03d82413b6604246544ed1058f644db1b9a418 Mon Sep 17 00:00:00 2001 From: Yen Date: Mon, 20 May 2024 15:11:44 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=93=81=E7=B1=BB=E9=A2=84=E7=AE=97=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=20refactor:=20=E9=A2=84=E7=AE=97=E6=9F=A5=E8=AF=A2=E9=87=8D?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/controller/GoodsSpuController.java | 3 +- .../controller/TbsBudgetCheckController.java | 12 ++ .../TbsCostApplyTestController.java | 98 +++++++++++- .../tbs/controller/TbsCostTodoController.java | 2 + .../entity/dto/TbsBudgetLogWithAmount.java | 11 ++ .../tbs/entity/dto/TbsBudgetWithAmount.java | 4 + .../TbsCostApplyOperationServiceImpl.java | 2 +- .../TbsScheduleItemBudgetServiceImpl.java | 148 ++++++++++-------- .../resources/mapper/tbs/TbsBudget2Mapper.xml | 15 +- 9 files changed, 217 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 82ef937c..7db95307 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -325,7 +325,8 @@ public class GoodsSpuController { List spuIds = goodsSkus.stream().map(GoodsSku::getSpuId).distinct().collect(Collectors.toList()); List spuSpecIds = goodsSkus.stream().filter(a->a.getSpecialFlag()!=null &&a.getSpecialFlag().equals(1)).map(GoodsSku::getSpuId).distinct().collect(Collectors.toList()); - spuSpecIds.add(0L); + spuSpecIds.add(-1L); + spuIds.add(-1L); LambdaQueryWrapper spuLqw = new LambdaQueryWrapper<>(); spuLqw.in(GoodsSpu::getId,spuIds); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java index dac8a095..fca9e80d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java @@ -85,6 +85,18 @@ public class TbsBudgetCheckController { return R.ok(); } + + /** + * 补偿批量单子 + * @param batchId + * @return + */ + @PostMapping("runBatchCompensate/{batchId}") + public R runBatchCompensate(@PathVariable("batchId") Long batchId){ + tbsBudgetBatchOperationService.runCompensate(batchId+""); + return R.ok(); + } + /** * 提交更新申请 * @param param diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java index 9ce46b17..79177598 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java @@ -39,6 +39,9 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl; +import com.qs.serve.modules.vtb.common.VtbVerificationState; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -89,6 +92,91 @@ public class TbsCostApplyTestController { private TbsBudgetLogService budgetLogService; private SysTableTempMapper sysTableTempMapper; private TbsBudgetConditionMapper tbsBudgetConditionMapper; + private VtbVerificationMapper vtbVerificationMapper; + + + @GetMapping("/toDoBack") + public R toDoBack(){ + Long[] ids = new Long[]{ + + }; + for (Long id : ids) { + backCommit(id+""); + } + return R.ok(); + } + + /** + * 回退进行中的流程 + * @param costApplyId + * @return + */ + public boolean backCommit( String costApplyId){ + TbsCostApply costApply = tbsCostApplyService.getById(costApplyId); + if(costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())|| + costApply.getChargeState().equals(TbsCostApplyState.State_1_apply.getCode())){ + //判断是否有核销 + List vtbVerificationList = vtbVerificationMapper.selectList(new LambdaQueryWrapper() + .eq(VtbVerification::getCostApplyId,costApplyId) + ); + //有完成的不进行回退 + for (VtbVerification verification : vtbVerificationList) { + if (verification.getVerificationState().equals(VtbVerificationState.Finished.getCode())){ + SysTableTemp sysTableTemp = new SysTableTemp(); + sysTableTemp.setTableName("VtbVerification"); + sysTableTemp.setTableId(""+verification.getId()); + sysTableTemp.setRemark(verification.getVerificationCode()); + sysTableTemp.setOptionTitle("关闭核销失败"); + sysTableTempMapper.insert(sysTableTemp); + return false; + } + } + //更新核销状态 + for (VtbVerification verification : vtbVerificationList) { + if (verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){ + verification.setVerificationState(VtbVerificationState.Close.getCode()); + SysTableTemp sysTableTemp = new SysTableTemp(); + sysTableTemp.setTableName("VtbVerification"); + sysTableTemp.setTableId(""+verification.getId()); + sysTableTemp.setRemark(verification.getVerificationCode()); + sysTableTemp.setOptionTitle("关闭核销"); + sysTableTempMapper.insert(sysTableTemp); + vtbVerificationMapper.updateById(verification); + } + } + //是否budgetLog费用 + LambdaQueryWrapper bLqw = new LambdaQueryWrapper<>(); + bLqw.eq(TbsBudgetLog::getCostApplyId,costApplyId); + List dbbudgetLogs = budgetLogService.list(bLqw); + for (TbsBudgetLog budgetLog : dbbudgetLogs) { + budgetLog.setRemark("toDel3"); + } + budgetLogService.updateBatchById(dbbudgetLogs); + List budIds = dbbudgetLogs.stream().map(TbsBudgetLog::getId).collect(Collectors.toList()); + budgetLogService.removeBatchByIds(budIds); + //移除TbsBudgetCostItem + LambdaQueryWrapper citemLqw = new LambdaQueryWrapper<>(); + citemLqw.eq(TbsBudgetCostItem::getCostApplyId,costApplyId); + List itemList = budgetCostItemService.list(citemLqw); + // 设置remark标记防止误删,移除旧的记录 + for (TbsBudgetCostItem costItem : itemList) { + costItem.setRemark("toDel3"); + } + budgetCostItemService.updateBatchById(itemList); + List itemIds = itemList.stream().map(TbsBudgetCostItem::getId).collect(Collectors.toList()); + budgetCostItemService.removeBatchByIds(itemIds); + //修改状态 + costApply.setChargeState(TbsCostApplyState.State_0_unPublish.getCode()); + tbsCostApplyMapper.updateById(costApply); + + SysTableTemp sysTableTemp = new SysTableTemp(); + sysTableTemp.setTableName("costApply"); + sysTableTemp.setTableId(""+costApply.getId()); + sysTableTemp.setOptionTitle("退回草稿"); + sysTableTempMapper.insert(sysTableTemp); + } + return true; + } /** * 判断预算商品的条件是否匹配 @@ -102,11 +190,11 @@ public class TbsCostApplyTestController { return R.ok(); } - @GetMapping("reBuildGoods") + //@GetMapping("reBuildGoods") public R reBuildGoods(){ List costIds = sysTableTempMapper.getGoodsUnMatchCostIds(); for (Long costId : costIds) { - overRebuildCost(costId); + //overRebuildCost(costId); } return R.ok(); } @@ -155,6 +243,11 @@ public class TbsCostApplyTestController { } + /** + * 有bug + * @param costApplyId + * @return + */ public R overRebuildCost(Long costApplyId){ SysTableTemp sysTableTemp = new SysTableTemp(); sysTableTemp.setTableName("tbs_cost_apply"); @@ -263,6 +356,7 @@ public class TbsCostApplyTestController { } } TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_1,sysUser, costApply, itemBudget, centerGoods,centerGoods.getCenterGoodsAmount(),currActivity); + budgetLog.setRemark("tr2"); budgetLogList.add(budgetLog); costItem.setBudgetId(itemBudget.getBudgetId()); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java index a4a2cade..6d1fa2d1 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java @@ -78,6 +78,8 @@ public class TbsCostTodoController { return R.ok(list); } + + /** * 我的翻页 * @param param diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetLogWithAmount.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetLogWithAmount.java index 6a07b9b1..73c37b41 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetLogWithAmount.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetLogWithAmount.java @@ -11,8 +11,19 @@ import java.math.BigDecimal; @Data public class TbsBudgetLogWithAmount { + /** + * 预算id + */ Long id; + /** + * 预算itemId + */ + Long itemid; + + /** + * 预算item金额 + */ BigDecimal amt; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetWithAmount.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetWithAmount.java index 5a5320b8..02e75959 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetWithAmount.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetWithAmount.java @@ -26,6 +26,10 @@ public class TbsBudgetWithAmount { String centerType; + String scheduleItemBudgetId; + + String scheduleItemBudgetName; + /** * 预算总额 */ 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 61eb17e3..a00a9833 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 @@ -665,7 +665,7 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService } for (int ii = 0; ii < currentActivityCenterList.size(); ii++) { - TbsActivityCenter activityCenter = activityCenterList.get(ii); + TbsActivityCenter activityCenter = currentActivityCenterList.get(ii); boolean eqActivity = activityCenter.getActivityId().equals(subject.getActivityId()); boolean eqSubject = activityCenter.getSubjectId().equals(subject.getSubjectId()); if(eqActivity&&eqSubject){ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java index 37856edd..90c6fe1b 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java @@ -16,10 +16,7 @@ import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -219,13 +216,13 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl budgetList = tbsBudgetMapper.selectList(budgetLqw); - List budgetIds; + Set budgetIds; if(CollectionUtil.isNotEmpty(param.getBrandIds())){ //无品牌条件 budgetIds = budgetList.stream() .filter(a->a.getConditionFlag().equals(0)) - .map(TbsBudget::getId).collect(Collectors.toList()); + .map(TbsBudget::getId).collect(Collectors.toSet()); //筛选符合品牌条件 List conBudgetIds = budgetList.stream() @@ -241,26 +238,26 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl finalList = tbsBudgetLog2Mapper.getSumFinalAmtInList(budgetIds, BudgetLogOptFlag.getFinalBudgetOptFlag()); + List finalList = tbsBudgetLog2Mapper.getSumFinalAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.getFinalBudgetOptFlag()); // 被占用金额 - List usedList = tbsBudgetLog2Mapper.getSumAmtNotInList(budgetIds, BudgetLogOptFlag.getFinalBudgetOptFlag()); + List usedList = tbsBudgetLog2Mapper.getSumAmtNotInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.getFinalBudgetOptFlag()); // 费用使用金额 - List costUsedList = tbsBudgetLog2Mapper.getSumAmtInList(budgetIds, BudgetLogOptFlag.finalCostOptFlag); + List costUsedList = tbsBudgetLog2Mapper.getSumAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalCostOptFlag); // 政策使用金额 - List policyUsedList = tbsBudgetLog2Mapper.getSumAmtInList(budgetIds, BudgetLogOptFlag.finalPolicyOptFlag); + List policyUsedList = tbsBudgetLog2Mapper.getSumAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalPolicyOptFlag); - List policyCheckingList = tbsBudgetLog2Mapper.getPolicyCheckingList(budgetIds, BudgetLogOptFlag.finalPolicyOptFlag); + List policyCheckingList = tbsBudgetLog2Mapper.getPolicyCheckingList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalPolicyOptFlag); - List costCheckingList = tbsBudgetLog2Mapper.getCostCheckingList(budgetIds, BudgetLogOptFlag.finalCostOptFlag); + List costCheckingList = tbsBudgetLog2Mapper.getCostCheckingList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalCostOptFlag); List result = new ArrayList<>(); @@ -268,73 +265,86 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl scheduleItemBudgetList = scheduleItemBudget2Mapper.selectList( + new LambdaQueryWrapper() + .eq(TbsScheduleItemBudget::getBudgetId,budgetId) + ); + + for (TbsScheduleItemBudget itemBudget : scheduleItemBudgetList) { + Long itemId = itemBudget.getId(); + TbsBudgetWithAmount withAmount = new TbsBudgetWithAmount(); + withAmount.setBudgetId(budgetId+""); + withAmount.setScheduleItemBudgetId(itemId+""); + withAmount.setScheduleItemBudgetName(itemBudget.getItemName()); + + for (TbsBudget budget : budgetList) { + if(budget.getId().equals(budgetId)){ + withAmount.setBudgetName(budget.getBudgetCode()); + withAmount.setCenterId(budget.getCenterId()); + withAmount.setCenterName(budget.getCenterName()); + withAmount.setCenterType(budget.getCenterType()); + withAmount.setScheduleName(budget.getScheduleName()); + } } - } - for (TbsBudgetLogWithAmount obj : finalList) { - if(budgetId.equals(obj.getId())){ - withAmount.setFinalAmt(obj.getAmt()); - break; + for (TbsBudgetLogWithAmount obj : finalList) { + if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ + withAmount.setFinalAmt(obj.getAmt()); + break; + } } - } - for (TbsBudgetLogWithAmount obj : usedList) { - if(budgetId.equals(obj.getId())){ - withAmount.setAllUsingAmt(obj.getAmt()); - break; + for (TbsBudgetLogWithAmount obj : usedList) { + if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ + withAmount.setAllUsingAmt(obj.getAmt()); + break; + } } - } - for (TbsBudgetLogWithAmount obj : costUsedList) { - if(budgetId.equals(obj.getId())){ - withAmount.setCostUsingAmt(obj.getAmt()); - break; + for (TbsBudgetLogWithAmount obj : costUsedList) { + if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ + withAmount.setCostUsingAmt(obj.getAmt()); + break; + } } - } - for (TbsBudgetLogWithAmount obj : policyUsedList) { - if(budgetId.equals(obj.getId())){ - withAmount.setPolicyUsingAmt(obj.getAmt()); - break; + for (TbsBudgetLogWithAmount obj : policyUsedList) { + if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ + withAmount.setPolicyUsingAmt(obj.getAmt()); + break; + } } - } - for (TbsBudgetLogWithAmount obj : costCheckingList) { - if(budgetId.equals(obj.getId())){ - withAmount.setCostCheckingAmt(obj.getAmt()); - break; + for (TbsBudgetLogWithAmount obj : costCheckingList) { + if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ + withAmount.setCostCheckingAmt(obj.getAmt()); + break; + } } - } - for (TbsBudgetLogWithAmount obj : policyCheckingList) { - if(budgetId.equals(obj.getId())){ - withAmount.setPolicyCheckingAmt(obj.getAmt()); - break; + for (TbsBudgetLogWithAmount obj : policyCheckingList) { + if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ + withAmount.setPolicyCheckingAmt(obj.getAmt()); + break; + } } + + //因为log统计为负数,需要把数值取正 + withAmount.setAllUsingAmt(withAmount.getAllUsingAmt().negate()); + withAmount.setCostUsingAmt(withAmount.getCostUsingAmt().negate()); + withAmount.setCostCheckingAmt(withAmount.getCostCheckingAmt().negate()); + withAmount.setPolicyUsingAmt(withAmount.getPolicyUsingAmt().negate()); + withAmount.setPolicyCheckingAmt(withAmount.getPolicyCheckingAmt().negate()); + //计算剩余及审批合计 + withAmount.setAllCheckingAmt(withAmount.getCostCheckingAmt().add(withAmount.getPolicyCheckingAmt())); + withAmount.setSurplusAmt(withAmount.getFinalAmt().subtract(withAmount.getAllUsingAmt())); + result.add(withAmount); } - //因为log统计为负数,需要把数值取正 - withAmount.setAllUsingAmt(withAmount.getAllUsingAmt().negate()); - withAmount.setCostUsingAmt(withAmount.getCostUsingAmt().negate()); - withAmount.setCostCheckingAmt(withAmount.getCostCheckingAmt().negate()); - withAmount.setPolicyUsingAmt(withAmount.getPolicyUsingAmt().negate()); - withAmount.setPolicyCheckingAmt(withAmount.getPolicyCheckingAmt().negate()); - //计算剩余及审批合计 - withAmount.setAllCheckingAmt(withAmount.getCostCheckingAmt().add(withAmount.getPolicyCheckingAmt())); - withAmount.setSurplusAmt(withAmount.getFinalAmt().subtract(withAmount.getAllUsingAmt())); - result.add(withAmount); - } - result.sort( - Comparator.comparing(TbsBudgetWithAmount::getCenterName) - .thenComparing(TbsBudgetWithAmount::getScheduleName) - .thenComparing(TbsBudgetWithAmount::getBudgetName) - ); + } +// result.sort( +// Comparator.comparing(TbsBudgetWithAmount::getCenterName) +// .thenComparing(TbsBudgetWithAmount::getScheduleName) +// .thenComparing(TbsBudgetWithAmount::getBudgetName) +// ); return result; } diff --git a/src/main/resources/mapper/tbs/TbsBudget2Mapper.xml b/src/main/resources/mapper/tbs/TbsBudget2Mapper.xml index a16191f3..161acaae 100644 --- a/src/main/resources/mapper/tbs/TbsBudget2Mapper.xml +++ b/src/main/resources/mapper/tbs/TbsBudget2Mapper.xml @@ -40,6 +40,7 @@