Ver código fonte

修改回款记录

xda 2 anos atrás
pai
commit
1c5d6c3412

+ 8 - 0
src/main/java/com/winhc/repal/model/dto/ReturnedEditDTO.java

@@ -1,10 +1,13 @@
 package com.winhc.repal.model.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 
 /**
  * @Description: ReturnedEditDTO
@@ -20,4 +23,9 @@ public class ReturnedEditDTO {
 
     @ApiModelProperty("金额,string")
     private BigDecimal money;
+
+    @ApiModelProperty("回款日期,string, yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate recordDate;
 }

+ 10 - 0
src/main/java/com/winhc/repal/service/RepalChangeRecordService.java

@@ -71,5 +71,15 @@ public interface RepalChangeRecordService extends IService<RepalChangeRecord> {
      */
     Boolean delReturnedById(Long repalChangeRecordId);
 
+    /**
+     * 删除当前记录然后重新计算金额
+     * @param repalChangeRecordId repalChangeRecordId
+     * @param legalCloudId legalCloudId
+     * @return java.lang.Boolean
+     * @author xda
+     * @date 2022/6/8 17:56
+     */
+    Boolean calculateMoney(Long repalChangeRecordId, Long legalCloudId);
+
 
 }

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

@@ -15,6 +15,7 @@ import com.winhc.repal.service.RepalBillService;
 import com.winhc.repal.service.RepalChangeRecordService;
 import com.winhc.repal.service.RepalGroupMemberService;
 import com.winhc.repal.util.UserContextUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -58,23 +59,24 @@ 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())
-                .ge(RepalChangeRecord::getId, dto.getRepalChangeRecordId()));
+                .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());
         RepalGroupMember member = repalGroupMemberService.getMemberByUserId(UserContextUtil.getUser().getUserId());
-        // 重新计算金额
-        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).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);
+        entity.setOperUserName(member.getMemberUserName());
+        entity.setOperUserId(member.getUserId());
+        this.save(entity);
         return true;
     }
 
@@ -105,8 +107,14 @@ public class RepalChangeRecordServiceImpl extends ServiceImpl<RepalChangeRecordM
     public Boolean delReturnedById(Long repalChangeRecordId) {
         RepalChangeRecord repalChangeRecord = this.getById(repalChangeRecordId);
         RepalBill repalBill = repalBillService.getById(repalChangeRecord.getRepalBillId());
+        this.calculateMoney(repalChangeRecordId, repalBill.getId());
+        return true;
+    }
+
+    @Override
+    public Boolean calculateMoney(Long repalChangeRecordId, Long legalCloudId) {
         List<RepalChangeRecord> recordList = this.list(Wrappers.lambdaQuery(RepalChangeRecord.class)
-                .eq(RepalChangeRecord::getRepalBillId, repalBill.getId())
+                .eq(RepalChangeRecord::getRepalBillId, legalCloudId)
                 .eq(RepalChangeRecord::getDeleted, DeletedStatusEnum.NORMAL.getCode())
                 .ge(RepalChangeRecord::getId, repalChangeRecordId));
         if (CollUtil.isEmpty(recordList)) {