From 64bce2eb858b95e7851b6c05fa34938dbfb701e6 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期四, 30 五月 2024 16:49:13 +0800 Subject: [PATCH] 修改因算税时间一税,导致获取历史数据不准的问题(加上xh字段) 个税汇总里的功能,删除时一个fund时,将相应的fund的“算税时间” 和"funddetail"表里的“算税时间”、“序号”置空 --- ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml | 18 ++++++++- ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml | 3 + ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetailVO.java | 6 +++ ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java | 2 + ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java | 12 +++++- ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java | 4 ++ ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TaxMoneyByItemEO.java | 5 ++ ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java | 18 +++++++-- ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java | 42 ++++++++++++++++++-- 9 files changed, 96 insertions(+), 14 deletions(-) diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java index dbe6445..99ce37a 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java @@ -216,7 +216,9 @@ @Excel(name = "鍙戠エ寮犳暟") private Long invoicecount; - /** $column.columnComment */ + /** + * $column.columnComment + */ @ApiModelProperty("$column.columnComment") @Excel(name = "涓婁紶鏃堕棿") private BigDecimal reimbursementamount; @@ -337,14 +339,16 @@ * 闄勪欢鏂囦欢鍦板潃 */ @ApiModelProperty("闄勪欢鏂囦欢鍦板潃") - @TableField(value = "annexfiles",updateStrategy = FieldStrategy.IGNORED) + @TableField(value = "annexfiles", updateStrategy = FieldStrategy.IGNORED) private String annexfiles; /** * 闄勪欢鏂囦欢鍦板潃 */ - /** 鍙戠エ闄勪欢 */ - @TableField(value = "invoicefiles",updateStrategy =FieldStrategy.IGNORED) + /** + * 鍙戠エ闄勪欢 + */ + @TableField(value = "invoicefiles", updateStrategy = FieldStrategy.IGNORED) @ApiModelProperty("鍙戠エ闄勪欢") @Excel(name = "鍙戠エ闄勪欢") private String invoicefiles; @@ -382,5 +386,11 @@ @ApiModelProperty("閮ㄩ棬鍚嶇О") private String deptName; + /** + * 搴忓彿 + */ + @ApiModelProperty("搴忓彿") + private Long xh; + } diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetailVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetailVO.java index 7bc954e..3690179 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetailVO.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetailVO.java @@ -288,6 +288,12 @@ private String servicesscope; /** + * 搴忓彿 + */ + @ApiModelProperty("搴忓彿") + private Long xh; + + /** * 鏈嶅姟鑼冨洿鍚嶇О */ @ApiModelProperty("鏈嶅姟鑼冨洿鍚嶇О") diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TaxMoneyByItemEO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TaxMoneyByItemEO.java index 936ec16..3beb534 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TaxMoneyByItemEO.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TaxMoneyByItemEO.java @@ -42,4 +42,9 @@ */ private Long fundID; + /** + * 搴忓彿 + */ + private Long xh; + } diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java index ee1c509..7c564a7 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java @@ -55,6 +55,8 @@ TaxMoneySumEO getTaxSum(TaxMoneyByItemEO taxMoneyByItemEO); + Long getMaxXH(TaxMoneyByItemEO taxMoneyByItemEO); + List<ServiceFunddetail> totlaTax(List<Long> fundids); } diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java index e3126ac..5cc56c4 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java @@ -708,7 +708,7 @@ @Override public List<SpFinancialExpensesFundOut> getExpertfeeList(SpSelectExpertfee spSelectExpertfee) { - log.info("spSelectExpertfee鐨勫叆鍙備负锛歿}",spSelectExpertfee); + log.info("spSelectExpertfee鐨勫叆鍙備负锛歿}", spSelectExpertfee); return serviceFundMapper.getExpertfeeList(spSelectExpertfee.getPaApplyType(), spSelectExpertfee.getPfundtaxid(), spSelectExpertfee.getDonorname(), spSelectExpertfee.getPadepartid(), spSelectExpertfee.getPausername()); } @@ -1190,6 +1190,14 @@ @Transactional(rollbackFor = Exception.class) public Boolean updateFundTaxIdById(Long id, Long fundTaxId) { - return serviceFundMapper.updateFundTaxIdById(id, fundTaxId); + //灏唂und閲岀殑绠楃◣鏃堕棿锛屼笌璇︽儏閲岀殑鐗堢◣鏃堕棿鍏ㄦ竻绌� + Boolean aBoolean = serviceFundMapper.updateFundTaxIdById(id, fundTaxId); + ServiceFunddetail serviceFunddetail = new ServiceFunddetail(); + serviceFunddetail.setFundid(id); + serviceFunddetail.setTaxTime(null); + serviceFunddetail.setXh(null); + boolean b = serviceFunddetailMapper.updateTaxTime(serviceFunddetail); + + return b; } } diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java index 26f1267..a7038e2 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java @@ -276,13 +276,23 @@ if (CollectionUtils.isEmpty(serviceFunddetails)) { throw new BaseException("绠楃◣鏉′欢涓虹┖锛岃妫�鏌ュ悗锛屽啀杩涜璁$畻"); } + // 鍏堝serviceFunddetails鎺掑簭 + Comparator<ServiceFunddetail> customComparator = Comparator.comparing(obj -> { + if (ObjectUtils.isEmpty(obj.getTaxTime())) { + return 1; // 杩斿洖1琛ㄧず瀛楁涓虹┖鐨勫璞℃帓鍦ㄥ悗闈� + } else { + return 0; // 杩斿洖0琛ㄧず瀛楁涓嶄负绌虹殑瀵硅薄淇濇寔鍘熼『搴� + } + }); + Collections.sort(serviceFunddetails, customComparator); + //杩欎釜鏄负浜嗚幏鍙杅und_tax_time Long fundid = serviceFunddetails.get(0).getFundid(); log.info("绠楃◣鐨刦undid鐨勫�间负锛歿}", fundid); ServiceFund serviceFund1 = serviceFundMapper.selectById(fundid); log.info("fund琛ㄧ殑fundtextime鍊间负锛歿}", serviceFund1.getFundtaxtime()); - //鐢ㄤ簬涓存椂淇濆瓨宸茬粡绠楀ソ鐨�"璐圭敤璇︽儏鏁版嵁" +// //鐢ㄤ簬涓存椂淇濆瓨宸茬粡绠楀ソ鐨�"璐圭敤璇︽儏鏁版嵁" List<ServiceFunddetail> temporarySave = new ArrayList<>(); //淇濆瓨鎬荤◣鍓嶉噾棰濓紙鐢ㄤ簬鏇存柊fund琛ㄩ噷鐨勶級 BigDecimal pretaxcost = BigDecimal.valueOf(0.00); @@ -309,8 +319,16 @@ //鑾峰彇褰撴湀鐨勭涓�澶� Date firstDay = Date.from(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay(ZoneId.systemDefault()).toInstant()); -// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -// String firstDatStr = dateFormat.format(firstDay); + //鑾峰彇鍒板綋鍓嶄汉鐨勬湰鏈堢畻绋庡簭鍙锋渶澶у�� + TaxMoneyByItemEO taxMoneyByItemEO = new TaxMoneyByItemEO(); + taxMoneyByItemEO.setFirstDay(firstDay); + taxMoneyByItemEO.setIDCard(serviceFunddetail.getIdcardno()); + taxMoneyByItemEO.setTaxTime(new Date()); + Long maxXH = serviceFunddetailMapper.getMaxXH(taxMoneyByItemEO); + if (maxXH == null) { + maxXH = 0L; + } + TaxMoneyByItemEO taxMoneyVO = new TaxMoneyByItemEO(); if (serviceFund1.getFundtaxtime() != null) { taxMoneyVO.setTaxTime(serviceFund1.getFundtaxtime()); @@ -320,6 +338,11 @@ taxMoneyVO.setFirstDay(firstDay); taxMoneyVO.setFundID(serviceFunddetail.getFundid()); taxMoneyVO.setIDCard(serviceFunddetail.getIdcardno()); + if (serviceFunddetail.getXh() != null) { + taxMoneyVO.setXh(serviceFunddetail.getXh()); + } else { + taxMoneyVO.setXh(maxXH + 1); + } //鏌ュ嚭绋庡墠銆佺◣銆佺◣鍚庣殑鎬婚锛堜笉鍖呭惈鏈锛� TaxMoneySumEO taxSum = serviceFunddetailMapper.getTaxSum(taxMoneyVO); logger.info("鏌ヨ鐨則axSum鐨勫�� 锛� {}", taxSum); @@ -344,6 +367,9 @@ } continue; } + } + if (serviceFunddetail.getXh() == null) { + serviceFunddetail.setXh(maxXH + 1); } if (StringUtils.isEmpty(serviceFunddetail.getServicesscopename()) || !serviceFunddetail.getServicesscopename().contains("绋庡悗")) { @@ -373,10 +399,11 @@ logger.info("鎵撳嵃绋庡墠serviceFunddetail3鏁版嵁 :{}", serviceFunddetail3); // 灏嗚鏉℃暟鎹洿鏂� + boolean b = this.updateById(serviceFunddetail3); pretaxcost = pretaxcost.add(BigDecimal.valueOf(serviceFunddetail.getAmount())); taxedcost = taxedcost.add(BigDecimal.valueOf(serviceFunddetail.getTaxedamount())); - // 鎶婅鏁版嵁锛屾斁鍒颁复鏃剁殑闆嗗悎涓� +// // 鎶婅鏁版嵁锛屾斁鍒颁复鏃剁殑闆嗗悎涓� temporarySave.add(serviceFunddetail3); } else if (serviceFunddetail.getServicesscopename().contains("绋庡悗")) { logger.info("璁$畻绋庡悗淇℃伅寮�濮嬶細{}", serviceFunddetail); @@ -403,11 +430,16 @@ serviceFunddetail3.setTaxTime(serviceFund1.getFundtaxtime()); } logger.info("鎵撳嵃serviceFunddetail3:{}", serviceFunddetail3); + //鑾峰彇鍒板綋鍓嶄汉鐨勬湰鏈堢畻绋庡簭鍙锋渶澶у�� + TaxMoneyByItemEO byItemEO = new TaxMoneyByItemEO(); + byItemEO.setFirstDay(firstDay); + byItemEO.setIDCard(serviceFunddetail.getIdcardno()); + byItemEO.setTaxTime(new Date()); // 灏嗚鏉℃暟鎹洿鏂� updateById(serviceFunddetail3); pretaxcost = pretaxcost.add(BigDecimal.valueOf(serviceFunddetail3.getAmount())); taxedcost = taxedcost.add(BigDecimal.valueOf(serviceFunddetail3.getTaxedamount())); - // 鎶婅鏁版嵁锛屾斁鍒颁复鏃剁殑闆嗗悎涓� +// // 鎶婅鏁版嵁锛屾斁鍒颁复鏃剁殑闆嗗悎涓� temporarySave.add(serviceFunddetail3); } } 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 e34b7e8..5e51ccc 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 @@ -14,6 +14,7 @@ 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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -26,6 +27,7 @@ * @author ruoyi * @date 2024-03-13 */ +@Slf4j @Service public class ServiceFundtaxServiceImpl extends ServiceImpl<ServiceFundtaxMapper, ServiceFundtax> implements IServiceFundtaxService { @@ -158,11 +160,13 @@ @Override @Transactional(rollbackFor = Exception.class) public Boolean batchFundTax(FundTaxVO fundTaxVO) { + log.info("鎵归噺绠楃◣鐨刦undTaxVO鍏ュ弬涓猴細{}", fundTaxVO); if (fundTaxVO.getFundTaxId() == null) { throw new BaseException("鍒嗘壒绠楃◣鍑洪棶棰樹簡,璇锋鏌ュ悗鍐嶈繘琛岃绠�"); } if (fundTaxVO.getAddOrupdate() == 1) { Integer maxFundTaxId = serviceFundtaxMapper.getMaxFundTaxId(); + log.info("鎵归噺绠楃◣鐨刴axFundTaxId涓猴細{}", maxFundTaxId); if (fundTaxVO.getFundTaxId() != maxFundTaxId.longValue()) { throw new BaseException("璇ユ壒鏁版嵁涓嶈兘绠楃◣"); } diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml index 81d136d..16808bb 100644 --- a/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml +++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml @@ -277,7 +277,8 @@ <update id="updateFundTaxIdById"> update service_fund <set> - fund_tax_id = #{fundTaxId} + fund_tax_id = #{fundTaxId}, + fundtaxtime = null </set> where id = #{id} </update> diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml index 9f09a61..f59fd3a 100644 --- a/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml +++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml @@ -64,11 +64,13 @@ <result property="invoicefiles" column="InvoiceFiles"/> <result property="deptId" column="dept_id"/> <result property="deptName" column="dept_name"/> + <result property="xh" column="xh"/> </resultMap> <sql id="selectServiceFunddetailVo"> select ID, fundID, + xh, InfoId, DonorNo, dept_id, @@ -265,6 +267,7 @@ update com.ruoyi.project.domain. <set> tax_time = #{taxTime}, + xh = #{xh} </set> where fundID = #{fundid} </update> @@ -275,7 +278,8 @@ FROM service_funddetail a, service_fund b where a.FundID = b.id - and a.tax_time < #{taxTime} + and a.tax_time <= #{taxTime} + and a.xh < #{xh} and a.tax_time >= #{firstDay} and TRIM(a.IDCardNo) = #{IDCard} and a.del_flag != 1 @@ -286,6 +290,16 @@ and b.del_flag != 1 and b.ApplyType in (1 , 2) + </select> + + <select id="getMaxXH" parameterType="com.ruoyi.project.domain.vo.TaxMoneyByItemEO" + resultType="Long"> + SELECT max(xh) + FROM service_funddetail + where tax_time <= #{taxTime} + and tax_time >= #{firstDay} + and TRIM(IDCardNo) = #{IDCard} + and del_flag != 1 </select> <select id="totlaTax" resultType="com.ruoyi.project.domain.ServiceFunddetail"> @@ -303,4 +317,4 @@ call `SP_STAT_BONUS`(#{PABEGTIME,mode=IN,jdbcType=VARCHAR},#{PAENDTIME,mode=IN,jdbcType=VARCHAR},#{PADEPTNO,mode=IN,jdbcType=VARCHAR},#{PAUSERNO,mode=IN,jdbcType=VARCHAR},#{PABONUSTYPE,mode=IN,jdbcType=VARCHAR}) </select> -</mapper> \ No newline at end of file +</mapper> -- Gitblit v1.9.3