From 6544955781be03f175bdf3c2f43fc802bfb6eb5c Mon Sep 17 00:00:00 2001 From: Yen Date: Sat, 10 Jun 2023 10:28:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=BF=E7=AD=96=E6=B7=BB=E5=8A=A0=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DateCheckApplyServiceImpl.java | 144 ++++++++++-------- .../mapper/TbsScheduleItemBudgetMapper.java | 8 +- .../serve/modules/tzc/entity/TzcPolicy.java | 5 + .../impl/TzcPolicyApplicationServiceImpl.java | 8 +- .../impl/TzcPolicyOperationServiceImpl.java | 10 ++ 5 files changed, 105 insertions(+), 70 deletions(-) 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 944e0e5f..66617b88 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 @@ -1,6 +1,7 @@ package com.qs.serve.modules.excel.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplierContacts; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; @@ -75,75 +76,91 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { //暂未定义时间区间 List activityList = activityMapper.selectList(actLqw); List detailItemList = new ArrayList<>(); - for (TbsActivity activity : activityList) { - TbsCostApply costApply = costApplyMapper.selectById(activity.getCostApplyId()); - DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem(); - detailItem.setActivityCode(activity.getActivityCode()); - detailItem.setActivityDate(costApply.getSubmitTime().toLocalDate().toString()); - detailItem.setActivityTheme(activity.getActTitle()); - detailItem.setCostApplyAmt(activity.getTotalAmount()); + if(CollectionUtil.isNotEmpty(activityList)){ + for (TbsActivity activity : activityList) { + TbsCostApply costApply = costApplyMapper.selectById(activity.getCostApplyId()); + DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem(); + detailItem.setActivityCode(activity.getActivityCode()); + detailItem.setActivityDate(costApply.getSubmitTime().toLocalDate().toString()); + detailItem.setActivityTheme(activity.getActTitle()); + detailItem.setCostApplyAmt(activity.getTotalAmount()); - LambdaQueryWrapper veriLqw = new LambdaQueryWrapper<>(); - veriLqw.select(VtbVerification::getVerificationState,VtbVerification::getAmount); - veriLqw.eq(VtbVerification::getActivityId,activity.getId()); - veriLqw.in(VtbVerification::getVerificationState, - VtbVerificationState.Finished.getCode(), - VtbVerificationState.Rollback.getCode(), - VtbVerificationState.Commiting.getCode()); - List vtbVerificationList = verificationMapper.selectList(veriLqw); - List finishedVeriList= vtbVerificationList.stream() - .filter(a->a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); - List unFinishVeriList= vtbVerificationList.stream() - .filter(a->!a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); + LambdaQueryWrapper veriLqw = new LambdaQueryWrapper<>(); + veriLqw.select(VtbVerification::getVerificationState,VtbVerification::getAmount); + veriLqw.eq(VtbVerification::getActivityId,activity.getId()); + veriLqw.in(VtbVerification::getVerificationState, + VtbVerificationState.Finished.getCode(), + VtbVerificationState.Rollback.getCode(), + VtbVerificationState.Commiting.getCode()); + List vtbVerificationList = verificationMapper.selectList(veriLqw); + List finishedVeriList= vtbVerificationList.stream() + .filter(a->a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); + List unFinishVeriList= vtbVerificationList.stream() + .filter(a->!a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); - BigDecimal checkedAmt = BigDecimal.ZERO; - for (VtbVerification verification : finishedVeriList) { - checkedAmt = checkedAmt.add(verification.getAmount()); - } - - BigDecimal notCheckAmt = BigDecimal.ZERO; - for (VtbVerification verification : unFinishVeriList) { - notCheckAmt = notCheckAmt.add(verification.getAmount()); - } - BigDecimal releaseAmt = activity.getReleaseAmount()==null?BigDecimal.ZERO:activity.getReleaseAmount(); - detailItem.setCheckedAmt(checkedAmt); - detailItem.setCheckingAmt(notCheckAmt); - detailItem.setDontCheckAmt(releaseAmt); - BigDecimal notCheckedAmt = activity.getTotalAmount().subtract(detailItem.getCheckedAmt()) - .subtract(detailItem.getCheckingAmt()) - .subtract(detailItem.getDontCheckAmt()); - detailItem.setNotCheckAmt(notCheckedAmt); - - if(checkedAmt.compareTo(BigDecimal.ZERO)==0){ - detailItem.setPayAmt(BigDecimal.ZERO); - detailItem.setUnPayAmt(BigDecimal.ZERO); - detailItem.setNotPayAmt(BigDecimal.ZERO); - }else { - //已支付 - PayPaymentItem payItemQuery = new PayPaymentItem(); - payItemQuery.setCancelFlag(0); - payItemQuery.setActivityId(activity.getId()); - List allPayList = payPaymentItemMapper.selectPayPaymentItemList(payItemQuery); - List payList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.PAYMENT)).collect(Collectors.toList()); - List unPayList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.UN_PAYMENT)).collect(Collectors.toList()); - - //不再支付 - BigDecimal notPayAmt = BigDecimal.ZERO; - for (PayPaymentItem paymentItem : unPayList) { - notPayAmt = notPayAmt.add(paymentItem.getItemPayAmount()); + BigDecimal checkedAmt = BigDecimal.ZERO; + for (VtbVerification verification : finishedVeriList) { + checkedAmt = checkedAmt.add(verification.getAmount()); } - BigDecimal payAmt = BigDecimal.ZERO; - for (PayPaymentItem paymentItem : payList) { - payAmt = payAmt.add(paymentItem.getItemPayAmount()); + BigDecimal notCheckAmt = BigDecimal.ZERO; + for (VtbVerification verification : unFinishVeriList) { + notCheckAmt = notCheckAmt.add(verification.getAmount()); } - //未支付 - BigDecimal unPayAmt = checkedAmt.subtract(payAmt).subtract(notPayAmt); + BigDecimal releaseAmt = activity.getReleaseAmount()==null?BigDecimal.ZERO:activity.getReleaseAmount(); + detailItem.setCheckedAmt(checkedAmt); + detailItem.setCheckingAmt(notCheckAmt); + detailItem.setDontCheckAmt(releaseAmt); + BigDecimal notCheckedAmt = activity.getTotalAmount().subtract(detailItem.getCheckedAmt()) + .subtract(detailItem.getCheckingAmt()) + .subtract(detailItem.getDontCheckAmt()); + detailItem.setNotCheckAmt(notCheckedAmt); + + if(checkedAmt.compareTo(BigDecimal.ZERO)==0){ + detailItem.setPayAmt(BigDecimal.ZERO); + detailItem.setUnPayAmt(BigDecimal.ZERO); + detailItem.setNotPayAmt(BigDecimal.ZERO); + }else { + //已支付 + PayPaymentItem payItemQuery = new PayPaymentItem(); + payItemQuery.setCancelFlag(0); + payItemQuery.setActivityId(activity.getId()); + List allPayList = payPaymentItemMapper.selectPayPaymentItemList(payItemQuery); + List payList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.PAYMENT)).collect(Collectors.toList()); + List unPayList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.UN_PAYMENT)).collect(Collectors.toList()); + + //不再支付 + BigDecimal notPayAmt = BigDecimal.ZERO; + for (PayPaymentItem paymentItem : unPayList) { + notPayAmt = notPayAmt.add(paymentItem.getItemPayAmount()); + } - detailItem.setPayAmt(payAmt); - detailItem.setUnPayAmt(unPayAmt); - detailItem.setNotPayAmt(notPayAmt); + BigDecimal payAmt = BigDecimal.ZERO; + for (PayPaymentItem paymentItem : payList) { + payAmt = payAmt.add(paymentItem.getItemPayAmount()); + } + //未支付 + BigDecimal unPayAmt = checkedAmt.subtract(payAmt).subtract(notPayAmt); + + detailItem.setPayAmt(payAmt); + detailItem.setUnPayAmt(unPayAmt); + detailItem.setNotPayAmt(notPayAmt); + } + detailItemList.add(detailItem); } + }else { + DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem(); + detailItem.setActivityCode(""); + detailItem.setActivityDate(""); + detailItem.setActivityTheme(""); + detailItem.setCostApplyAmt(BigDecimal.ZERO); + detailItem.setCheckedAmt(BigDecimal.ZERO); + detailItem.setCheckingAmt(BigDecimal.ZERO); + detailItem.setNotCheckAmt(BigDecimal.ZERO); + detailItem.setDontCheckAmt(BigDecimal.ZERO); + detailItem.setPayAmt(BigDecimal.ZERO); + detailItem.setUnPayAmt(BigDecimal.ZERO); + detailItem.setNotPayAmt(BigDecimal.ZERO); detailItemList.add(detailItem); } detailInfo.setDetailList(detailItemList); @@ -170,6 +187,9 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { //申请总金额 BigDecimal totalAmount = activityMapper.sumSupplierActivityCost(supplierId); + if(totalAmount==null){ + totalAmount = BigDecimal.ZERO; + } mainInfo.setCostApplyAmt(totalAmount); if(totalAmount.compareTo(BigDecimal.ZERO)==0){ mainInfo.setCostApplyAmt(totalAmount); diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java index 56f72d67..d1bdbdcf 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java @@ -15,7 +15,7 @@ import java.math.BigDecimal; public interface TbsScheduleItemBudgetMapper extends BaseMapper { /** - * 统计费用申请时,已占用的预算金额 + * 统计费用申请占用的预算金额 * @param scheduleItemBudgetId 预算考核期id * @param applyId 费用申请id(防止驳回后提交重复扣除) * @return @@ -28,7 +28,7 @@ public interface TbsScheduleItemBudgetMapper extends BaseMapper budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList()); if(tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_0_UnCommit)){ - if(CollectionUtil.isNotEmpty(budgetLogList)){ - budgetLogService.saveBatch(budgetLogList); - } + //todo 待测试,没能触发到 + budgetLogService.saveBatch(budgetLogList); }else { //排除历史记录 LambdaQueryWrapper logLqw = new LambdaQueryWrapper<>(); @@ -608,7 +608,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ lastAmount = BigDecimal.ZERO; } //判断是否够用 - if(budgetAmount.subtract(lastAmount).subtract(totalUsed).compareTo(goodsAmount)>0){ + if(budgetAmount.subtract(lastAmount).subtract(totalUsed).compareTo(goodsAmount)>=0){ budgetItemCostResult.setBudgetId(itemBudget.getBudgetId()); budgetItemCostResult.setScheduleId(itemBudget.getScheduleId()); budgetItemCostResult.setScheduleItemId(itemBudget.getScheduleItemId()); diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java index d2358739..fe6acef7 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java @@ -9,6 +9,7 @@ import com.qs.serve.modules.seeyon.service.SeeYonOperationService; import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.entity.TbsBudgetLog; +import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.tbs.service.TbsBudgetLogService; @@ -44,6 +45,15 @@ public class TzcPolicyOperationServiceImpl implements SeeYonOperationService { return affairCommit.getPolicyId()+""; } + @Override + public boolean checkSyFormIdIsNotNull(String targetId) { + TzcPolicy policy = tzcPolicyService.getById(targetId); + if(policy!=null&&policy.getSyFormId()!=null){ + return true; + } + return false; + } + @Override public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { TzcPolicy tzcPolicy = tzcPolicyService.getById(affairCommit.getPolicyId());