Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fulixin
dsk-operate-sys-cscec
Commits
72f96185
Commit
72f96185
authored
Apr 28, 2024
by
施翔轲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
递归保存或修改每月措施费
parent
456dfb57
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
18 deletions
+41
-18
CbCostMeasureActualSaveBo.java
...va/com/dsk/cscec/domain/bo/CbCostMeasureActualSaveBo.java
+5
-3
CbCostMeasureServiceImpl.java
.../com/dsk/cscec/service/impl/CbCostMeasureServiceImpl.java
+36
-15
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/bo/CbCostMeasureActualSaveBo.java
View file @
72f96185
...
@@ -13,6 +13,7 @@ import javax.validation.constraints.NotNull;
...
@@ -13,6 +13,7 @@ import javax.validation.constraints.NotNull;
import
javax.validation.constraints.Pattern
;
import
javax.validation.constraints.Pattern
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
@Data
@Data
public
class
CbCostMeasureActualSaveBo
{
public
class
CbCostMeasureActualSaveBo
{
...
@@ -78,7 +79,8 @@ public class CbCostMeasureActualSaveBo {
...
@@ -78,7 +79,8 @@ public class CbCostMeasureActualSaveBo {
*/
*/
private
String
updateId
;
private
String
updateId
;
/**
* 子集
*/
private
List
<
CbCostMeasureActualSaveBo
>
children
;
}
}
\ No newline at end of file
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/CbCostMeasureServiceImpl.java
View file @
72f96185
package
com
.
dsk
.
cscec
.
service
.
impl
;
package
com
.
dsk
.
cscec
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.io.file.FileNameUtil
;
import
cn.hutool.core.io.file.FileNameUtil
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.lang.tree.Tree
;
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.TreeNodeConfig
;
import
cn.hutool.core.lang.tree.TreeUtil
;
import
cn.hutool.core.lang.tree.TreeUtil
;
import
cn.hutool.core.math.MathUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ReUtil
;
import
cn.hutool.core.util.ReUtil
;
...
@@ -21,9 +18,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
...
@@ -21,9 +18,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.dsk.common.excel.ExcelResult
;
import
com.dsk.common.excel.ExcelResult
;
import
com.dsk.common.helper.LoginHelper
;
import
com.dsk.common.utils.JsonUtils
;
import
com.dsk.common.utils.JsonUtils
;
import
com.dsk.common.utils.
TreeBuild
Utils
;
import
com.dsk.common.utils.
String
Utils
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.cscec.constant.CbProjectConstants
;
import
com.dsk.cscec.constant.CbProjectConstants
;
import
com.dsk.cscec.domain.*
;
import
com.dsk.cscec.domain.*
;
...
@@ -60,6 +56,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -60,6 +56,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
private
final
String
firstPattern
=
"[\\((]*[一|二|三|四|五|六|七|八|九|十]+[\\))]*"
;
private
final
String
firstPattern
=
"[\\((]*[一|二|三|四|五|六|七|八|九|十]+[\\))]*"
;
private
final
Pattern
secondPattern
=
Pattern
.
compile
(
"^\\d+(\\.\\d+)*$"
);
private
final
Pattern
secondPattern
=
Pattern
.
compile
(
"^\\d+(\\.\\d+)*$"
);
private
final
Pattern
pattern3
=
Pattern
.
compile
(
"^([1-9][0-9]*|0)$"
);
private
final
Pattern
pattern3
=
Pattern
.
compile
(
"^([1-9][0-9]*|0)$"
);
private
Long
planMeasureIdTemp
;
@Autowired
@Autowired
private
CbProjectRecordService
cbProjectRecordService
;
private
CbProjectRecordService
cbProjectRecordService
;
...
@@ -197,7 +194,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -197,7 +194,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
treeNode
.
setId
(
object
.
getId
());
//id
treeNode
.
setId
(
object
.
getId
());
//id
treeNode
.
setParentId
(
object
.
getParentId
());
//父id
treeNode
.
setParentId
(
object
.
getParentId
());
//父id
// 扩展属性 ...
// 扩展属性 ...
treeNode
.
putExtra
(
"actualId"
,
object
.
getActualId
());
treeNode
.
putExtra
(
"actualId"
,
object
.
getActualId
());
treeNode
.
putExtra
(
"itemContent"
,
object
.
getItemContent
());
treeNode
.
putExtra
(
"itemContent"
,
object
.
getItemContent
());
treeNode
.
putExtra
(
"number"
,
object
.
getNumber
());
treeNode
.
putExtra
(
"number"
,
object
.
getNumber
());
treeNode
.
putExtra
(
"workContent"
,
object
.
getWorkContent
());
treeNode
.
putExtra
(
"workContent"
,
object
.
getWorkContent
());
...
@@ -232,23 +229,47 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -232,23 +229,47 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
@Override
@Override
public
void
saveBatchCostMeasureActual
(
List
<
CbCostMeasureActualSaveBo
>
boList
)
{
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
<>();
List
<
CbCostMeasureActual
>
saveList
=
new
ArrayList
<>();
planMeasureIdTemp
=
planMeasureId
;
for
(
CbCostMeasureActualSaveBo
cbCostMeasureActualSaveBo
:
boList
)
{
for
(
CbCostMeasureActualSaveBo
cbCostMeasureActualSaveBo
:
boList
)
{
CbCostMeasureActual
cbCostMeasureActual
=
new
CbCostMeasureActual
();
CbCostMeasureActual
cbCostMeasureActual
=
new
CbCostMeasureActual
();
BeanUtil
.
copyProperties
(
cbCostMeasureActualSaveBo
,
cbCostMeasureActual
);
BeanUtil
.
copyProperties
(
cbCostMeasureActualSaveBo
,
cbCostMeasureActual
);
if
(
ObjectUtil
.
isNotNull
(
planMeasureId
))
{
cbCostMeasureActual
.
setPlanMeasureId
(
planMeasureIdTemp
++);
}
if
(
StringUtils
.
isNotEmpty
(
month
))
{
cbCostMeasureActual
.
setMonth
(
month
);
}
cbCostMeasureActual
.
setDelFlag
(
0
);
cbCostMeasureActual
.
setDelFlag
(
0
);
// cbCostMeasureActual.setUpdateId(LoginHelper.getUserId());
// cbCostMeasureActual.setUpdateId(LoginHelper.getUserId());
// cbCostMeasureActual.setUpdateUser(LoginHelper.getUsername());
// cbCostMeasureActual.setUpdateUser(LoginHelper.getUsername());
// 查询计划成本累积实际成本
// 查询计划成本累积实际成本
BigDecimal
bigDecimal
=
cbCostMeasureActualService
.
selectSumData
(
cbCostMeasureActualSaveBo
);
BigDecimal
bigDecimal
=
cbCostMeasureActualService
.
selectSumData
(
cbCostMeasureActualSaveBo
);
cbCostMeasureActual
.
setCurrentProjectVolume
(
NumberUtil
.
add
(
bigDecimal
,
cbCostMeasureActual
.
getProjectVolume
()));
cbCostMeasureActual
.
setCurrentProjectVolume
(
NumberUtil
.
add
(
bigDecimal
,
cbCostMeasureActual
.
getProjectVolume
()));
saveList
.
add
(
cbCostMeasureActual
);
saveList
.
add
(
cbCostMeasureActual
);
List
<
CbCostMeasureActualSaveBo
>
childrenList
=
cbCostMeasureActualSaveBo
.
getChildren
();
if
(
ObjectUtil
.
isNotNull
(
childrenList
)
&&
!
childrenList
.
isEmpty
())
{
this
.
recursionSaveBatchCostMeasureActual
(
childrenList
,
planMeasureIdTemp
,
cbCostMeasureActualSaveBo
.
getMonth
());
}
}
}
cbCostMeasureActualService
.
saveOrUpdateBatch
(
saveList
);
cbCostMeasureActualService
.
saveOrUpdateBatch
(
saveList
);
CbCostMeasureActual
cbCostMeasureActual
=
saveList
.
get
(
0
);
//
CbCostMeasureActual cbCostMeasureActual = saveList.get(0);
//todo 查询最新的二级费用合计, 用于更新一级费用项
//todo 查询最新的二级费用合计, 用于更新一级费用项
//
cbCostMeasureActualService.selectMonthProjectVolumeByLevel(1,cbCostMeasureActual.GET);
//
cbCostMeasureActualService.selectMonthProjectVolumeByLevel(1,cbCostMeasureActual.GET);
//更新
//更新
}
}
...
@@ -380,8 +401,8 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -380,8 +401,8 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
public
String
lastProjectVolume
(
Long
measuresId
)
{
public
String
lastProjectVolume
(
Long
measuresId
)
{
LambdaQueryWrapper
<
CbCostMeasureActual
>
lambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
LambdaQueryWrapper
<
CbCostMeasureActual
>
lambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
lambdaQueryWrapper
.
eq
(
CbCostMeasureActual:
:
getPlanMeasureId
,
measuresId
)
lambdaQueryWrapper
.
eq
(
CbCostMeasureActual:
:
getPlanMeasureId
,
measuresId
)
.
isNotNull
(
CbCostMeasureActual:
:
getPushTime
)
.
isNotNull
(
CbCostMeasureActual:
:
getPushTime
)
.
orderByDesc
(
CbCostMeasureActual:
:
getUpdateTime
).
last
(
" limit 1"
);
.
orderByDesc
(
CbCostMeasureActual:
:
getUpdateTime
).
last
(
" limit 1"
);
CbCostMeasureActual
cbCostMeasureActual
=
cbCostMeasureActualService
.
getOne
(
lambdaQueryWrapper
);
CbCostMeasureActual
cbCostMeasureActual
=
cbCostMeasureActualService
.
getOne
(
lambdaQueryWrapper
);
if
(
ObjectUtil
.
isNotEmpty
(
cbCostMeasureActual
))
{
if
(
ObjectUtil
.
isNotEmpty
(
cbCostMeasureActual
))
{
return
cbCostMeasureActual
.
getPushDataJson
();
return
cbCostMeasureActual
.
getPushDataJson
();
...
@@ -408,10 +429,10 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -408,10 +429,10 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
List
<
CbCostMeasureActualVo
>
monthActualCostList
=
cbCostMeasureActualService
.
getMonthActualCostList
(
projectId
,
month
);
List
<
CbCostMeasureActualVo
>
monthActualCostList
=
cbCostMeasureActualService
.
getMonthActualCostList
(
projectId
,
month
);
if
(
CollectionUtil
.
isNotEmpty
(
monthActualCostList
))
{
if
(
CollectionUtil
.
isNotEmpty
(
monthActualCostList
))
{
map
=
monthActualCostList
.
stream
()
map
=
monthActualCostList
.
stream
()
.
collect
(
Collectors
.
toMap
(
.
collect
(
Collectors
.
toMap
(
CbCostMeasureActualVo:
:
getItemContent
,
// 把CbCostMeasureActualVo属性提取为map的key
CbCostMeasureActualVo:
:
getItemContent
,
// 把CbCostMeasureActualVo属性提取为map的key
CbCostMeasureActualVo:
:
getCostEffective
// 把CbCostMeasureActualVo属性提取为map的value
CbCostMeasureActualVo:
:
getCostEffective
// 把CbCostMeasureActualVo属性提取为map的value
));
));
}
}
for
(
CbProjectExpenseSummary
cbProjectExpenseSummary
:
cbProjectExpenseSummaries
)
{
for
(
CbProjectExpenseSummary
cbProjectExpenseSummary
:
cbProjectExpenseSummaries
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment