|
@@ -51,6 +51,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.Field;
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -224,7 +225,6 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
|
|
@Override
|
|
@Override
|
|
@DSTransactional
|
|
@DSTransactional
|
|
public void addOrEdit(CostControlDto costControlDto) {
|
|
public void addOrEdit(CostControlDto costControlDto) {
|
|
- this.saveOrUpdate(costControlDto);
|
|
|
|
|
|
|
|
//保存明细信息
|
|
//保存明细信息
|
|
List<CostControlDetailDto> costControlDetailList = costControlDto.getCostControlDetailList();
|
|
List<CostControlDetailDto> costControlDetailList = costControlDto.getCostControlDetailList();
|
|
@@ -232,6 +232,15 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
|
|
costControlDetailList = new ArrayList<>();
|
|
costControlDetailList = new ArrayList<>();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //计算总金额
|
|
|
|
+ BigDecimal sumMoney = costControlDetailList.stream()
|
|
|
|
+ .map(CostControlDetail::getMoney)
|
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
+ costControlDto.setAmount(sumMoney);
|
|
|
|
+
|
|
|
|
+ this.saveOrUpdate(costControlDto);
|
|
|
|
+
|
|
|
|
+
|
|
//删除无效数据
|
|
//删除无效数据
|
|
List<Long> idList = costControlDetailList.stream().map(BaseIdPo::getId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
List<Long> idList = costControlDetailList.stream().map(BaseIdPo::getId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
List<CostControlDetail> delList = costControlDetailService.list(q -> q.eq(CostControlDetail::getCostControlId, costControlDto.getId()).notIn(ObjectUtil.isNotEmpty(idList), BaseIdPo::getId, idList));
|
|
List<CostControlDetail> delList = costControlDetailService.list(q -> q.eq(CostControlDetail::getCostControlId, costControlDto.getId()).notIn(ObjectUtil.isNotEmpty(idList), BaseIdPo::getId, idList));
|