Sfoglia il codice sorgente

修改回款记录

xda 2 anni fa
parent
commit
ae8df27725

+ 17 - 14
src/main/java/com/winhc/repal/service/impl/RepalChangeRecordServiceImpl.java

@@ -59,24 +59,27 @@ public class RepalChangeRecordServiceImpl extends ServiceImpl<RepalChangeRecordM
             throw new CommonException(CodeMsg.FAILED, "未查到对应的账款");
         }
         RepalBill repalBill = repalBillService.getById(repalChangeRecord.getRepalBillId());
-        // 删除之前那条记录,重新计算
-        this.calculateMoney(dto.getRepalChangeRecordId(), repalBill.getId());
-        // 新增一条
         List<RepalChangeRecord> recordList = this.list(Wrappers.lambdaQuery(RepalChangeRecord.class)
                 .eq(RepalChangeRecord::getRepalBillId, repalBill.getId())
                 .eq(RepalChangeRecord::getDeleted, DeletedStatusEnum.NORMAL.getCode())
-                .orderByDesc(RepalChangeRecord::getId)
-                .last("LIMIT 1"));
-        RepalChangeRecord entity = new RepalChangeRecord();
-        BeanUtils.copyProperties(recordList.get(0), entity);
-        entity.setPreMoney(recordList.get(0).getAfterMoney());
-        entity.setTransMoney(dto.getMoney());
-        entity.setAfterMoney(entity.getPreMoney().subtract(entity.getTransMoney()));
-        entity.setRecordDate(dto.getRecordDate());
+                .ge(RepalChangeRecord::getId, repalChangeRecord.getId()));
+        if (CollUtil.isEmpty(recordList)) {
+            return true;
+        }
+        // 单独修改一条,后续的重新计算
         RepalGroupMember member = repalGroupMemberService.getMemberByUserId(UserContextUtil.getUser().getUserId());
-        entity.setOperUserName(member.getMemberUserName());
-        entity.setOperUserId(member.getUserId());
-        this.save(entity);
+        for (int i = 0; i < recordList.size(); i++) {
+            if (i == 0) {
+                recordList.get(i).setOperUserName(member.getMemberUserName());
+                recordList.get(i).setOperUserId(member.getUserId());
+                recordList.get(i).setRecordDate(dto.getRecordDate());
+                recordList.get(i).setTransMoney(dto.getMoney());
+            } else {
+                recordList.get(i).setPreMoney(recordList.get(i - 1).getAfterMoney());
+            }
+            recordList.get(i).setAfterMoney(recordList.get(i).getPreMoney().subtract(recordList.get(i).getTransMoney()));
+        }
+        this.saveOrUpdateBatch(recordList);
         return true;
     }