---
# System prepended metadata

title: E07
tags: [問題單待處理]

---

# E07 

###### tags: `問題單待處理`
## 問題敘述

區處反映：
管線搶修器材數量明細表中，現有庫存金額(19,243,120.00)、核定儲備金額(8,365,936.00)及實際儲備金額(6,807,724.00)各項所列之合計金額(如附件，例如三區)，與另外計算各項每筆細項合計之金額不一致，原因為何?
## 雲端連接 
https://drive.google.com/drive/folders/1hm78TGu_J-jnQooIP7oONgK-qdFR5MCS?usp=sharing
## 解析
路徑
![](https://i.imgur.com/ZWdzbgX.png)

![](https://i.imgur.com/lry5Nj6.png)
20220531
計算結果確實不一致。
黃色為細項分別加總(我們自己算的值)，紅色為表單上系統給出的值。
![](https://i.imgur.com/siaNd6c.png)
嘗試列印表單，表單好像都沒有出現，僅顯示列印成功，多案幾次然後就會跳500error...
![](https://i.imgur.com/g8XfAqY.png)
測試機更慘案列印會直接跳錯誤，後來等很久才跳出來(如果要載新資料可能要多點耐心)
![](https://i.imgur.com/QuMBWQA.png)

![](https://i.imgur.com/1SMyzc7.png)

20220616
這題用excel去找數據應該沒有辦法找出問題點了，無法從excel表單找出可能缺少的值。可能要直接去看程式碼原先的公式是什麼?

excel的檔案都在桌面資料夾110年度問題單裡面。

### 程式呼叫順序
- mr40106_sel.jsp https://10.100.50.20:9080/mr/mr40106_sel.jsp?s_YY=111&s_YM=11106&s_YY_SYS=111&s_YM_SYS=11106
- mr40106_prt.jsp
 wherestring[0] (年度) 
 wherestring[1] (單位名稱) 
 wherestring[2] (0, 全公司彙總, 其他為各單位代號) 
 wherestring[3] (材料編號區間(開始)) 
 wherestring[4] (材料編號區間(結束)) 
 wherestring[5] (彙總下轄單位資料(勾選方塊)) 
 wherestring[6] (轄屬單位區間(開始)) 
 wherestring[7] (轄屬單位區間(結束)) 
 wherestring[8] (材料別統計) 
 wherestring[9] (庫存量) 
 wherestring[10] (系統年度) 
 wherestring[11] (系統年月) 
 wherestring[12] (年份) 
- MR40106.java (outXLS)
值陣列位置如下
![](https://i.imgur.com/cniDShm.png)
加總的時機如下
![](https://i.imgur.com/nOrBzaa.png)
sql 執行如下
```
DEBUG: [20220630] exec SQL: SELECT ANO,SUBSTR(MNO_MNO,1,1) AS KEPST3_MNO,SUM(C1) C1,SUM(C2) C2,SUM(C3) AS C3,SUM(C4) AS C4,SUM(C5) AS C5,SUM(C6) AS C6,SUM(C7) AS C7 FROM MR40106_RPT2 WHERE USERID = 'jhj00'  GROUP BY ANO,SUBSTR(MNO_MNO,1,1) ORDER BY ANO,SUBSTR(MNO_MNO,1,1)
DEBUG: [20220630] begin while =============
DEBUG: [20220630] rds[i][8] 1947673
DEBUG: [20220630] single:8250303.0,1947673.0,1834773.0
DEBUG: [20220630] accu :8250303.0,1947673.0,1834773.0
DEBUG: [20220630] begin while =============
DEBUG: [20220630] rds[i][8] 2570215
DEBUG: [20220630] single:1.1704749E7,4517888.0,4240878.0
DEBUG: [20220630] accu :1.1704749E7,4517888.0,4240878.0
DEBUG: [20220630] begin while =============
DEBUG: [20220630] rds[i][8] 537949
DEBUG: [20220630] single:1.5007987E7,5055837.0,4774181.0
DEBUG: [20220630] accu :1.5007987E7,5055837.0,4774181.0
DEBUG: [20220630] begin while =============
DEBUG: [20220630] rds[i][8] 555003
DEBUG: [20220630] single:1.6680266E7,5610840.0,5234735.0
DEBUG: [20220630] accu :1.6680266E7,5610840.0,5234735.0
DEBUG: [20220630] begin while =============
DEBUG: [20220630] rds[i][8] 2451110
DEBUG: [20220630] single:2.145533E7,8061950.0,7399229.0
DEBUG: [20220630] accu :2.145533E7,8061950.0,7399229.0
DEBUG: [20220630] single:2.145533E7,8061950.0,7399229.0
```
這是從 MR40106_RPT2 做計算，因此誤差應該是來自於 MR40106_RPT2 和單筆加總的誤差，應釐清  MR40106_RPT2 產生的方式。
sql執行結果為 
![](https://i.imgur.com/e149ysx.png)




## 問題單內容
*  原始程式碼位置
*  目的程式碼位置
*  問題解析
*  處理方法
*  變更後測試執行結果