diff --git a/src/main/java/com/qs/serve/common/model/consts/SysConfigKey.java b/src/main/java/com/qs/serve/common/model/consts/SysConfigKey.java index cc1dad62..b824994a 100644 --- a/src/main/java/com/qs/serve/common/model/consts/SysConfigKey.java +++ b/src/main/java/com/qs/serve/common/model/consts/SysConfigKey.java @@ -13,4 +13,5 @@ public interface SysConfigKey { /** 活动预计核销日期 */ String ActivityPreCheckDays = "ActivityPreCheckDays"; + String DateCheckApplyExcelYear = "DateCheckApplyExcelYear"; } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java index a4bab340..863db8bf 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java @@ -106,6 +106,7 @@ public class BmsRegionController { } List hisUserSuppliers = hisUserSupplierService.selectHisSupplier(null,false); List supplierIds = hisUserSuppliers.stream().map(HisUserSupplier::getSupplierId).collect(Collectors.toList()); + supplierIds.add(0L); List supplierList = bmsSupplierService.listByIds(supplierIds); List firstRegionIds = supplierList.stream().map(a->a.getRegionFirst()).collect(Collectors.toList()); List secondRegionIds = supplierList.stream().map(a->a.getRegionSecond()).collect(Collectors.toList()); diff --git a/src/main/java/com/qs/serve/modules/excel/common/DataSupplierSo.java b/src/main/java/com/qs/serve/modules/excel/common/DataSupplierSo.java index 3919b2c3..e1ec0d28 100644 --- a/src/main/java/com/qs/serve/modules/excel/common/DataSupplierSo.java +++ b/src/main/java/com/qs/serve/modules/excel/common/DataSupplierSo.java @@ -29,4 +29,6 @@ public class DataSupplierSo { @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate endDate; + private Integer saFlag; + } diff --git a/src/main/java/com/qs/serve/modules/excel/controller/DateCheckApplyController.java b/src/main/java/com/qs/serve/modules/excel/controller/DateCheckApplyController.java index 9ee06f2e..ee5c8b59 100644 --- a/src/main/java/com/qs/serve/modules/excel/controller/DateCheckApplyController.java +++ b/src/main/java/com/qs/serve/modules/excel/controller/DateCheckApplyController.java @@ -2,13 +2,17 @@ package com.qs.serve.modules.excel.controller; import com.qs.serve.common.model.annotation.RepeatSubmit; import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.consts.SysConfigKey; 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.Assert; import com.qs.serve.modules.excel.common.DataSupplierSo; import com.qs.serve.modules.excel.entity.DataCheckApplyDetailInfo; import com.qs.serve.modules.excel.entity.DataCheckApplyMainInfo; import com.qs.serve.modules.excel.service.DateCheckApplyService; +import com.qs.serve.modules.sys.entity.SysConfig; +import com.qs.serve.modules.sys.service.SysConfigService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; @@ -29,6 +33,7 @@ import java.time.LocalDate; public class DateCheckApplyController { private DateCheckApplyService dateCheckApplyService; + private SysConfigService configService; /** * 汇总账单 @@ -52,6 +57,17 @@ public class DateCheckApplyController { @SysLog(module = SystemModule.Verification, title = "客户明细帐", biz = BizType.EXPORT) public R getItemized(DataSupplierSo param){ param.setEndDate(LocalDate.now()); + if(param.getSaFlag().equals(0)){ + SysConfig config = configService.getByKey(SysConfigKey.DateCheckApplyExcelYear); + if(config==null){ + Assert.throwEx("没有设置全局变量【导出明细时间段】"); + } + String year = config.getConfigValue(); + Integer yearNum = Integer.parseInt(year)-1; + + LocalDate startDate = LocalDate.of(LocalDate.now().getYear()-yearNum,1,1); + param.setStartDate(startDate); + } DataCheckApplyDetailInfo detailInfo = dateCheckApplyService.getDataCheckApplyDetailInfo(param); return R.ok(detailInfo); } diff --git a/src/main/java/com/qs/serve/modules/excel/entity/DataCheckApplyDetailItem.java b/src/main/java/com/qs/serve/modules/excel/entity/DataCheckApplyDetailItem.java index 7bb23aba..06214b6d 100644 --- a/src/main/java/com/qs/serve/modules/excel/entity/DataCheckApplyDetailItem.java +++ b/src/main/java/com/qs/serve/modules/excel/entity/DataCheckApplyDetailItem.java @@ -12,6 +12,7 @@ import java.math.BigDecimal; @Data public class DataCheckApplyDetailItem { + private String costApplyId; /** * 活动编号 */ 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 f3c32ce6..99241edb 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 @@ -17,8 +17,10 @@ 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.entity.vo.TbsCostApplySumAmountVo; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; +import com.qs.serve.modules.tbs.mapper.TbsCostApplySumAmountMapper; import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; @@ -29,6 +31,8 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -48,6 +52,7 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { private final PayPaymentItemMapper payPaymentItemMapper; private final BmsSupplierMapper supplierMapper; private final BmsSupplierContactsService supplierContactsService; + private final TbsCostApplySumAmountMapper tbsCostApplySumAmountMapper; @Override public DataCheckApplyDetailInfo getDataCheckApplyDetailInfo(DataSupplierSo param) { @@ -76,86 +81,13 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { 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<>(); - if(CollectionUtil.isNotEmpty(activityList)){ - for (TbsActivity activity : activityList) { - TbsCostApply costApply = costApplyMapper.selectById(activity.getCostApplyId()); - DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem(); - detailItem.setActivityCode(activity.getActivityCode()); - if(costApply.getSubmitTime()!=null){ - detailItem.setActivityDate(costApply.getSubmitTime().toLocalDate().toString()); - } - detailItem.setActivityTheme(activity.getActTitle()); - detailItem.setCostApplyAmt(activity.getTotalAmount()); + if(CollectionUtil.isNotEmpty(costApplyList)){ - 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()); + List dataCheckApplyDetailItems = tbsCostApplySumAmountMapper.selectDataCheckApplyDetailItem(null,costApplyList.stream().map(a->a.getId()).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 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); - } + detailItemList.addAll(dataCheckApplyDetailItems); }else { DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem(); detailItem.setActivityCode(""); @@ -171,6 +103,7 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { detailItem.setNotPayAmt(BigDecimal.ZERO); detailItemList.add(detailItem); } + detailInfo.setDetailList(detailItemList); return detailInfo; } @@ -182,7 +115,7 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { LambdaQueryWrapper conLqw = new LambdaQueryWrapper<>(); conLqw.eq(BmsSupplierContacts::getSupplierId,supplierId); BmsSupplierContacts contacts = supplierContactsService.getOne(conLqw,false); - DataCheckApplyMainInfo mainInfo = new DataCheckApplyMainInfo(); + DataCheckApplyMainInfo mainInfo = tbsCostApplySumAmountMapper.selectDataCheckApplyMainInfo(param.getSupplierId()); mainInfo.setCusName(supplier.getName()); mainInfo.setCusAddress(supplier.getAddress()); mainInfo.setCusCode(supplier.getCode()); @@ -190,108 +123,118 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { mainInfo.setContactUser(contacts.getContactsName()); mainInfo.setContactMobile(contacts.getContactsNumber()); } - mainInfo.setStartDate(param.getStartDate()); +// 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); - - //申请总金额 - BigDecimal totalAmount = activityMapper.sumSupplierActivityCost(supplierId); - if(totalAmount==null){ - totalAmount = BigDecimal.ZERO; - } - mainInfo.setCostApplyAmt(totalAmount); - if(totalAmount.compareTo(BigDecimal.ZERO)==0){ - mainInfo.setCostApplyAmt(totalAmount); - mainInfo.setCheckedAmt(totalAmount); - mainInfo.setCheckingAmt(totalAmount); - mainInfo.setNotCheckAmt(totalAmount); - mainInfo.setDontCheckAmt(totalAmount); - mainInfo.setPayAmt(totalAmount); - mainInfo.setUnPayAmt(totalAmount); - mainInfo.setNotPayAmt(totalAmount); - }else { - LambdaQueryWrapper veriLqw = new LambdaQueryWrapper<>(); - veriLqw.select(VtbVerification::getVerificationState,VtbVerification::getAmount); - veriLqw.eq(VtbVerification::getSupplierId,supplierId); - veriLqw.in(VtbVerification::getVerificationState, - VtbVerificationState.Finished.getCode(), - VtbVerificationState.Rollback.getCode(), - VtbVerificationState.Commiting.getCode()); - veriLqw.in(VtbVerification::getCostApplyId,costApplyList.stream().map(a->a.getId()).collect(Collectors.toList())); - - 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 dontCheckAmt = activityMapper.sumSupplierNotCheckCost(supplierId); - if(dontCheckAmt==null){ - dontCheckAmt = BigDecimal.ZERO; - } - mainInfo.setCheckedAmt(checkedAmt); - mainInfo.setCheckingAmt(notCheckAmt); - mainInfo.setDontCheckAmt(dontCheckAmt); - BigDecimal notCheckedAmt = mainInfo.getCostApplyAmt().subtract(mainInfo.getCheckedAmt()) - .subtract(mainInfo.getCheckingAmt()) - .subtract(mainInfo.getDontCheckAmt()); - mainInfo.setNotCheckAmt(notCheckedAmt); - - if(checkedAmt.compareTo(BigDecimal.ZERO)>0){ - - //已支付 +// 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); + +// List dataCheckApplyDetailItems = tbsCostApplySumAmountMapper.selectDataCheckApplyDetailItem(param.getSupplierId(),null); +// +// //申请总金额 +// BigDecimal totalAmount = null; +// if(costApplyList!=null && costApplyList.size()>0) { +// activityMapper.sumSupplierActivityCost(supplierId, costApplyList.stream().map(a -> a.getId()).collect(Collectors.toList())); +// } +// if(totalAmount==null){ +// totalAmount = BigDecimal.ZERO; +// } +// mainInfo.setCostApplyAmt(totalAmount); +// if(totalAmount.compareTo(BigDecimal.ZERO)==0){ +// mainInfo.setCostApplyAmt(totalAmount); +// mainInfo.setCheckedAmt(totalAmount); +// mainInfo.setCheckingAmt(totalAmount); +// mainInfo.setNotCheckAmt(totalAmount); +// mainInfo.setDontCheckAmt(totalAmount); +// mainInfo.setPayAmt(totalAmount); +// mainInfo.setUnPayAmt(totalAmount); +// mainInfo.setNotPayAmt(totalAmount); +// }else { +// LambdaQueryWrapper veriLqw = new LambdaQueryWrapper<>(); +// veriLqw.select(VtbVerification::getVerificationState,VtbVerification::getAmount); +// veriLqw.eq(VtbVerification::getSupplierId,supplierId); +// veriLqw.in(VtbVerification::getVerificationState, +// VtbVerificationState.Finished.getCode(), +// VtbVerificationState.Rollback.getCode(), +// VtbVerificationState.Commiting.getCode()); +// veriLqw.in(VtbVerification::getCostApplyId,costApplyList.stream().map(a->a.getId()).collect(Collectors.toList())); +// +// 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 dontCheckAmt = null; +// if(costApplyList!=null && costApplyList.size()>0) { +// activityMapper.sumSupplierNotCheckCost(supplierId, costApplyList.stream().map(a -> a.getId()).collect(Collectors.toList())); +// } +//// BigDecimal dontCheckAmt = activityMapper.sumSupplierNotCheckCost(supplierId); +// if(dontCheckAmt==null){ +// dontCheckAmt = BigDecimal.ZERO; +// } +// mainInfo.setCheckedAmt(checkedAmt); +// mainInfo.setCheckingAmt(notCheckAmt); +// mainInfo.setDontCheckAmt(dontCheckAmt); +// BigDecimal notCheckedAmt = mainInfo.getCostApplyAmt().subtract(mainInfo.getCheckedAmt()) +// .subtract(mainInfo.getCheckingAmt()) +// .subtract(mainInfo.getDontCheckAmt()); +// mainInfo.setNotCheckAmt(notCheckedAmt); +// +// if(checkedAmt.compareTo(BigDecimal.ZERO)>0){ +// +// //已支付 // PayPaymentItem payItemQuery = new PayPaymentItem(); // payItemQuery.setCancelFlag(0); -// payItemQuery.setSupplierId(Long.parseLong(supplierId)); - LambdaQueryWrapper payLqw = new LambdaQueryWrapper<>(); - payLqw.in(PayPaymentItem::getCostApplyId,costApplyList.stream().map(a->a.getId()).collect(Collectors.toList())); - payLqw.eq(PayPaymentItem::getCancelFlag,0); - - List allPayList = payPaymentItemMapper.selectList(payLqw); - 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 payAmt = BigDecimal.ZERO; - for (PayPaymentItem paymentItem : payList) { - payAmt = payAmt.add(paymentItem.getItemPayAmount()); - } - //未支付 - BigDecimal unPayAmt = checkedAmt.subtract(payAmt).subtract(notPayAmt); - - mainInfo.setPayAmt(payAmt); - mainInfo.setUnPayAmt(unPayAmt); - mainInfo.setNotPayAmt(notPayAmt); - }else { - mainInfo.setPayAmt(BigDecimal.ZERO); - mainInfo.setUnPayAmt(BigDecimal.ZERO); - mainInfo.setNotPayAmt(BigDecimal.ZERO); - } - - } +//// payItemQuery.setSupplierId(Long.parseLong(supplierId)); +// payItemQuery.setCostApplyIds(costApplyList.stream().map(a->a.getId()).collect(Collectors.toList())); +//// LambdaQueryWrapper payLqw = new LambdaQueryWrapper<>(); +//// payLqw.in(PayPaymentItem::getCostApplyId,costApplyList.stream().map(a->a.getId()).collect(Collectors.toList())); +//// payLqw.eq(PayPaymentItem::getCancelFlag,0); +// +// 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 payAmt = BigDecimal.ZERO; +// for (PayPaymentItem paymentItem : payList) { +// payAmt = payAmt.add(paymentItem.getItemPayAmount()); +// } +// //未支付 +// BigDecimal unPayAmt = checkedAmt.subtract(payAmt).subtract(notPayAmt); +// +// mainInfo.setPayAmt(payAmt); +// mainInfo.setUnPayAmt(unPayAmt); +// mainInfo.setNotPayAmt(notPayAmt); +// }else { +// mainInfo.setPayAmt(BigDecimal.ZERO); +// mainInfo.setUnPayAmt(BigDecimal.ZERO); +// mainInfo.setNotPayAmt(BigDecimal.ZERO); +// } +// +// } return mainInfo; } } diff --git a/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java b/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java index 12edf5d4..869011b9 100644 --- a/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java +++ b/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java @@ -14,6 +14,7 @@ import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.so.BmsSupplierSo; import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.excel.entity.DataCheckApplyMainInfo; import com.qs.serve.modules.his.service.HisUserSupplierService; import com.qs.serve.modules.pay.common.PaymentType; import com.qs.serve.modules.pay.entity.PayPaymentItem; @@ -24,6 +25,7 @@ import com.qs.serve.modules.pay.entity.vo.PaySupplierVo; import com.qs.serve.modules.pay.mapper.PaySupplierMapper; import com.qs.serve.modules.pay.service.PayPaymentItemService; import com.qs.serve.modules.sys.service.SysPostUserService; +import com.qs.serve.modules.tbs.mapper.TbsCostApplySumAmountMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -37,6 +39,7 @@ import com.qs.serve.modules.pay.service.PayPaymentService; import javax.validation.Valid; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -55,6 +58,7 @@ public class PayPaymentController { private PayPaymentItemService paymentItemService; private BmsSupplierService bmsSupplierService; private PaySupplierMapper paySupplierMapper; + private TbsCostApplySumAmountMapper tbsCostApplySumAmountMapper; /** * 客户费用列表 @@ -75,47 +79,60 @@ public class PayPaymentController { @NotNull public List getPaySupplierVos(BmsSupplierSo paramSo, List list) { - List supplierIds = list.stream().map(BmsSupplier::getId).collect(Collectors.toList()); - List costAmountList = paySupplierMapper.sumCostAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); - List payAmountList = paySupplierMapper.sumPayAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); - List unPayAmountList = paySupplierMapper.sumUnPayAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); - List checkAmountList = paySupplierMapper.sumCheckAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); - List supplierVoList = list.stream().map(supplier -> { - Long supplierId = Long.parseLong(supplier.getId()); + List supplierVoList = new ArrayList<>(); + list.forEach(supplier->{ + DataCheckApplyMainInfo mainInfo = tbsCostApplySumAmountMapper.selectDataCheckApplyMainInfo(supplier.getId()); PaySupplierVo supplierVo = new PaySupplierVo(); - supplierVo.setSupplierId(supplierId); + supplierVo.setSupplierId(Long.parseLong(supplier.getId())); supplierVo.setSupplierCode(supplier.getCode()); supplierVo.setSupplierName(supplier.getName()); - supplierVo.setSumAmountOfPay(BigDecimal.ZERO); - supplierVo.setSumAmountOfCost(BigDecimal.ZERO); - supplierVo.setSumAmountOfCheck(BigDecimal.ZERO); - supplierVo.setSumAmountOfUnPay(BigDecimal.ZERO); - for (PaySupplierAmountDto amountDto : costAmountList) { - if(amountDto.getSupplierId().equals(supplierId)){ - supplierVo.setSumAmountOfCost(amountDto.getSumAmount()); - break; - } - } - for (PaySupplierAmountDto amountDto : checkAmountList) { - if(amountDto.getSupplierId().equals(supplierId)){ - supplierVo.setSumAmountOfCheck(amountDto.getSumAmount()); - break; - } - } - for (PaySupplierAmountDto amountDto : payAmountList) { - if(amountDto.getSupplierId().equals(supplierId)){ - supplierVo.setSumAmountOfPay(amountDto.getSumAmount()); - break; - } - } - for (PaySupplierAmountDto amountDto : unPayAmountList) { - if(amountDto.getSupplierId().equals(supplierId)){ - supplierVo.setSumAmountOfUnPay(amountDto.getSumAmount()); - break; - } - } - return supplierVo; - }).collect(Collectors.toList()); + supplierVo.setSumAmountOfPay(mainInfo.getPayAmt()); + supplierVo.setSumAmountOfCost(mainInfo.getCostApplyAmt()); + supplierVo.setSumAmountOfCheck(mainInfo.getCheckedAmt()); + supplierVo.setSumAmountOfUnPay(mainInfo.getNotPayAmt()); + supplierVoList.add(supplierVo); + }); +// List supplierIds = list.stream().map(BmsSupplier::getId).collect(Collectors.toList()); +// List costAmountList = paySupplierMapper.sumCostAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); +// List payAmountList = paySupplierMapper.sumPayAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); +// List unPayAmountList = paySupplierMapper.sumUnPayAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); +// List checkAmountList = paySupplierMapper.sumCheckAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); +// List supplierVoList = list.stream().map(supplier -> { +// Long supplierId = Long.parseLong(supplier.getId()); +// PaySupplierVo supplierVo = new PaySupplierVo(); +// supplierVo.setSupplierId(supplierId); +// supplierVo.setSupplierCode(supplier.getCode()); +// supplierVo.setSupplierName(supplier.getName()); +// supplierVo.setSumAmountOfPay(BigDecimal.ZERO); +// supplierVo.setSumAmountOfCost(BigDecimal.ZERO); +// supplierVo.setSumAmountOfCheck(BigDecimal.ZERO); +// supplierVo.setSumAmountOfUnPay(BigDecimal.ZERO); +// for (PaySupplierAmountDto amountDto : costAmountList) { +// if(amountDto.getSupplierId().equals(supplierId)){ +// supplierVo.setSumAmountOfCost(amountDto.getSumAmount()); +// break; +// } +// } +// for (PaySupplierAmountDto amountDto : checkAmountList) { +// if(amountDto.getSupplierId().equals(supplierId)){ +// supplierVo.setSumAmountOfCheck(amountDto.getSumAmount()); +// break; +// } +// } +// for (PaySupplierAmountDto amountDto : payAmountList) { +// if(amountDto.getSupplierId().equals(supplierId)){ +// supplierVo.setSumAmountOfPay(amountDto.getSumAmount()); +// break; +// } +// } +// for (PaySupplierAmountDto amountDto : unPayAmountList) { +// if(amountDto.getSupplierId().equals(supplierId)){ +// supplierVo.setSumAmountOfUnPay(amountDto.getSumAmount()); +// break; +// } +// } +// return supplierVo; +// }).collect(Collectors.toList()); return supplierVoList; } diff --git a/src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java b/src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java index 9b9d5b04..669dc299 100644 --- a/src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java +++ b/src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.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; @@ -135,5 +136,7 @@ public class PayPaymentItem implements Serializable { @TableField(exist = false) private Integer cancelFlag; + @TableField(exist = false) + private List costApplyIds; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsCostApplySumAmountVo.java b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsCostApplySumAmountVo.java new file mode 100644 index 00000000..8cf20e6d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsCostApplySumAmountVo.java @@ -0,0 +1,65 @@ +package com.qs.serve.modules.tbs.entity.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 费用申请 VO + * @author YenHex + * @since 2022-11-09 + */ +@Data +public class TbsCostApplySumAmountVo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + /** + * 已批准(费用申请) + */ + private BigDecimal costApplyAmt; + + /** + * 已核销 + */ + private BigDecimal checkedAmt; + + /** + * 申请中 + */ + private BigDecimal checkingAmt; + + /** + * 未申请 + */ + private BigDecimal notCheckAmt; + + /** + * 不予核销 + */ + private BigDecimal dontCheckAmt; + + /** + * 已支付 + */ + private BigDecimal payAmt; + + /** + * 待支付 + */ + private BigDecimal unPayAmt; + + /** + * 不再支付 + */ + private BigDecimal notPayAmt; + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java index b60580fd..acb97548 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java @@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.math.BigDecimal; +import java.util.List; /** * 费用活动 Mapper @@ -19,16 +20,30 @@ public interface TbsActivityMapper extends BaseMapper { * @param supplierId * @return */ - @Select("select sum(total_amount) from tbs_activity where supplier_id = #{supplierId} and cost_pass_flag = 1") - BigDecimal sumSupplierActivityCost(@Param("supplierId")String supplierId); + @Select({"" + }) + BigDecimal sumSupplierActivityCost(@Param("supplierId")String supplierId, @Param("costApplyIds") List costApplyIds); /** * 不予核销金额 * @param supplierId * @return */ - @Select("select sum(release_amount) from tbs_activity where supplier_id = #{supplierId} and cost_pass_flag = 1 and release_flag = 1") - BigDecimal sumSupplierNotCheckCost(@Param("supplierId")String supplierId); + @Select({"" + }) + BigDecimal sumSupplierNotCheckCost(@Param("supplierId")String supplierId, @Param("costApplyIds") List costApplyIds); } diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplySumAmountMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplySumAmountMapper.java new file mode 100644 index 00000000..333ef888 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplySumAmountMapper.java @@ -0,0 +1,27 @@ +package com.qs.serve.modules.tbs.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.excel.entity.DataCheckApplyDetailItem; +import com.qs.serve.modules.excel.entity.DataCheckApplyMainInfo; +import com.qs.serve.modules.tbs.entity.TbsActivity; +import com.qs.serve.modules.tbs.entity.vo.TbsCostApplySumAmountVo; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.security.core.parameters.P; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 费用活动 Mapper + * @author YenHex + * @date 2022-11-08 + */ +public interface TbsCostApplySumAmountMapper { + + List selectDataCheckApplyDetailItem(@Param("supplierId")String supplierId, + @Param("costApplyIds")List costApplyIds); + + DataCheckApplyMainInfo selectDataCheckApplyMainInfo(@Param("supplierId")String supplierId); +} + diff --git a/src/main/resources/mapper/pay/PayPaymentItemMapper.xml b/src/main/resources/mapper/pay/PayPaymentItemMapper.xml index 223b9a6e..0d9707dd 100644 --- a/src/main/resources/mapper/pay/PayPaymentItemMapper.xml +++ b/src/main/resources/mapper/pay/PayPaymentItemMapper.xml @@ -79,6 +79,12 @@ and `pay_payment_item`.`del_flag` = #{query.delFlag} and `pay_payment_item`.`policy_item_id` = #{query.policyItemId} and `pay_payment_item`.`policy_item_code` = #{query.policyItemCode} + + and `pay_payment_item`.`cost_apply_id` in + + #{selectId} + + diff --git a/src/main/resources/mapper/tbs/TbsCostApplySumAmountMapper.xml b/src/main/resources/mapper/tbs/TbsCostApplySumAmountMapper.xml new file mode 100644 index 00000000..9f45e855 --- /dev/null +++ b/src/main/resources/mapper/tbs/TbsCostApplySumAmountMapper.xml @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +