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);