1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.gx.obe.server.management.boq.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gx.obe.server.common.utils.IDUtils;
import com.gx.obe.server.common.utils.StringUtils;
import com.gx.obe.server.management.boq.dao.ObeServiceCostsMapper;
import com.gx.obe.server.management.boq.entity.ObeServiceCosts;
import com.gx.obe.server.management.boq.service.ObeServiceCostsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* @author mazc
* @Description:
*/
@Service
@Transactional
public class ObeServiceCostsServiceImpl extends ServiceImpl<ObeServiceCostsMapper, ObeServiceCosts> implements ObeServiceCostsService {
@Autowired
private ObeServiceCostsMapper obeServiceCostsMapper;
/**
* @param ObeServiceCostsList
* @Description: 批量更新
* @author mazc
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer updateByBatch(List<ObeServiceCosts> ObeServiceCostsList) {
return obeServiceCostsMapper.updateBatchList(ObeServiceCostsList);
}
/**
* @param ObeServiceCostsList
* @Description: 批量插入
* @author mazc
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer insertByBatch(List<ObeServiceCosts> ObeServiceCostsList) {
return obeServiceCostsMapper.insertByBatch(ObeServiceCostsList);
}
/**
* @param ObeServiceCosts
* @param attributes
* @Description: 指定字段修改
* @author chenxw
*/
@Override
public boolean updateAssignProperty(ObeServiceCosts ObeServiceCosts, String[] attributes) {
return obeServiceCostsMapper.updateAssignProperty(ObeServiceCosts, attributes) > 0;
}
/**
* @param ObeServiceCostsList
* @param attributes
* @Description: 批量指定字段修改
* @author chenxw
*/
@Override
public Integer batchUpdateProperty(List<ObeServiceCosts> ObeServiceCostsList, String[] attributes) {
return obeServiceCostsMapper.batchUpdateProperty(ObeServiceCostsList, attributes);
}
/**
* @param ObeServiceCostsList
* @param attributes
* @return
* @Description: 批量添加或跟新
* @author chenxw
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer batchSaveOrUpdate(List<ObeServiceCosts> ObeServiceCostsList, String[] attributes) {
List<ObeServiceCosts> insertObeServiceCostsList = new ArrayList<>();
List<ObeServiceCosts> updateObeServiceCostsList = new ArrayList<>();
for (ObeServiceCosts ObeServiceCosts : ObeServiceCostsList) {
if (StringUtils.isEmpty(ObeServiceCosts.getId())) {
ObeServiceCosts.setId(IDUtils.getId());
insertObeServiceCostsList.add(ObeServiceCosts);
} else {
updateObeServiceCostsList.add(ObeServiceCosts);
}
}
int count = 0;
if (insertObeServiceCostsList.size() > 0) {
count += obeServiceCostsMapper.insertByBatch(insertObeServiceCostsList);
}
if (updateObeServiceCostsList.size() > 0) {
count += obeServiceCostsMapper.batchUpdateProperty(updateObeServiceCostsList, attributes);
}
return count;
}
/**
* @param projectId
* @return ServiceCosts
* @Description: 根据项目Id,获得总承包服务费。
* @author guoyr
*/
public List<ObeServiceCosts> getServiceCostsListByProjectId(String projectId) {
return initChildServiceCosts(obeServiceCostsMapper.getServiceCostsListByProjectId(projectId));
}
/**
* @Description: 总承包服务费封装树节点(双重循环实现拼接)
* @author guoyr
* @param list
* @return
*/
private List<ObeServiceCosts> initChildServiceCosts(List<ObeServiceCosts> list){
List<ObeServiceCosts> serviceCostsList = new ArrayList<ObeServiceCosts>();
if(null != list && list.size() > 0){
for(ObeServiceCosts parentServiceCosts : list){
for(ObeServiceCosts childServiceCosts : list){
if(null != childServiceCosts.getParentId() && childServiceCosts.getParentId().equals(parentServiceCosts.getId())){
parentServiceCosts.addChild(childServiceCosts);
childServiceCosts.setParentServiceCosts(parentServiceCosts);
}
}
// 如果是顶级
if(StringUtils.isEmpty(parentServiceCosts.getParentId())){
serviceCostsList.add(parentServiceCosts);
}
}
}
return serviceCostsList;
}
}