|
|
@@ -19,6 +19,7 @@ import org.apache.poi.hssf.usermodel.HSSFSheet;
|
|
19
|
19
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
20
|
20
|
import org.apache.poi.ss.util.CellRangeAddress;
|
|
21
|
21
|
import org.springframework.stereotype.Service;
|
|
|
22
|
+import org.springframework.util.ObjectUtils;
|
|
22
|
23
|
|
|
23
|
24
|
import com.chinaitop.depot.keeperAccount.mapper.StorageBgzzMapper;
|
|
24
|
25
|
import com.chinaitop.depot.keeperAccount.model.BgzzListObject;
|
|
|
@@ -41,6 +42,23 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
41
|
42
|
@Resource
|
|
42
|
43
|
private BgzzUtilsServiceImpl bgzzUtilsServiceImpl;
|
|
43
|
44
|
|
|
|
45
|
+ public StorageBgzz queryBgzzDataType1(StorageFcbgz fcbgz) {
|
|
|
46
|
+ StorageBgzzExample example = new StorageBgzzExample();
|
|
|
47
|
+ StorageBgzzExample.Criteria criteria = example.createCriteria();
|
|
|
48
|
+ criteria.andOrgIdEqualTo(Integer.parseInt(fcbgz.getOrgId()));
|
|
|
49
|
+ criteria.andDataTypeEqualTo(StorageFcbgzUtils.DATA_TYPE_1);
|
|
|
50
|
+ criteria.andJzndEqualTo(fcbgz.getJznd());
|
|
|
51
|
+ criteria.andJzyfEqualTo(fcbgz.getSjfm());
|
|
|
52
|
+ criteria.andLyxzEqualTo(fcbgz.getLyxz());
|
|
|
53
|
+ criteria.andYwlxEqualTo(fcbgz.getYwlx());
|
|
|
54
|
+ List<StorageBgzz> list = storageBgzzMapper.selectByExample(example);
|
|
|
55
|
+ StorageBgzz storageBgzz = null;
|
|
|
56
|
+ if (null != list && list.size() > 0) {//修改
|
|
|
57
|
+ storageBgzz = list.get(0);
|
|
|
58
|
+ }
|
|
|
59
|
+ return storageBgzz;
|
|
|
60
|
+ }
|
|
|
61
|
+
|
|
44
|
62
|
@Override
|
|
45
|
63
|
public void saveOrUpdateBgzzDataType0(StorageFcbgz fcbgz) throws Exception {
|
|
46
|
64
|
StorageBgzzExample example = new StorageBgzzExample();
|
|
|
@@ -57,6 +75,7 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
57
|
75
|
String lspz = fcbgz.getPz().toString();
|
|
58
|
76
|
if (null != list && list.size() > 0) {//修改
|
|
59
|
77
|
storageBgzz = list.get(0);
|
|
|
78
|
+ StorageBgzz hzz_storageBgzz = queryBgzzDataType1(fcbgz);//查询合计行的库存数量
|
|
60
|
79
|
//收入差=收入数量-支出数量
|
|
61
|
80
|
BigDecimal src = fcbgz.getSrsl().subtract(fcbgz.getZcsl()).setScale(3, BigDecimal.ROUND_DOWN);
|
|
62
|
81
|
if ("3164".equals(lspz)) {//小麦
|
|
|
@@ -66,9 +85,12 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
66
|
85
|
storageBgzz.setXmZcsl(zcsl);
|
|
67
|
86
|
//BigDecimal kcsl = fcbgzUtilsServiceImpl.findConditionKcsl(fcbgz);
|
|
68
|
87
|
//库存数量=原库存数量+收入差
|
|
69
|
|
- BigDecimal kcsl = storageBgzz.getXmKcsl().add(src).setScale(3, BigDecimal.ROUND_DOWN);
|
|
|
88
|
+ //BigDecimal kcsl = storageBgzz.getXmKcsl().add(src).setScale(3, BigDecimal.ROUND_DOWN);
|
|
|
89
|
+ //storageBgzz.setXmKcsl(kcsl);
|
|
|
90
|
+ if (!ObjectUtils.isEmpty(hzz_storageBgzz)) {
|
|
|
91
|
+ storageBgzz.setXmKcsl(hzz_storageBgzz.getXmKcsl());
|
|
|
92
|
+ }
|
|
70
|
93
|
|
|
71
|
|
- storageBgzz.setXmKcsl(kcsl);
|
|
72
|
94
|
} else if ("3166".equals(lspz)) {//稻谷
|
|
73
|
95
|
BigDecimal srsl = fcbgz.getSrsl().add(storageBgzz.getDgSrsl()).setScale(3, BigDecimal.ROUND_DOWN);
|
|
74
|
96
|
storageBgzz.setDgSrsl(srsl);
|
|
|
@@ -76,8 +98,11 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
76
|
98
|
storageBgzz.setDgZcsl(zcsl);
|
|
77
|
99
|
//BigDecimal kcsl = fcbgzUtilsServiceImpl.findConditionKcsl(fcbgz);
|
|
78
|
100
|
//库存数量=原库存数量+收入差
|
|
79
|
|
- BigDecimal kcsl = storageBgzz.getDgKcsl().add(src).setScale(3, BigDecimal.ROUND_DOWN);
|
|
80
|
|
- storageBgzz.setDgKcsl(kcsl);
|
|
|
101
|
+ //BigDecimal kcsl = storageBgzz.getDgKcsl().add(src).setScale(3, BigDecimal.ROUND_DOWN);
|
|
|
102
|
+ //storageBgzz.setDgKcsl(kcsl);
|
|
|
103
|
+ if (!ObjectUtils.isEmpty(hzz_storageBgzz)) {
|
|
|
104
|
+ storageBgzz.setDgKcsl(hzz_storageBgzz.getDgKcsl());
|
|
|
105
|
+ }
|
|
81
|
106
|
} else if ("7144".equals(lspz)) {//原油
|
|
82
|
107
|
BigDecimal srsl = fcbgz.getSrsl().add(storageBgzz.getDdyySrsl()).setScale(3, BigDecimal.ROUND_DOWN);
|
|
83
|
108
|
storageBgzz.setDdyySrsl(srsl);
|
|
|
@@ -85,8 +110,11 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
85
|
110
|
storageBgzz.setDdyyZcsl(zcsl);
|
|
86
|
111
|
//BigDecimal kcsl = fcbgzUtilsServiceImpl.findConditionKcsl(fcbgz);
|
|
87
|
112
|
//库存数量=原库存数量+收入差
|
|
88
|
|
- BigDecimal kcsl = storageBgzz.getDdyyKcsl().add(src).setScale(3, BigDecimal.ROUND_DOWN);
|
|
89
|
|
- storageBgzz.setDdyyKcsl(kcsl);
|
|
|
113
|
+ //BigDecimal kcsl = storageBgzz.getDdyyKcsl().add(src).setScale(3, BigDecimal.ROUND_DOWN);
|
|
|
114
|
+ //storageBgzz.setDdyyKcsl(kcsl);
|
|
|
115
|
+ if (!ObjectUtils.isEmpty(hzz_storageBgzz)) {
|
|
|
116
|
+ storageBgzz.setDdyyKcsl(hzz_storageBgzz.getDdyyKcsl());
|
|
|
117
|
+ }
|
|
90
|
118
|
}
|
|
91
|
119
|
|
|
92
|
120
|
BigDecimal xj = storageBgzz.getXmKcsl().add(storageBgzz.getDgKcsl()).add(storageBgzz.getDdyyKcsl()).setScale(3, BigDecimal.ROUND_DOWN);
|
|
|
@@ -109,7 +137,7 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
109
|
137
|
BigDecimal val = new BigDecimal(0);
|
|
110
|
138
|
|
|
111
|
139
|
//收入差(取绝对值)=收入数量-支出数量
|
|
112
|
|
- BigDecimal src = fcbgz.getSrsl().subtract(fcbgz.getZcsl()).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
|
140
|
+ //BigDecimal src = fcbgz.getSrsl().subtract(fcbgz.getZcsl()).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
113
|
141
|
if ("3164".equals(lspz)) {//小麦
|
|
114
|
142
|
storageBgzz.setXmSrsl(fcbgz.getSrsl());
|
|
115
|
143
|
storageBgzz.setXmZcsl(fcbgz.getZcsl());
|
|
|
@@ -177,29 +205,23 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
177
|
205
|
//查询这一年这个月的普通账数据
|
|
178
|
206
|
List<StorageBgzz> ydlist = bgzzUtilsServiceImpl.findConditionJzyf(fcbgz, StorageFcbgzUtils.DATA_TYPE_0);
|
|
179
|
207
|
if ("3164".equals(lspz)) {//小麦
|
|
180
|
|
- BigDecimal srsl = ydlist.stream().map(StorageBgzz::getXmSrsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
181
|
|
- storageBgzz.setXmSrsl(srsl);
|
|
182
|
|
- BigDecimal zcsl = ydlist.stream().map(StorageBgzz::getXmZcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
183
|
|
- storageBgzz.setXmZcsl(zcsl);
|
|
184
|
|
- BigDecimal kcsl = ydlist.stream().map(StorageBgzz::getXmKcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
208
|
+ storageBgzz.setXmSrsl(storageBgzz.getXmSrsl().add(fcbgz.getSrsl()).setScale(3, BigDecimal.ROUND_DOWN));
|
|
|
209
|
+ storageBgzz.setXmZcsl(storageBgzz.getXmZcsl().add(fcbgz.getZcsl()).setScale(3, BigDecimal.ROUND_DOWN));
|
|
|
210
|
+ BigDecimal kcsl = storageBgzz.getXmSrsl().subtract(storageBgzz.getXmZcsl()).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
185
|
211
|
storageBgzz.setXmKcsl(kcsl);
|
|
186
|
212
|
}
|
|
187
|
213
|
|
|
188
|
214
|
if ("3166".equals(lspz)) {//稻谷
|
|
189
|
|
- BigDecimal srsl = ydlist.stream().map(StorageBgzz::getDgSrsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
190
|
|
- storageBgzz.setDgSrsl(srsl);
|
|
191
|
|
- BigDecimal zcsl = ydlist.stream().map(StorageBgzz::getDgZcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
192
|
|
- storageBgzz.setDgZcsl(zcsl);
|
|
193
|
|
- BigDecimal kcsl = ydlist.stream().map(StorageBgzz::getDgKcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
215
|
+ storageBgzz.setDgSrsl(storageBgzz.getDgSrsl().add(fcbgz.getSrsl()).setScale(3, BigDecimal.ROUND_DOWN));
|
|
|
216
|
+ storageBgzz.setDgZcsl(storageBgzz.getDgZcsl().add(fcbgz.getZcsl()).setScale(3, BigDecimal.ROUND_DOWN));
|
|
|
217
|
+ BigDecimal kcsl = storageBgzz.getDgSrsl().subtract(storageBgzz.getDgZcsl()).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
194
|
218
|
storageBgzz.setDgKcsl(kcsl);
|
|
195
|
219
|
}
|
|
196
|
220
|
|
|
197
|
221
|
if ("7144".equals(lspz)) {//原油
|
|
198
|
|
- BigDecimal srsl = ydlist.stream().map(StorageBgzz::getDdyySrsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
199
|
|
- storageBgzz.setDdyySrsl(srsl);
|
|
200
|
|
- BigDecimal zcsl = ydlist.stream().map(StorageBgzz::getDdyyZcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
201
|
|
- storageBgzz.setDdyyZcsl(zcsl);
|
|
202
|
|
- BigDecimal kcsl = ydlist.stream().map(StorageBgzz::getDdyyKcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
222
|
+ storageBgzz.setDdyySrsl(storageBgzz.getDdyySrsl().add(fcbgz.getSrsl()).setScale(3, BigDecimal.ROUND_DOWN));
|
|
|
223
|
+ storageBgzz.setDdyyZcsl(storageBgzz.getDdyySrsl().add(fcbgz.getSrsl()).setScale(3, BigDecimal.ROUND_DOWN));
|
|
|
224
|
+ BigDecimal kcsl = storageBgzz.getDdyySrsl().subtract(storageBgzz.getDdyyZcsl()).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
203
|
225
|
storageBgzz.setDdyyKcsl(kcsl);
|
|
204
|
226
|
}
|
|
205
|
227
|
|
|
|
@@ -210,7 +232,7 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
210
|
232
|
storageBgzzMapper.updateByPrimaryKey(storageBgzz);
|
|
211
|
233
|
|
|
212
|
234
|
} else {
|
|
213
|
|
- //新增普通账数据
|
|
|
235
|
+ //新增合计账数据
|
|
214
|
236
|
storageBgzz = new StorageBgzz();
|
|
215
|
237
|
storageBgzz.setId(UUID.randomUUID().toString().replace("-", ""));
|
|
216
|
238
|
storageBgzz.setOrgId(Integer.parseInt(fcbgz.getOrgId()));
|
|
|
@@ -220,7 +242,7 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
220
|
242
|
|
|
221
|
243
|
BigDecimal val = new BigDecimal(0);
|
|
222
|
244
|
|
|
223
|
|
- BigDecimal src = fcbgz.getSrsl().subtract(fcbgz.getZcsl()).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
|
245
|
+ //BigDecimal src = fcbgz.getSrsl().subtract(fcbgz.getZcsl()).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
224
|
246
|
if ("3164".equals(lspz)) {//小麦
|
|
225
|
247
|
storageBgzz.setXmSrsl(fcbgz.getSrsl());
|
|
226
|
248
|
storageBgzz.setXmZcsl(fcbgz.getZcsl());
|
|
|
@@ -282,7 +304,7 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
282
|
304
|
storageBgzz.setXmSrsl(srsl);
|
|
283
|
305
|
BigDecimal zcsl = ydlist.stream().map(StorageBgzz::getXmZcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
284
|
306
|
storageBgzz.setXmZcsl(zcsl);
|
|
285
|
|
- BigDecimal kcsl = ydlist.stream().map(StorageBgzz::getXmKcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
307
|
+ BigDecimal kcsl = srsl.subtract(zcsl).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
286
|
308
|
storageBgzz.setXmKcsl(kcsl);
|
|
287
|
309
|
}
|
|
288
|
310
|
if ("3166".equals(lspz)) {//稻谷
|
|
|
@@ -290,7 +312,7 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
290
|
312
|
storageBgzz.setDgSrsl(srsl);
|
|
291
|
313
|
BigDecimal zcsl = ydlist.stream().map(StorageBgzz::getDgZcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
292
|
314
|
storageBgzz.setDgZcsl(zcsl);
|
|
293
|
|
- BigDecimal kcsl = ydlist.stream().map(StorageBgzz::getDgKcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
315
|
+ BigDecimal kcsl = srsl.subtract(zcsl).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
294
|
316
|
storageBgzz.setDgKcsl(kcsl);
|
|
295
|
317
|
}
|
|
296
|
318
|
if ("7144".equals(lspz)) {//原油
|
|
|
@@ -298,7 +320,7 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
298
|
320
|
storageBgzz.setDdyySrsl(srsl);
|
|
299
|
321
|
BigDecimal zcsl = ydlist.stream().map(StorageBgzz::getDdyyZcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
300
|
322
|
storageBgzz.setDdyyZcsl(zcsl);
|
|
301
|
|
- BigDecimal kcsl = ydlist.stream().map(StorageBgzz::getDdyyKcsl).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
323
|
+ BigDecimal kcsl = srsl.subtract(zcsl).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
302
|
324
|
storageBgzz.setDdyyKcsl(kcsl);
|
|
303
|
325
|
}
|
|
304
|
326
|
|
|
|
@@ -317,7 +339,7 @@ public class StorageBgzzServiceImpl implements StorageBgzzService {
|
|
317
|
339
|
|
|
318
|
340
|
BigDecimal val = new BigDecimal(0);
|
|
319
|
341
|
|
|
320
|
|
- BigDecimal src = fcbgz.getSrsl().subtract(fcbgz.getZcsl()).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
|
342
|
+ //BigDecimal src = fcbgz.getSrsl().subtract(fcbgz.getZcsl()).abs().setScale(3, BigDecimal.ROUND_DOWN);
|
|
321
|
343
|
if ("3164".equals(lspz)) {//小麦
|
|
322
|
344
|
storageBgzz.setXmSrsl(fcbgz.getSrsl());
|
|
323
|
345
|
storageBgzz.setXmZcsl(fcbgz.getZcsl());
|