From 55aac55195dc2bd404042ec099045fee8ac73e81 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 02 七月 2025 21:48:53 +0800 Subject: [PATCH] 代码提交 --- ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 51 insertions(+), 4 deletions(-) diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java index 5e51ccc..04b4c89 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java @@ -9,17 +9,24 @@ import com.ruoyi.project.domain.ServiceFunddetail; import com.ruoyi.project.domain.ServiceFundtax; import com.ruoyi.project.domain.vo.FundTaxVO; +import com.ruoyi.project.domain.vo.TaxMoneyByItemEO; +import com.ruoyi.project.domain.vo.TaxMoneySumEO; +import com.ruoyi.project.mapper.ServiceFundMapper; import com.ruoyi.project.mapper.ServiceFunddetailMapper; import com.ruoyi.project.mapper.ServiceFundtaxMapper; import com.ruoyi.project.service.IServiceFundService; import com.ruoyi.project.service.IServiceFunddetailService; import com.ruoyi.project.service.IServiceFundtaxService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.temporal.TemporalAdjusters; +import java.util.*; /** * 涓撳璐圭敤绠楃◣鐢宠涓籗ervice涓氬姟灞傚鐞� @@ -39,6 +46,9 @@ private IServiceFundService serviceFundService; @Autowired private ServiceFundtaxMapper serviceFundtaxMapper; + + @Autowired + private ServiceFundMapper serviceFundMapper; /** @@ -157,30 +167,67 @@ return serviceFundtaxMapper.getMaxFundTaxId(); } + /** + * 鎵归噺绠楃◣涓诲叆鍙� + * 1. 鏍¢獙鍙傛暟 + * 2. 鏍¢獙鎵规鍚堟硶鎬э紙濡傛湁蹇呰锛� + * 3. 鏌ヨ鏈壒娆℃墍鏈塖erviceFund锛堟寜id鍗囧簭锛� + * 4. 棰勬煡璇㈡湰鏈堟墍鏈夎韩浠借瘉鍙风殑绱閲戦锛岀紦瀛樺埌Map锛屾彁鍗囧悗缁畻绋庢晥鐜� + * 5. 閬嶅巻姣忎釜ServiceFund锛屾壒閲忕畻绋� + * + * @param fundTaxVO 鎵规绠楃◣鍙傛暟 + * @return 鏄惁绠楃◣鎴愬姛 + */ @Override - @Transactional(rollbackFor = Exception.class) public Boolean batchFundTax(FundTaxVO fundTaxVO) { log.info("鎵归噺绠楃◣鐨刦undTaxVO鍏ュ弬涓猴細{}", fundTaxVO); + // 1. 鏍¢獙鍙傛暟 if (fundTaxVO.getFundTaxId() == null) { throw new BaseException("鍒嗘壒绠楃◣鍑洪棶棰樹簡,璇锋鏌ュ悗鍐嶈繘琛岃绠�"); } + // 2. 鏍¢獙鎵规鍚堟硶鎬э紙浠呴檺淇敼鎿嶄綔锛� if (fundTaxVO.getAddOrupdate() == 1) { Integer maxFundTaxId = serviceFundtaxMapper.getMaxFundTaxId(); log.info("鎵归噺绠楃◣鐨刴axFundTaxId涓猴細{}", maxFundTaxId); - if (fundTaxVO.getFundTaxId() != maxFundTaxId.longValue()) { + if (!fundTaxVO.getFundTaxId().equals(Long.valueOf(maxFundTaxId))) { throw new BaseException("璇ユ壒鏁版嵁涓嶈兘绠楃◣"); } } + // 3. 鏌ヨ鏈壒娆℃墍鏈塖erviceFund锛堟寜id鍗囧簭锛� ServiceFund serviceFund = new ServiceFund(); serviceFund.setFundTaxId(fundTaxVO.getFundTaxId()); serviceFund.setDel_flag(0); List<ServiceFund> serviceFunds = serviceFundService.selectServiceFundList(serviceFund); for (ServiceFund serviceFund1 : serviceFunds) { + serviceFundMapper.updateFundIsTexById(serviceFund1.getId(), 0L); + } + + // 鎸塱d鍗囧簭鎺掑簭锛屼繚璇佸鐞嗛『搴忎竴鑷� + serviceFunds.sort(Comparator.comparing(ServiceFund::getId)); + if (CollectionUtils.isEmpty(serviceFunds)) { + log.warn("鏈煡璇㈠埌鐩稿叧ServiceFund锛宖undTaxId={}", fundTaxVO.getFundTaxId()); + return false; + } + + // 4. 棰勬煡璇㈡湰鏈堟墍鏈夎韩浠借瘉鍙风殑绱閲戦锛岀紦瀛樺埌Map锛屾彁鍗囧悗缁畻绋庢晥鐜� + TaxMoneyByItemEO taxMoneyVO = new TaxMoneyByItemEO(); + Date firstDay = Date.from(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay(ZoneId.systemDefault()).toInstant()); + taxMoneyVO.setFirstDay(firstDay); + taxMoneyVO.setTaxTime(new Date()); + Map<String, TaxMoneySumEO> tempTaxSumMap = new HashMap<>(); + List<TaxMoneySumEO> taxSum = serviceFunddetailMapper.getTaxSum(taxMoneyVO); + for (TaxMoneySumEO taxMoneySumEO : taxSum) { + tempTaxSumMap.put(taxMoneySumEO.getIDCardNo(), taxMoneySumEO); + } + + // 5. 閬嶅巻姣忎釜ServiceFund锛屾壒閲忕畻绋� + for (ServiceFund serviceFund1 : serviceFunds) { ServiceFunddetail serviceFunddetail = new ServiceFunddetail(); serviceFunddetail.setFundid(serviceFund1.getId()); List<ServiceFunddetail> serviceFunddetails = serviceFunddetailMapper.selectServiceFunddetailList(serviceFunddetail); - serviceFunddetailService.calculateTax(serviceFunddetails); + // 浼犲叆绱閲戦缂撳瓨锛屾彁鍗囩畻绋庢晥鐜� + serviceFunddetailService.calculateTax(serviceFunddetails, tempTaxSumMap); } return true; } -- Gitblit v1.9.3