質問編集履歴

1

2016/09/14 11:31

投稿

beach1991
beach1991

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1,455 +1 @@
1
- ###前提・実現したいこと
2
-
3
- javaで販売管理のシステムを作っています
4
-
5
-
6
-
7
- 仕様変更で
8
-
9
- 新たにexecuteメソッドに下記の処理をするように変更されましたが
10
-
11
- まったくわからないので助けてください
12
-
13
-
14
-
15
-
16
-
17
- ###該当のソースコード
18
-
19
- // ③出荷指示テーブルの対象データを取得
20
-
21
- // データが存在しない場合は、処理を終了する。
22
-
23
- //List<Map<String, Object>> SHUKASHIJI = SearchShukashiji(chakkaShukkarennrakuNo);
24
-
25
- String syukkaRenrakuNo = chakkaData.get(1).substring(10, 20);
26
-
27
- List<Map<String, Object>> syukkaShiji = searchSyukkaShiji(syukkaRenrakuNo);
28
-
29
-
30
-
31
- Object ssyk = syukkaShiji.get(0).get("SSYK");
32
-
33
- Object brno = syukkaShiji.get(0).get("BRNO");
34
-
35
- Object bsts = syukkaShiji.get(0).get("BSTS");
36
-
37
- Object bhin = syukkaShiji.get(0).get("BHIN");
38
-
39
- Object dnki = syukkaShiji.get(0).get("DNKI");
40
-
41
- Object bsyrgyo = syukkaShiji.get(0).get("BSYRGYO");
42
-
43
- Object bcm = syukkaShiji.get(0).get("BCM");
44
-
45
- Object bnsok = syukkaShiji.get(0).get("BNSOK");
1
+ ぁまーふきたわ、はたもをらひたどーるにおまわらやにたもをるはきたまわ、らはかぁわ。さきあままをわりひかあたまわ?
46
-
47
-
48
-
49
- String syukkaSu = ssyk.toString();
50
-
51
- String r = brno.toString();
52
-
53
- String syusokoCode = bsts.toString();
54
-
55
- String hinban = bhin.toString();
56
-
57
- String nouki = dnki.toString();
58
-
59
- String syukkaRenrakuGyo = bsyrgyo.toString();
60
-
61
- String chumonNo = bcm.toString();
62
-
63
- String nosokoCode = bnsok.toString();
64
-
65
-
66
-
67
- if (syukkaShiji.size() == 0) {
68
-
69
- // LOG出力(該当データが存在しない場合)
70
-
71
- // 異常終了
72
-
73
- LogHandler.info("E000010040", syusokoCode + " " + syukkaRenrakuGyo);
74
-
75
-
76
-
77
- return CRITICAL;
78
-
79
- }
80
-
81
-
82
-
83
- //5回ループ
84
-
85
- // ④在庫の更新処理
86
-
87
- for (int i = 0; i < SC00601Const.LOOPCOUNT; i++) {
88
-
89
-
90
-
91
- batStatusFlg = updateZaiko(i, syukkaShiji, chakkaData, hinban, nouki, nosokoCode, r,
92
-
93
- syusokoCode, syukkaRenrakuGyo, chumonNo, syukkaSu, syukkaRenrakuNo);
94
-
95
- if (!batStatusFlg) {
96
-
97
-
98
-
99
- return CRITICAL;
100
-
101
- }
102
-
103
- }
104
-
105
- return NORMAL;
106
-
107
-
108
-
109
- //5回ループ
110
-
111
- // ④在庫の更新処理
112
-
113
- boolean batStatusFlg = true;
114
-
115
- for (int i = 0; i < SC00601Const.LOOPCOUNT; i++) {
116
-
117
-
118
-
119
- batStatusFlg = updateZaiko(i, syukkaShiji, chakkaData, hinban, nouki, nosokoCode, r,
120
-
121
- syusokoCode, syukkaRenrakuGyo, chumonNo, syukkaSu, syukkaRenrakuNo);
122
-
123
- if (!batStatusFlg) {
124
-
125
-
126
-
127
- }
128
-
129
- }
130
-
131
-
132
-
133
- }
134
-
135
-
136
-
137
-
138
-
139
- /**
140
-
141
- *
142
-
143
- * <TT><PRE>
144
-
145
- * <p> 在庫更新処理.</p>
146
-
147
- * @param loopCount 繰り返し回数.
148
-
149
- * @param syukkaShiji 出荷指示.
150
-
151
- * @param chakkaData 着荷データ.
152
-
153
- * @param hinban 品番.
154
-
155
- * @param nouki 納期.
156
-
157
- * @param nosokoCode 納倉庫コード.
158
-
159
- * @param r R#.
160
-
161
- * @param syusokoCode 出倉庫コード.
162
-
163
- * @param syukkaRenrakuGyo 出荷連絡行NO.
164
-
165
- * @param chumonNo 注文NO.
166
-
167
- * @param syukkaSu 出荷数.
168
-
169
- * @param syukkaRenrakuNo 出荷連絡NO.
170
-
171
- * @return boolean
172
-
173
- * @throws SQLException SQLが異常.
174
-
175
- * @throws Exception 例外.
176
-
177
- * </PRE></TT>
178
-
179
- */
180
-
181
- private boolean updateZaiko(int loopCount, List<Map<String, Object>> syukkaShiji, ArrayList<String> chakkaData,
182
-
183
- String hinban, String nouki, String nosokoCode, String r, String syusokoCode, String syukkaRenrakuGyo,
184
-
185
- String chumonNo, String syukkaSu, String syukkaRenrakuNo) throws SQLException, Exception {
186
-
187
-
188
-
189
- if (loopCount >= syukkaShiji.size()) {
190
-
191
- //正常終了
192
-
193
- return true;
194
-
195
- }
196
-
197
-
198
-
199
- Object ssyk = syukkaShiji.get(loopCount).get("SSYK");
200
-
201
- Object brno = syukkaShiji.get(loopCount).get("BRNO");
202
-
203
- Object bsts = syukkaShiji.get(loopCount).get("BSTS");
204
-
205
- Object bhin = syukkaShiji.get(loopCount).get("BHIN");
206
-
207
- Object dnki = syukkaShiji.get(loopCount).get("DNKI");
208
-
209
- Object bsyrgyo = syukkaShiji.get(loopCount).get("BSYRGYO");
210
-
211
- Object bcm = syukkaShiji.get(loopCount).get("BCM");
212
-
213
- Object bnsok = syukkaShiji.get(loopCount).get("BNSOK");
214
-
215
-
216
-
217
- String zaiSyukkasu = ssyk.toString();
218
-
219
- String zaiR = brno.toString();
220
-
221
- String zaiSyusokoCode = bsts.toString();
222
-
223
- String zaiHinban = bhin.toString();
224
-
225
- String zaiNouki = dnki.toString();
226
-
227
- String zaiShyukkaRenrakuGyo = bsyrgyo.toString();
228
-
229
- String zaiChumonNo = bcm.toString(); //更新値として一文字の空白に変更したため使用していません
230
-
231
- String zaiNosokoCode = bnsok.toString();
232
-
233
-
234
-
235
- //①着荷データの良品数、不良品数の取得
236
-
237
- int hinLength = SC00601Const.HIN_LENGTH + (SC00601Const.HIN_LENGTH);
238
-
239
- String ryohin = chakkaData.get(0).substring(hinLength, hinLength + 5);
240
-
241
- String furyo = chakkaData.get(0).substring(hinLength, hinLength + 5);
242
-
243
-
244
-
245
- //②繰り返し処理の終了判定
246
-
247
- if (ryohin.equals(" ") && furyo.equals(" ")) {
248
-
249
-
250
-
251
- //異常終了
252
-
253
- return false;
254
-
255
- }
256
-
257
-
258
-
259
- //③出荷指示データを取得
260
-
261
-
262
-
263
- //該当データが存在しない場合はロールバック⇒ログ出力し異常終了
264
-
265
- int shukkaRenrakuGyo = Integer.parseInt(zaiShyukkaRenrakuGyo);
266
-
267
- if (shukkaRenrakuGyo != loopCount) {
268
-
269
-
270
-
271
- LogHandler.info("E000010040");
272
-
273
- return false;
274
-
275
- }
276
-
277
-
278
-
279
- //④出荷指示明細の更新(出荷指示明細の積送中数を0にする)処理
280
-
281
- //UPDATA文
282
-
283
- upDataMeisai(syukkaRenrakuNo, zaiShyukkaRenrakuGyo);
284
-
285
-
286
-
287
- //⑤在庫台帳の更新(積送地の積送入庫予定の減算)
288
-
289
- //在庫台帳の更新処理
290
-
291
-
292
-
293
- String upZaiko = upDataZaiko(zaiSyukkasu, zaiHinban, zaiNosokoCode, zaiNouki);
294
-
295
- int upZaikoSu = Integer.parseInt(upZaiko); //更新件数
296
-
297
-
298
-
299
- //更新件数0の場合
300
-
301
- if (upZaikoSu == 0) {
302
-
303
-
304
-
305
- //ロールバック⇒ログ出力し異常終了
306
-
307
- LogHandler.info("E000010040");
308
-
309
- return false;
310
-
311
- }
312
-
313
-
314
-
315
- //⑥在庫台帳の更新(積送地の完成品在庫の加算)
316
-
317
-
318
-
319
- //在庫台帳の検索処理 取得データをZAIKOに格納 SELECT
320
-
321
- List<Map<String, Object>> zaiko = searchZaikoDaicho(zaiHinban, zaiNosokoCode);
322
-
323
-
324
-
325
- zaiko.get(loopCount).get(zaiHinban);
326
-
327
- //該当データ存在が存在する場合
328
-
329
- if (zaiHinban != null) {
330
-
331
-
332
-
333
- //在庫台帳UPDATA
334
-
335
- updataZaiko2(ryohin, zaiHinban, zaiNosokoCode);
336
-
337
-
338
-
339
- } else {
340
-
341
- //該当データ存在しない場合
342
-
343
- //在庫台帳INSERT
344
-
345
- insertZaiko(zaiHinban, zaiNosokoCode, ryohin);
346
-
347
- }
348
-
349
- //システム日付取得
350
-
351
- Calendar cal = Calendar.getInstance();
352
-
353
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
354
-
355
- String systemDate = sdf.format(cal.getTime());
356
-
357
-
358
-
359
- //在庫移動ログのINSERT
360
-
361
- insertZaikoLog(zaiNosokoCode, zaiHinban, systemDate, ryohin, zaiR, zaiSyusokoCode);
362
-
363
-
364
-
365
- //⑦在庫台帳の更新(積送元の完成品に着荷不足数を加算)
366
-
367
- //⑦(1)(SHUKASHIJIGYO).出荷数 > RYOHIN + FURYOの場合は在庫テーブルの更新
368
-
369
- // if (map.get("出荷数").toString() > RYOHIN + FURYO) {
370
-
371
-
372
-
373
- String upZaiko3 = updataZaiko3(zaiSyukkasu, ryohin, furyo, zaiHinban, zaiNosokoCode);
374
-
375
- int upZaikoSu3 = Integer.parseInt(upZaiko3); //更新件数
376
-
377
- //更新件数0の場合はロールバック⇒ログ出力し異常終了
378
-
379
- if (upZaikoSu3 == 0) {
380
-
381
-
382
-
383
- LogHandler.info("E000010040");
384
-
385
-
386
-
387
- return false;
388
-
389
- }
390
-
391
- //在庫ログINSERT
392
-
393
- insertZaikoLog2(zaiNosokoCode, zaiHinban, systemDate, zaiSyukkasu, ryohin, furyo, zaiR, zaiSyusokoCode);
394
-
395
-
396
-
397
- int furyoSu = Integer.parseInt(furyo);
398
-
399
- //⑦(2)FURYO > 0の場合 ※不良数が入力されている場合
400
-
401
- if (furyoSu > 0) {
402
-
403
- //在庫台帳の検索処理② SELECT
404
-
405
- List<Map<String, Object>> zaiko2 = searchZaikoDaicho2(zaiHinban, zaiNosokoCode);
406
-
407
- zaiko2.get(loopCount).get(zaiHinban);
408
-
409
-
410
-
411
- //該当データ存在する場合
412
-
413
- if (zaiHinban != null) {
414
-
415
- //UPDATE
416
-
417
- updataZaiko4(furyo, zaiHinban, zaiNosokoCode);
418
-
419
-
420
-
421
- //該当データ存在しない場合
422
-
423
- } else {
424
-
425
- //INSERT
426
-
427
- insertZaiko2(zaiHinban, zaiNosokoCode, furyo);
428
-
429
- }
430
-
431
- }
432
-
433
-
434
-
435
- return true;
436
-
437
- }
438
-
439
-
440
-
441
-
442
-
443
-
444
-
445
-
446
-
447
-
448
-
449
- ###試したこと
450
-
451
-
452
-
453
-
454
-
455
- ###補足情報(言語/FW/ツール等のバージョンなど)