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