diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java
index 25f1ed64b..030d68d5f 100644
--- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java
+++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java
@@ -162,4 +162,10 @@ public interface InsuranceAccountDetailMapper {
* 根据id更新数据
*/
void updateById(InsuranceAccountDetailPO po);
+
+
+ /**
+ * 删除退差数据(账单月份+退差月份+缴纳状态+人员id+个税扣缴义务人)
+ */
+ void deleteRecessionData(InsuranceAccountDetailPO po);
}
diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml
index 5f2bce3dd..dbe702558 100644
--- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml
+++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml
@@ -1184,4 +1184,15 @@
WHERE id = #{id}
+
+
+ DELETE
+ FROM hrsa_bill_detail
+ WHERE delete_type = 0
+ AND bill_month = #{billMonth}
+ AND payment_status = #{paymentStatus}
+ AND payment_organization = #{paymentOrganization}
+ AND supplementary_month = #{supplementaryMonth}
+ AND employee_id = #{employeeId}
+
\ No newline at end of file
diff --git a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java
index b79df634b..0c819b984 100644
--- a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java
@@ -90,18 +90,12 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic
});
//退差数据入库
if (CollectionUtils.isNotEmpty(finalRecessionDetails)) {
-
- //
- //查询退差员工中是否已经进行有过退差记录,有过则更新
-// List haveRecessionPOS= getInsuranceAccountDetailMapper().list(InsuranceAccountDetailParam.builder()
-// .paymentStatus(PaymentStatusEnum.RECESSION.getValue())
-// .recessionMonthList(param.getRecessionMonthList())
-// .employeeIds(employeeIds)
-// .paymentOrganization(param.getPaymentOrganization())
-// .build());
- //
InsuranceAccountDetailPOEncrypt.encryptInsuranceAccountDetailPOList(finalRecessionDetails);
+ //删除已有退差记录
+ finalRecessionDetails.forEach(getInsuranceAccountDetailMapper()::deleteRecessionData);
+
+ //入库新数据
List> partition = Lists.partition((List) finalRecessionDetails, 20);
partition.forEach(getInsuranceAccountDetailMapper()::batchSaveAccountDetails);