Commit 72f96185 authored by 施翔轲's avatar 施翔轲

递归保存或修改每月措施费

parent 456dfb57
......@@ -13,6 +13,7 @@ import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class CbCostMeasureActualSaveBo {
......@@ -78,7 +79,8 @@ public class CbCostMeasureActualSaveBo {
*/
private String updateId;
/**
* 子集
*/
private List<CbCostMeasureActualSaveBo> children;
}
\ No newline at end of file
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNode;
import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.math.MathUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReUtil;
......@@ -21,9 +18,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.excel.ExcelResult;
import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.JsonUtils;
import com.dsk.common.utils.TreeBuildUtils;
import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.cscec.constant.CbProjectConstants;
import com.dsk.cscec.domain.*;
......@@ -60,6 +56,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
private final String firstPattern = "[\\((]*[一|二|三|四|五|六|七|八|九|十]+[\\))]*";
private final Pattern secondPattern = Pattern.compile("^\\d+(\\.\\d+)*$");
private final Pattern pattern3 = Pattern.compile("^([1-9][0-9]*|0)$");
private Long planMeasureIdTemp;
@Autowired
private CbProjectRecordService cbProjectRecordService;
......@@ -197,7 +194,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
treeNode.setId(object.getId());//id
treeNode.setParentId(object.getParentId());//父id
// 扩展属性 ...
treeNode.putExtra("actualId",object.getActualId());
treeNode.putExtra("actualId", object.getActualId());
treeNode.putExtra("itemContent", object.getItemContent());
treeNode.putExtra("number", object.getNumber());
treeNode.putExtra("workContent", object.getWorkContent());
......@@ -232,23 +229,47 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
@Override
public void saveBatchCostMeasureActual(List<CbCostMeasureActualSaveBo> boList) {
//递归
this.recursionSaveBatchCostMeasureActual(boList, boList.get(0).getId(), null);
}
/**
* 递归保存或修改每月措施费
*
* @param boList 每月措施费集合
* @param planMeasureId 计划成本措施费id
* @param month 月份
*/
public void recursionSaveBatchCostMeasureActual(List<CbCostMeasureActualSaveBo> boList, Long planMeasureId, String month) {
List<CbCostMeasureActual> saveList = new ArrayList<>();
planMeasureIdTemp = planMeasureId;
for (CbCostMeasureActualSaveBo cbCostMeasureActualSaveBo : boList) {
CbCostMeasureActual cbCostMeasureActual = new CbCostMeasureActual();
BeanUtil.copyProperties(cbCostMeasureActualSaveBo, cbCostMeasureActual);
if (ObjectUtil.isNotNull(planMeasureId)) {
cbCostMeasureActual.setPlanMeasureId(planMeasureIdTemp++);
}
if (StringUtils.isNotEmpty(month)) {
cbCostMeasureActual.setMonth(month);
}
cbCostMeasureActual.setDelFlag(0);
// cbCostMeasureActual.setUpdateId(LoginHelper.getUserId());
// cbCostMeasureActual.setUpdateUser(LoginHelper.getUsername());
// 查询计划成本累积实际成本
BigDecimal bigDecimal = cbCostMeasureActualService.selectSumData(cbCostMeasureActualSaveBo);
cbCostMeasureActual.setCurrentProjectVolume(NumberUtil.add(bigDecimal,cbCostMeasureActual.getProjectVolume()));
cbCostMeasureActual.setCurrentProjectVolume(NumberUtil.add(bigDecimal, cbCostMeasureActual.getProjectVolume()));
saveList.add(cbCostMeasureActual);
List<CbCostMeasureActualSaveBo> childrenList = cbCostMeasureActualSaveBo.getChildren();
if (ObjectUtil.isNotNull(childrenList) && !childrenList.isEmpty()) {
this.recursionSaveBatchCostMeasureActual(childrenList, planMeasureIdTemp, cbCostMeasureActualSaveBo.getMonth());
}
}
cbCostMeasureActualService.saveOrUpdateBatch(saveList);
CbCostMeasureActual cbCostMeasureActual = saveList.get(0);
//CbCostMeasureActual cbCostMeasureActual = saveList.get(0);
//todo 查询最新的二级费用合计, 用于更新一级费用项
// cbCostMeasureActualService.selectMonthProjectVolumeByLevel(1,cbCostMeasureActual.GET);
//cbCostMeasureActualService.selectMonthProjectVolumeByLevel(1,cbCostMeasureActual.GET);
//更新
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment